commit d85b954506aabf6b7fb69d81ebf179a644f81fc9
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 acf8a6f..7edeeb6 100644
--- a/fs/unionfs/inode.c
+++ b/fs/unionfs/inode.c
@@ -151,6 +151,9 @@ static int unionfs_link(struct dentry *old_dentry, struct 
inode *dir,
        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);
@@ -269,6 +272,8 @@ static int unionfs_symlink(struct inode *dir, struct dentry 
*dentry,
 
        BUG_ON(!is_valid_dentry(dentry));
 
+       BUG_ON(!is_valid_dentry(dentry));
+
        unionfs_lock_dentry(dentry);
 
        /* We create in the leftmost branch. */
@@ -346,6 +351,8 @@ static int unionfs_mkdir(struct inode *parent, struct 
dentry *dentry, int mode)
 
        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);
@@ -437,6 +444,8 @@ static int unionfs_mknod(struct inode *dir, struct dentry 
*dentry, int mode,
 
        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 730e96f..4facacc 100644
--- a/fs/unionfs/rename.c
+++ b/fs/unionfs/rename.c
@@ -319,6 +319,9 @@ int unionfs_rename(struct inode *old_dir, struct dentry 
*old_dentry,
        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