Bug #1793
closedtmpfs calling bawrite instead of buwrite
0%
Description
While testing lvm root mounts, I've encountered an issue with tmpfs. In the
initrd environment I'm mounting /tmp and /var from tmpfs, and creating a small
directory structure on them. So far so good, but when lvm creates a bunch of
files on one of the mount points, the writes fail.
It seems buwrite() should be called, but bawrite is being called due to the
(uio->uio_segflg == UIO_NOCOPY) check in tmpfs_write.
These screenshots show the symptom:
http://img806.imageshack.us/img806/3512/screenshotdragonflybsdv.png
This second shot shows the relevant flags, etc that are used in the checks
whenever the tmpfs_write bwrite error message is called.
http://img696.imageshack.us/img696/3512/screenshotdragonflybsdv.png
And this is the commit that introduced that check:
http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/d89ce96a0788eaec175450e8
2a898f3764b99441?hp=b815802035a205b934ffd7e3b2487c7440e7e138
The initrd basically runs an extremely minimalistic /sbin/init that just
launches another extremely minimalistic /etc/rc, which just does the stuff
described above. No swap is activated at this time, of course. Also, there
should be no memory pressure whatsoever.