git: DragonFly_RELEASE_5_6 hammer2 - Finally fix the 'file winds up with some zeros' bug
    Matthew Dillon 
    dillon at crater.dragonflybsd.org
       
    Tue Nov 19 12:07:11 PST 2019
    
    
  
commit 9baa033a4a3953ca0f66542bc828184317627503
Author: Matthew Dillon <dillon at apollo.backplane.com>
Date:   Tue Nov 19 12:02:39 2019 -0800
    hammer2 - Finally fix the 'file winds up with some zeros' bug
    
    * Fix this bug, which has been reported several times this year
      but until nikita's hands-on I couldn't find it.
    
    * The bug occurs when H2 must transition from the 512 bytes of
      file data directly embedded in the inode to a block table as
      a file grows past 512 bytes.
    
      Basically what happens is that the buffer cache buffer holding
      the data in-transition can get lost.
    
      The result is that the first write() that overlaps seek offset
      512 in a small file can sometimes cause the prior data at the
      start of the file to be lost.
    
    * To solve the problem the buffer is now held across the transition
      and explicitly dirtied to force it to be flushed to the now-
      realized block table.
    
    Reported-by: nikita and several others this year
Summary of changes:
 sys/vfs/hammer2/hammer2_vnops.c | 30 +++++++++++++++++++++++++-----
 1 file changed, 25 insertions(+), 5 deletions(-)
http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/9baa033a4a3953ca0f66542bc828184317627503
-- 
DragonFly BSD source repository
    
    
More information about the Commits
mailing list