commit 5588a29dc7a28f2db9cb684688236811dbd044ba
Author: Erez Zadok <[EMAIL PROTECTED]>
Date:   Fri Jan 25 20:21:07 2008 -0500

    Unionfs: d_parent related locking fixes
    
    Signed-off-by: Erez Zadok <[EMAIL PROTECTED]>

diff --git a/fs/unionfs/copyup.c b/fs/unionfs/copyup.c
index b028908..81f5431 100644
--- a/fs/unionfs/copyup.c
+++ b/fs/unionfs/copyup.c
@@ -710,8 +710,7 @@ struct dentry *create_parents(struct inode *dir, struct 
dentry *dentry,
                child_dentry = parent_dentry;
 
                /* find the parent directory dentry in unionfs */
-               parent_dentry = child_dentry->d_parent;
-               dget(parent_dentry);
+               parent_dentry = dget_parent(child_dentry);
 
                /* find out the lower_parent_dentry in the given branch */
                lower_parent_dentry =
diff --git a/fs/unionfs/union.h b/fs/unionfs/union.h
index aa58b35..c4e2d66 100644
--- a/fs/unionfs/union.h
+++ b/fs/unionfs/union.h
@@ -498,13 +498,13 @@ extern int parse_branch_mode(const char *name, int 
*perms);
 /* locking helpers */
 static inline struct dentry *lock_parent(struct dentry *dentry)
 {
-       struct dentry *dir = dget(dentry->d_parent);
+       struct dentry *dir = dget_parent(dentry);
        mutex_lock_nested(&dir->d_inode->i_mutex, I_MUTEX_PARENT);
        return dir;
 }
 static inline struct dentry *lock_parent_wh(struct dentry *dentry)
 {
-       struct dentry *dir = dget(dentry->d_parent);
+       struct dentry *dir = dget_parent(dentry);
 
        mutex_lock_nested(&dir->d_inode->i_mutex, UNIONFS_DMUTEX_WHITEOUT);
        return dir;
_______________________________________________
unionfs-cvs mailing list: http://unionfs.filesystems.org/
[email protected]
http://www.fsl.cs.sunysb.edu/mailman/listinfo/unionfs-cvs

Reply via email to