commit 9d1d89dbf85eddb51f6b56c7aa892022e5495fcc
Author: Yiannis Pericleous <[EMAIL PROTECTED]>
Date: Wed May 30 14:37:10 2007 -0400
bugfix: dont move to /odf/sr if same inode number is already there
diff --git a/fs/unionfs/odf.c b/fs/unionfs/odf.c
index 39440ad..5ecdf17 100644
--- a/fs/unionfs/odf.c
+++ b/fs/unionfs/odf.c
@@ -387,9 +387,14 @@ int odf_reclaim(struct dentry *dentry, int sr)
goto out;
}
- lock_rename(old_dentry->d_parent, new_dentry->d_parent);
- err = vfs_rename(old_dir, old_dentry, new_dir->d_inode, new_dentry);
- unlock_rename(old_dentry->d_parent, new_dentry->d_parent);
+ /* if the new_dentry is already in /odf/sr we can just unlink it */
+ if (sr && new_dentry->d_inode)
+ vfs_unlink(old_dir, odf_dentry);
+ else {
+ lock_rename(old_dentry->d_parent, new_dentry->d_parent);
+ err = vfs_rename(old_dir, old_dentry, new_dir->d_inode,
new_dentry);
+ unlock_rename(old_dentry->d_parent, new_dentry->d_parent);
+ }
dput(new_dentry);
out:
_______________________________________________
unionfs-cvs mailing list: http://unionfs.filesystems.org/
[email protected]
http://www.fsl.cs.sunysb.edu/mailman/listinfo/unionfs-cvs