Commit by Konrad Schroder on 17/04/2007 at 01:16:47

src/sys/ufs/lfs/lfs.h 1.118 1.119 diff
src/sys/ufs/lfs/lfs_bio.c 1.98 1.99 diff
src/sys/ufs/lfs/lfs_extern.h 1.88 1.89 diff
src/sys/ufs/lfs/lfs_segment.c 1.198 1.199 diff
src/sys/ufs/lfs/lfs_vfsops.c 1.233 1.234 diff
src/sys/ufs/lfs/lfs_vnops.c 1.202 1.203 diff

Log message:
Install a new sysctl, vfs.lfs.ignore_lazy_sync, which causes LFS to ignore
the "smooth" syncer, as if vfs.sync.*delay = 0, but only for LFS.  The
default is "on", i.e., ignore lazy sync.

Reduce the amount of polling/busy-waiting done by lfs_putpages().  To
accomplish this, copied genfs_putpages() and modified it to indicate which
page it was that caused it to return with EDEADLK.  fsync()/fdatasync()
should no longer ever fail with EAGAIN, and should not consume huge
quantities of cpu.

Also, try to make dirops less likely to be written as the result of a
VOP_PUTPAGES(), while ensuring that they are written regularly.