git: DragonFly_RELEASE_4_6 hammer2 - Fix deadlocks, bad assertion, improve flushing.
Matthew Dillon
dillon at crater.dragonflybsd.org
Fri Jul 22 22:39:59 PDT 2016
commit d7993ba507efd77d28d3f7aa2c71887a429518bb
Author: Matthew Dillon <dillon at apollo.backplane.com>
Date: Thu Jul 21 22:48:10 2016 -0700
hammer2 - Fix deadlocks, bad assertion, improve flushing.
* Fix a deadlock in checkdirempty(). We must release the lock on oparent
before following a hardlink. If after re-locking chain->parent != oparent,
return EAGAIN to the caller.
* When doing a full filesystem flush, pre-flush the vnodes with a normal
transaction to try to soak-up all the compression time and avoid stalling
user process writes for too long once we get inside the formal flush.
* Fix a flush bug. Flushing a deleted chain is allowed if it is an inode.
Summary of changes:
sys/vfs/hammer2/hammer2_chain.c | 6 ++----
sys/vfs/hammer2/hammer2_strategy.c | 8 +++++++-
sys/vfs/hammer2/hammer2_vfsops.c | 5 +++--
sys/vfs/hammer2/hammer2_xops.c | 39 ++++++++++++++++++++++++++++++++++----
4 files changed, 47 insertions(+), 11 deletions(-)
http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/d7993ba507efd77d28d3f7aa2c71887a429518bb
--
DragonFly BSD source repository
More information about the Commits
mailing list