cvs commit: src/sys/vfs/hammer hammer.h hammer_disk.h hammer_inode.c hammer_object.c hammer_vnops.c
Matthew Dillon
dillon at crater.dragonflybsd.org
Sat Jun 28 11:11:45 PDT 2008
dillon 2008/06/28 11:10:56 PDT
DragonFly src repository
Modified files:
sys/vfs/hammer hammer.h hammer_disk.h hammer_inode.c
hammer_object.c hammer_vnops.c
Log:
HAMMER 59C/Many: Stabilization pass - fixes for large file issues
* Rename hammer_delete_range_all() to hammer_delete_clean(). This function
is no longer responsible for deleting data and db records when a file
is removed. The normal hammer_delete_range() function now does that for
all cases.
* Adjust hammer_delete_range() to not restart at offset 0 when it hits a
deadlock or must defer the remainder of the operation to another flush
cycle. When removing very large files (greater then 500GB) the constant
restarts resulted in exponential delays.
Instead the function restarts near where it had left off the previous try.
* Change ip->sync_trunc_off's dynamics so it can be used to cache the
restart offset. The truncation state can now be left intact on the
backend and the frontend will merge new truncations into it instead
of replacing the truncation.
Add a new field, ip->save_trunc_off to handle the append overwrite
check optimization (sync_trunc_off used to be used for that, no longer).
* Fix minor bugs, and use the new bwillwrite() API.
* Remove the #if 0'd out cluster_write() code entirely (it never worked
anyway). The new buffer cache subsystem in the kernel allows bdwrite()
to be used with no real penalty.
Revision Changes Path
1.95 +2 -1 src/sys/vfs/hammer/hammer.h
1.43 +3 -3 src/sys/vfs/hammer/hammer_disk.h
1.87 +48 -27 src/sys/vfs/hammer/hammer_inode.c
1.78 +53 -44 src/sys/vfs/hammer/hammer_object.c
1.78 +3 -28 src/sys/vfs/hammer/hammer_vnops.c
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/hammer/hammer.h.diff?r1=1.94&r2=1.95&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/hammer/hammer_disk.h.diff?r1=1.42&r2=1.43&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/hammer/hammer_inode.c.diff?r1=1.86&r2=1.87&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/hammer/hammer_object.c.diff?r1=1.77&r2=1.78&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/hammer/hammer_vnops.c.diff?r1=1.77&r2=1.78&f=u
More information about the Commits
mailing list