tech-kern archive

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

Re: extended attributes (need help)



David Laight <david%l8s.co.uk@localhost> wrote:

> > Solution is to test for vp->v_vflag & VV_ROOT and unlock the vnode
> > before calling vn_open or namei, and relocking it afterwards.
> Is that valid - I assume the root vnode is locked for a reason,
> you can't just unlock it because a routine you need to call wants
> to lock it again.

Here is the code path:
 
sys_extattr_set_file
    extattr_set_vp
        vn_lock
        VOP_SETEXTATTR
            ufs_setextattr
                ufs_extattr_set
                    ufs_extattr_autocreate_attr
                        *** VOP_UNLOCK added here ***
                        namei
                           VFS_ROOT
                                vn_lock
                                VOP_UNLOCK
                        *** vn_lock added here ***
        VOP_UNLOCK
   vrele

I wonder if there is room for a race condition. What can happen to the
root vnode of a filesystem that would ruin my day here? At least I
assume it cannot be removed.
  
-- 
Emmanuel Dreyfus
http://hcpnet.free.fr/pubz
manu%netbsd.org@localhost


Home | Main Index | Thread Index | Old Index