commit 3db8c5c70b0eab2e4901e3dff1abdd5f6e52eb29
Author: Yiannis Pericleous <[EMAIL PROTECTED]>
Date: Tue Mar 13 18:45:08 2007 -0400
lookup bug
diff --git a/fs/unionfs/lookup.c b/fs/unionfs/lookup.c
index 7b75bb9..dcf2fb9 100644
--- a/fs/unionfs/lookup.c
+++ b/fs/unionfs/lookup.c
@@ -37,6 +37,7 @@ struct dentry *unionfs_lookup_backend(struct dentry *dentry,
struct nameidata *n
int allocated_new_info = 0;
const char *name;
int namelen;
+ struct nameidata new_nd;
/* We should already have a lock on this dentry in the case of a
* partial lookup, or a revalidation. Otherwise it is returned from
@@ -76,6 +77,9 @@ struct dentry *unionfs_lookup_backend(struct dentry *dentry,
struct nameidata *n
bend = dbend(parent_dentry);
bopaque = dbopaque(parent_dentry);
BUG_ON(bstart < 0);
+
+ if (nd == NULL)
+ nd = &new_nd;
/* It would be ideal if we could convert partial lookups to only have
* to do this work when they really need to. It could probably improve
@@ -103,7 +107,6 @@ struct dentry *unionfs_lookup_backend(struct dentry
*dentry, struct nameidata *n
if (!S_ISDIR(hidden_dir_dentry->d_inode->i_mode))
continue;
-
/* Now do regular lookup; lookup foo */
nd->dentry = unionfs_lower_dentry_idx(dentry, bindex);
/* FIXME: fix following line for mount point crossing */
_______________________________________________
unionfs-cvs mailing list: http://unionfs.filesystems.org/
[email protected]
http://www.fsl.cs.sunysb.edu/mailman/listinfo/unionfs-cvs