git: devfs - Fix a few more issues

Matthew Dillon dillon at crater.dragonflybsd.org
Sat Mar 17 19:49:32 PDT 2018


commit 62e9e4173da92227fd081dae1cb4bc2a8aaee176
Author: Matthew Dillon <dillon at apollo.backplane.com>
Date:   Sat Mar 17 19:43:01 2018 -0700

    devfs - Fix a few more issues
    
    * Fix a devfs_freep() race.  VOP_RECLAIM generated by unrelated
      system load (such as a 'du' which causes vnodes to recycle quickly)
      can race a node teardown because devfs_freep() temporarily unlocks
      devfs_lock across a vnode op.
    
    * Instead of asserting, use the DEVFS_DESTROYED flag to check
      for the race.  The state will be stable for this particular race
      due to the vnode lock.
    
    Reported-by: multiple

Summary of changes:
 sys/sys/devfs.h             |  5 ++---
 sys/vfs/devfs/devfs_core.c  | 47 +++++++++++++++++++++++++--------------------
 sys/vfs/devfs/devfs_vnops.c |  2 +-
 3 files changed, 29 insertions(+), 25 deletions(-)

http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/62e9e4173da92227fd081dae1cb4bc2a8aaee176


-- 
DragonFly BSD source repository


More information about the Commits mailing list