git: hammer2 - Clean DIO invalidation flags in more cases

Matthew Dillon dillon at crater.dragonflybsd.org
Tue Aug 22 21:27:39 PDT 2017


commit ef5c6e6835c32c5fbb38f6445cd87c439a4e3f95
Author: Matthew Dillon <dillon at apollo.backplane.com>
Date:   Tue Aug 22 16:44:41 2017 -0700

    hammer2 - Clean DIO invalidation flags in more cases
    
    * DIO invalidation state allows a (64KB) buffer to be allocated from disk
      without reading it, retaining this knowledge across a freemap allocation
      into the chain.  It is primarily used by the freemap allocator when
      digging into new (previously fully unallocated) 64KB blocks to avoid
      unnecessary disk I/O.
    
    * Clear DIO invalidation flags for data blocks being adjusted by
      bulkfree for any transition rather than just for the 11->10 transition.
      This is an attempt to cleanup corruption which can occur during heavy
      I/O + concurrent bulkfree operation.
    
    * When clearing DIO invalidation state, clear both flags rather than just
      one flag.

Summary of changes:
 sys/vfs/hammer2/hammer2_bulkfree.c | 16 ++++++++++++----
 sys/vfs/hammer2/hammer2_io.c       |  9 ++++++---
 2 files changed, 18 insertions(+), 7 deletions(-)

http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/ef5c6e6835c32c5fbb38f6445cd87c439a4e3f95


-- 
DragonFly BSD source repository


More information about the Commits mailing list