c9218f8686
would result in a vop_inactive call for the vnode each time, resulting in vinvalbuf->fsync. The original softdep code avoided the fsync in vinvalbuf by not calling it if there were no dirty blocks. This was changed in NetBSD. Also, flush_inodedeps was changed to mark the inode as modified so that it would do an inode update and flush the last one. This combination basically caused a sync write for each removed file in an rm -rf (showing up delayed from the syncer a lot of the time). If called from vinvalbuf (FSYNC_RECLAIM), and there were no dirty blocks or pages to begin with, still do everything as normal, so that possible dirty blocks in transit to disk are properly waited for, etc, but don't pass UPDATE_WAIT to VOP_UPDATE, since there is no need for it in that case. |
||
---|---|---|
.. | ||
Makefile | ||
ffs_alloc.c | ||
ffs_balloc.c | ||
ffs_bswap.c | ||
ffs_extern.h | ||
ffs_inode.c | ||
ffs_softdep.c | ||
ffs_softdep.stub.c | ||
ffs_subr.c | ||
ffs_tables.c | ||
ffs_vfsops.c | ||
ffs_vnops.c | ||
fs.h | ||
softdep.h |