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

Reply via email to