cvs commit: src/sys/vfs/hammer hammer_inode.c hammer_object.c hammer_vnops.c
Matthew Dillon
dillon at crater.dragonflybsd.org
Tue Sep 23 15:29:58 PDT 2008
dillon 2008/09/23 15:28:56 PDT
DragonFly src repository
Modified files:
sys/vfs/hammer hammer_inode.c hammer_object.c
hammer_vnops.c
Log:
Fix a double-flush which was occuring for every unlinked inode, resulting
in very inefficient flushing operations which also prevented any inode from
being reclaimed until the entire flush batch (which could be upwards of 40,000
inodes) completed.
The double-flush was caused by the HAMMER_INODE_DELETING flag being
improperly set twice.
Clear the HAMMER_INODE_REFLUSH flag if a reflush was queued but the
modmask is cleared by the prior flush.
Adjust the directory mtime before flushing an underlying inode, avoiding
a double flush of the directory inode.
Reported-by: Hasso Tepper <hasso at estpak.ee>
Revision Changes Path
1.113 +18 -10 src/sys/vfs/hammer/hammer_inode.c
1.97 +2 -2 src/sys/vfs/hammer/hammer_object.c
1.99 +6 -1 src/sys/vfs/hammer/hammer_vnops.c
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/hammer/hammer_inode.c.diff?r1=1.112&r2=1.113&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/hammer/hammer_object.c.diff?r1=1.96&r2=1.97&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/hammer/hammer_vnops.c.diff?r1=1.98&r2=1.99&f=u
More information about the Commits
mailing list