]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/commit
Several performance improvements for soft updates have been added:
authormckusick <mckusick@FreeBSD.org>
Mon, 10 Jan 2000 00:24:24 +0000 (00:24 +0000)
committermckusick <mckusick@FreeBSD.org>
Mon, 10 Jan 2000 00:24:24 +0000 (00:24 +0000)
commitd4409da21099a58aef95304ae121d7dd16935d28
tree7af2f6cd9369ccc04c3599bb76bfdc259edea5e5
parent2f9951ffbdc2dff074f16cd490f451ce751a7710
Several performance improvements for soft updates have been added:
1) Fastpath deletions. When a file is being deleted, check to see if it
   was so recently created that its inode has not yet been written to
   disk. If so, the delete can proceed to immediately free the inode.
2) Background writes: No file or block allocations can be done while the
   bitmap is being written to disk. To avoid these stalls, the bitmap is
   copied to another buffer which is written thus leaving the original
   available for futher allocations.
3) Link count tracking. Constantly track the difference in i_effnlink and
   i_nlink so that inodes that have had no change other than i_effnlink
   need not be written.
4) Identify buffers with rollback dependencies so that the buffer flushing
   daemon can choose to skip over them.
12 files changed:
sys/contrib/softupdates/ffs_softdep.c
sys/kern/vfs_bio.c
sys/sys/bio.h
sys/sys/buf.h
sys/ufs/ffs/ffs_alloc.c
sys/ufs/ffs/ffs_softdep.c
sys/ufs/ffs/ffs_softdep_stub.c
sys/ufs/ffs/ffs_vfsops.c
sys/ufs/ffs/ffs_vnops.c
sys/ufs/ufs/ufs_extern.h
sys/ufs/ufs/ufs_lookup.c
sys/ufs/ufs/ufs_vnops.c