git: HAMMER VFS - Fix two ip->vp inode/vnode races

Matthew Dillon dillon at crater.dragonflybsd.org
Sat Sep 25 09:48:18 PDT 2010


commit 036ea0c3142400d6417e92fe874773752d683044
Author: Matthew Dillon <dillon at apollo.backplane.com>
Date:   Sat Sep 25 07:58:12 2010 -0700

    HAMMER VFS - Fix two ip->vp inode/vnode races
    
    * nrename and nremove attempt to dereference ip->vp.  Because ip->vp has
      no other references in these code paths the operation can race and
      either assert or panic on a null-pointer dereference.
    
      Fix by formally acquiring the vnode before trying to dereference it.
    
    * All other cases are passed a referenced vnode or properly acquire it
      (e.g. nresolve), and did not have this issue.

Summary of changes:
 sys/vfs/hammer/hammer_vnops.c |   47 +++++++++++++++++++++++++++++++++-------
 1 files changed, 38 insertions(+), 9 deletions(-)

http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/036ea0c3142400d6417e92fe874773752d683044


-- 
DragonFly BSD source repository





More information about the Commits mailing list