git: kernel - Fix race in VFS_MPLOCK/VFS_MPUNLOCK (affects UFS)

Matthew Dillon dillon at crater.dragonflybsd.org
Thu Nov 21 11:20:49 PST 2019


commit 465e06085cd792b14e8161760732c758c7024a2d
Author: Matthew Dillon <dillon at apollo.backplane.com>
Date:   Thu Nov 21 11:13:43 2019 -0800

    kernel - Fix race in VFS_MPLOCK/VFS_MPUNLOCK (affects UFS)
    
    * In the one case where vop_strategy() uses VFS_MPLOCK/VFS_MPUNLOCK,
      it is actually possible for the vnode to go away after the strategy
      call since no ref or lock is held across the call.
    
    * Refactor the macros generally to cache the mount pointer , so
      VFS_MPUNLOCK() no longer takes an argument.
    
    * Primarily affects UFS
    
    Reported-by: tuxillo

Summary of changes:
 sys/kern/vfs_vfsops.c |  26 ++++----
 sys/kern/vfs_vopops.c | 163 +++++++++++++++++++++++++++++++++-----------------
 sys/sys/mount.h       |  17 +++---
 3 files changed, 131 insertions(+), 75 deletions(-)

http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/465e06085cd792b14e8161760732c758c7024a2d


-- 
DragonFly BSD source repository



More information about the Commits mailing list