In message <[EMAIL PROTECTED]>, Yiannis Pericleous writes:
> 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);

Why double added BUG_ON's?

>       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);

This addition of BUG_ON is redundant, since you seem to have already have
that BUG_ON right above it.  In fact this entire patch seems to have been
incorrectly added twice.

>       /* 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);

Ditto.

> @@ -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;

Ditto.

> 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);

Ditto.

>       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

Erez.
_______________________________________________
unionfs-cvs mailing list: http://unionfs.filesystems.org/
[email protected]
http://www.fsl.cs.sunysb.edu/mailman/listinfo/unionfs-cvs

Reply via email to