commit a9b94588725f8c551e0efbfb4c823a0ff07de38b
Author: Michael Halcrow <[EMAIL PROTECTED]>
Date:   Fri Feb 16 14:09:25 2007 -0500

    eCryptfs: convert lookup_one_len() to lookup_one_len_nd()
    
    Call the new lookup_one_len_nd() rather than lookup_one_len().  This fixes 
an
    oops when stacked on NFS.
    
    Note that there are still some issues with eCryptfs on NFS having to do with
    directory deletion (I'm not getting an oops, just an -EBUSY).
    
    Signed-off-by: Michael Halcrow <[EMAIL PROTECTED]>
    Signed-off-by: Andrew Morton <[EMAIL PROTECTED]>
    Signed-off-by: Josef 'Jeff' Sipek <[EMAIL PROTECTED]>

diff --git a/fs/ecryptfs/inode.c b/fs/ecryptfs/inode.c
index 5a71918..baf056f 100644
--- a/fs/ecryptfs/inode.c
+++ b/fs/ecryptfs/inode.c
@@ -253,7 +253,9 @@ static struct dentry *ecryptfs_lookup(struct inode *dir, 
struct dentry *dentry,
        int rc = 0;
        struct dentry *lower_dir_dentry;
        struct dentry *lower_dentry;
+       struct dentry *dentry_save;
        struct vfsmount *lower_mnt;
+       struct vfsmount *mnt_save;
        char *encoded_name;
        int encoded_namelen;
        struct ecryptfs_crypt_stat *crypt_stat = NULL;
@@ -281,9 +283,13 @@ static struct dentry *ecryptfs_lookup(struct inode *dir, 
struct dentry *dentry,
        }
        ecryptfs_printk(KERN_DEBUG, "encoded_name = [%s]; encoded_namelen "
                        "= [%d]\n", encoded_name, encoded_namelen);
-       lower_dentry = lookup_one_len(encoded_name, lower_dir_dentry,
-                                     encoded_namelen - 1);
+       dentry_save = nd->dentry;
+       mnt_save = nd->mnt;
+       lower_dentry = lookup_one_len_nd(encoded_name, lower_dir_dentry,
+                                        (encoded_namelen - 1), nd);
        kfree(encoded_name);
+       nd->mnt = mnt_save;
+       nd->dentry = dentry_save;
        if (IS_ERR(lower_dentry)) {
                ecryptfs_printk(KERN_ERR, "ERR from lower_dentry\n");
                rc = PTR_ERR(lower_dentry);
_______________________________________________
unionfs-cvs mailing list: http://unionfs.filesystems.org/
[email protected]
http://www.fsl.cs.sunysb.edu/mailman/listinfo/unionfs-cvs

Reply via email to