git: hammer2 - Fix DIO_INPROG race.

Matthew Dillon dillon at crater.dragonflybsd.org
Sun Mar 1 11:48:22 PST 2015


commit 9f7262b510923c1aecd40717e14c57d737e94535
Author: Matthew Dillon <dillon at apollo.backplane.com>
Date:   Sun Mar 1 11:46:12 2015 -0800

    hammer2 - Fix DIO_INPROG race.
    
    * It is possible when a chained DIO_INPROG is present for the DIO to become
      GOOD and for the dio->refs ref to be release, but not yet have finished
      its INPROG processing due to the chaining.
    
      In this situation, a temporary user of the DIO will get/put it and hit
      an important sanity assertion in putblk.
    
    * Fix by disallowing the DIO_GOOD shortcut in hammer2_io_getblk() if the
      DIO is still DIO_INPROG.

Summary of changes:
 sys/vfs/hammer2/hammer2_io.c | 12 +++++++++++-
 1 file changed, 11 insertions(+), 1 deletion(-)

http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/9f7262b510923c1aecd40717e14c57d737e94535


-- 
DragonFly BSD source repository



More information about the Commits mailing list