[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
kern/40562: busy loop in ffs_sync when unmounting a file system
>Synopsis: busy loop in ffs_sync when unmounting a file system
>Arrival-Date: Fri Feb 06 00:10:00 +0000 2009
>Originator: YAMAMOTO Takashi <yamt%mwd.biglobe.ne.jp@localhost>
>Release: NetBSD 5.99.7
it seems that ffs_fsync failed to write out dirty blocks
for VBLK if the file system which the VBLK special file is on
is mounted with wapbl. it causes ffs_sync busy-loop with calling
VOP_FSYNC on devvp.
make /dev an ffs with logging, run the following,
and see that umount takes too long.
dd if=/dev/zero of=foo bs=1m count=16
vnconfig vnd0 foo
newfs -F /dev/rvnd0d
mount /dev/vnd0d /mnt
ensure that ffs_fsync do vflushbuf equivalent for VBLK.
- ensure that all VOP_FSYNC implementations call VFS_FSYNC
for VBLK if a file system is mounted on it.
- make ffs VFS_FSYNC have its own function, say, ffs_vfs_fsync,
rather than sharing ffs_full_fsync or ffs_fsync.
- move the softdep/wapbl VBLK handling for a mounted file system
from ffs_full_fsync to ffs_vfs_fsync.
- kill FSYNC_VFS.
Main Index |
Thread Index |