git: hammer2 - bug fixes
Matthew Dillon
dillon at crater.dragonflybsd.org
Sun Aug 30 20:46:31 PDT 2015
commit b5b45574b1a9e411d59138bb0f99663be5618bac
Author: Matthew Dillon <dillon at apollo.backplane.com>
Date: Sun Aug 30 19:55:53 2015 -0700
hammer2 - bug fixes
* When a dirty inode is reclaimed meta-data changes stored in the inode
structure could sometimes get lost. These changes must be synchronized
to the chains in the underlying cluster nodes.
Repurpose the unlinkq into a more general 'sideq' that handles both
deletion-on-reclaim and dirty-meta-data-on-reclaim.
Add a flag to the inode to represent when it is on the sideq, preventing
situations where it might be added twice.
* Enable the free->allocated transition in the bulkfree code. Add
additional statistics and an underflow/overflow check for
hammer2_bmap_data->avail. Also adjust the volume free space
in both directions. Do not update any live field if 'nofree' is
set for the chain (~1GB granularity representing possible
frontend/backend races).
Summary of changes:
sys/vfs/hammer2/hammer2.h | 13 ++++---
sys/vfs/hammer2/hammer2_bulkfree.c | 79 +++++++++++++++++++++++++++++---------
sys/vfs/hammer2/hammer2_inode.c | 55 ++++++++++++++++++--------
sys/vfs/hammer2/hammer2_strategy.c | 5 +++
sys/vfs/hammer2/hammer2_vfsops.c | 6 +--
sys/vfs/hammer2/hammer2_vnops.c | 32 ++++++++++-----
6 files changed, 137 insertions(+), 53 deletions(-)
http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/b5b45574b1a9e411d59138bb0f99663be5618bac
--
DragonFly BSD source repository
More information about the Commits
mailing list