commit d3ed220f9f662f662e8ecccadcfd4fb0f706ed99
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
39440ad61e985a4443cd0802ee42ebdd6609469f..5ecdf17a7d8164022436278dc83279bd014c85b9
100644
--- a/fs/unionfs/odf.c
+++ b/fs/unionfs/odf.c
@@ -387,9 +387,14 @@ int odf_reclaim(struct dentry *dentry, i
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