commit dbc3a85fd643fdfc5d61b81e804bd637b4bb6fd0
Author: Yiannis Pericleous <[EMAIL PROTECTED]>
Date:   Sat Apr 21 11:21:58 2007 -0400

    Unionfs: Added several BUG_ONs to assert dentry validity
    
    This should help catch races between the VFS and the branch-management code.
    
    Signed-off-by: Erez Zadok <[EMAIL PROTECTED]>
    Signed-off-by: Josef 'Jeff' Sipek <[EMAIL PROTECTED]>
    
    Conflicts:
    
        fs/unionfs/union.h

diff --git a/fs/unionfs/inode.c b/fs/unionfs/inode.c
index 
e964c2da87eaa3314ed59139b058eafb0aa4fa6f..a3a11283c1ec36c612dfdbe14bb5c6627af91a2f
 100644
--- a/fs/unionfs/inode.c
+++ b/fs/unionfs/inode.c
@@ -152,6 +152,9 @@ static int unionfs_link(struct dentry *o
        BUG_ON(!is_valid_dentry(new_dentry));
        BUG_ON(!is_valid_dentry(old_dentry));
 
+       BUG_ON(!is_valid_dentry(new_dentry));
+       BUG_ON(!is_valid_dentry(old_dentry));
+
        double_lock_dentry(new_dentry, old_dentry);
 
        hidden_new_dentry = unionfs_lower_dentry(new_dentry);
@@ -270,6 +273,8 @@ static int unionfs_symlink(struct inode 
 
        BUG_ON(!is_valid_dentry(dentry));
 
+       BUG_ON(!is_valid_dentry(dentry));
+
        unionfs_lock_dentry(dentry);
 
        /* We create in the leftmost branch. */
@@ -347,6 +352,8 @@ static int unionfs_mkdir(struct inode *p
 
        BUG_ON(!is_valid_dentry(dentry));
 
+       BUG_ON(!is_valid_dentry(dentry));
+
        unionfs_lock_dentry(dentry);
        bindex = 0; /* always create at branch 0 */
        bend = dbend(dentry);
@@ -438,6 +445,8 @@ static int unionfs_mknod(struct inode *d
 
        BUG_ON(!is_valid_dentry(dentry));
 
+       BUG_ON(!is_valid_dentry(dentry));
+
        unionfs_lock_dentry(dentry);
        bstart = 0;
 
diff --git a/fs/unionfs/rename.c b/fs/unionfs/rename.c
index 
730e96fe9f39995519d0585467d763021fc69a6a..4facacc68babb0c9fea7513f0a05676bae1bfc3a
 100644
--- a/fs/unionfs/rename.c
+++ b/fs/unionfs/rename.c
@@ -319,6 +319,9 @@ int unionfs_rename(struct inode *old_dir
        BUG_ON(!is_valid_dentry(old_dentry));
        BUG_ON(!is_valid_dentry(new_dentry));
 
+       BUG_ON(!is_valid_dentry(old_dentry));
+       BUG_ON(!is_valid_dentry(new_dentry));
+
        double_lock_dentry(old_dentry, new_dentry);
 
        if (!S_ISDIR(old_dentry->d_inode->i_mode))
_______________________________________________
unionfs-cvs mailing list: http://unionfs.filesystems.org/
[email protected]
http://www.fsl.cs.sunysb.edu/mailman/listinfo/unionfs-cvs

Reply via email to