• Alexander Viro's avatar
    [PATCH] Re: 2.5.11 breakage · 85d217f4
    Alexander Viro authored
    	OK, here comes.  Patch below is an attempt to do the fastwalk
    stuff in right way and so far it seems to be working.
    
     - dentry leak is plugged
     - locked/unlocked state of nameidata doesn't depend on history - it
       depends only on point in code.
     - LOOKUP_LOCKED is gone.
     - following mounts and .. doesn't drop dcache_lock
     - light-weight permission check distinguishes between "don't know" and
       "permission denied", so we don't call full-blown permission() unless
       we have to.
     - code that changes root/pwd holds dcache_lock _and_ write lock on
       current->fs->lock.  I.e. if we hold dcache_lock we can safely
       access our ->fs->{root,pwd}{,mnt}
     - __d_lookup() does not increment refcount; callers do dget_locked()
       if they need it (behaviour of d_lookup() didn't change, obviously).
     - link_path_walk() logics had been (somewhat) cleaned up.
    85d217f4
dcache.c 36.1 KB