git: hammer2 - Major restructuring, part 4/several
Matthew Dillon
dillon at crater.dragonflybsd.org
Fri May 3 01:34:37 PDT 2013
commit 9797e933b125aaafa99bf816ad3e1c9e0143395f
Author: Matthew Dillon <dillon at apollo.backplane.com>
Date: Fri May 3 01:28:00 2013 -0700
hammer2 - Major restructuring, part 4/several
* Add inumber -> inode structure tracking and lookup. This is needed to
ensure that only a single inode structure be used to track multiple
hardlinks to the same place.
* Continue stabilization. Remove modify_tid/delete_tid checks in the
flush code and (for now) only flush along the live path.
Refactor held chains when creating new chains. The creation of a new
chain can move around existing chains, causing the held chain to be
marked deleted.
When a hardlink is consolidated in a parent directory the source chain
used in the duplication is not deleted. Numerous chain->duplink
handling code was assuming that the source was always deleted. Fix
that.
* The shared inode lock now refactors ip->chain (the exclusive inode lock
already did so).
* Fix most ref-counting of the chain structure, fixing most of the memory
leakage issues on unmount.
* There are still some issues with small files not inheriting their data
on duplication. cpdup /usr/share works but a significant number of
small files lose their data references on re-mount.
Summary of changes:
sys/vfs/hammer2/hammer2.h | 30 ++--
sys/vfs/hammer2/hammer2_ccms.c | 9 +-
sys/vfs/hammer2/hammer2_ccms.h | 3 +-
sys/vfs/hammer2/hammer2_chain.c | 162 +++++++++++--------
sys/vfs/hammer2/hammer2_flush.c | 130 +++++++++++++--
sys/vfs/hammer2/hammer2_inode.c | 341 ++++++++++++++++++++++++++-------------
sys/vfs/hammer2/hammer2_ioctl.c | 3 +-
sys/vfs/hammer2/hammer2_subr.c | 43 ++++-
sys/vfs/hammer2/hammer2_vfsops.c | 43 ++++-
sys/vfs/hammer2/hammer2_vnops.c | 36 +++--
10 files changed, 567 insertions(+), 233 deletions(-)
http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/9797e933b125aaafa99bf816ad3e1c9e0143395f
--
DragonFly BSD source repository
More information about the Commits
mailing list