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.
Updated by alexh over 14 years ago
Fixed in b7545cb3ff9d0e0490a2453779b029252346d511.