git: hammer - Fix bugs, fix serious snapshot bug, flush adjustments
Matthew Dillon
dillon at crater.dragonflybsd.org
Sat Mar 17 01:31:38 PDT 2018
commit 65c894ff16a220a372ab41a11f3865f2de518c9e
Author: Matthew Dillon <dillon at apollo.backplane.com>
Date: Sat Mar 17 01:20:36 2018 -0700
hammer - Fix bugs, fix serious snapshot bug, flush adjustments
* Make sure we only flush the volume header for a general sync request
and not for a fsync() on /.
* Fix more lock order reversals when translating directory entries
to inodes.
* Separate out spmp elements into their own list to make umount ordering
easier.
* Flush in three stages.
(1) flush dirty filesystem inodes
(2) flush PFS meta-data topology up to the filesystem inodes.
(3) flush the volume root and its meta-data up to the PFS inodes.
This is staging for later sync concurrency improvements.
* Fix a bug where creating enough snapshots (more than 4 total PFSs)
causes some PFSs to lose an important flag in their blockref, which
causes flushes to stop working properly on that PFS.
Summary of changes:
sys/vfs/hammer2/hammer2.h | 4 ++
sys/vfs/hammer2/hammer2_bulkfree.c | 4 +-
sys/vfs/hammer2/hammer2_chain.c | 27 ++++++++--
sys/vfs/hammer2/hammer2_flush.c | 13 +++--
sys/vfs/hammer2/hammer2_freemap.c | 2 +
sys/vfs/hammer2/hammer2_vfsops.c | 104 ++++++++++++++++++++++++++-----------
sys/vfs/hammer2/hammer2_xops.c | 80 ++++++++++++++++++----------
7 files changed, 164 insertions(+), 70 deletions(-)
http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/65c894ff16a220a372ab41a11f3865f2de518c9e
--
DragonFly BSD source repository
More information about the Commits
mailing list