DragonFly BSD
DragonFly commits List (threaded) for 2012-04
[Date Prev][Date Next]  [Thread Prev][Thread Next]  [Date Index][Thread Index]

git: kernel -- ffs: Soft updates locking fixes


From: Venkatesh Srinivas <vsrinivas@xxxxxxxxxxxxxxxxxxxxxxx>
Date: Sat, 21 Apr 2012 20:29:33 -0700 (PDT)

commit 799ea500fc9a83af3435056a7fbc0a1aafb6bfc4
Author: Venkatesh Srinivas <me@endeavour.zapto.org>
Date:   Sat Apr 21 20:05:06 2012 -0700

    kernel -- ffs: Soft updates locking fixes
    
    1) Do not take mplock in bioops callbacks; the lock was no longer synchronizing
       against mainline code.
    
    2) Do not hold softdep lock around bwillinode()
    
    3) Take softdep lock in softdep_process_worklist bioops callback. This callback
       was previously using the mplock for synchronization (insufficiently!)
    
    4) Modify process_worklist_item to expect the softdep lock to be held on
       entry and release it at appropriate times.
    
    Prevents a panic seen when running fsstress on a UFS+softdep fs, where fsync
    finds a null buffer on vnode trees. This arose from a front-end/back-end
    race in softdep_process_worklist.

Summary of changes:
 sys/vfs/ufs/ffs_softdep.c |   33 +++++++++------------------------
 1 files changed, 9 insertions(+), 24 deletions(-)

http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/799ea500fc9a83af3435056a7fbc0a1aafb6bfc4


-- 
DragonFly BSD source repository



[Date Prev][Date Next]  [Thread Prev][Thread Next]  [Date Index][Thread Index]