Jan Engelhardt:
> Twice?
Since they are GET_PARENT-ed twice.
unionfs_create()
{
;;;
hidden_dir_dentry = GET_PARENT(whiteout_dentry);
GET_PARENT(whiteout_dentry);
lock_rename(hidden_dir_dentry, hidden_dir_dentry);
;;;
}
here is another patch.
diff -u -p -r1.1 inode.c
--- inode.c 20 Nov 2005 04:06:50 -0000 1.1
+++ inode.c 22 Nov 2005 16:45:58 -0000
@@ -88,7 +92,6 @@ static int unionfs_create(struct inode *
/* They are in the same directory, but we need to get it twice.
*/
hidden_dir_dentry = GET_PARENT(whiteout_dentry);
- GET_PARENT(whiteout_dentry);
lock_rename(hidden_dir_dentry, hidden_dir_dentry);
if (!(err = is_robranch_super(dentry->d_sb, bstart))) {
@@ -107,6 +110,7 @@ static int unionfs_create(struct inode *
/* This will dput our double gotten parent. */
unlock_rename(hidden_dir_dentry, hidden_dir_dentry);
+ DPUT(hidden_dir_dentry);
DPUT(new_hidden_dentry);
Junjiro Okajima
_______________________________________________
unionfs mailing list
[email protected]
http://www.fsl.cs.sunysb.edu/mailman/listinfo/unionfs