diff options
Diffstat (limited to 'fs/ecryptfs/dentry.c')
| -rw-r--r-- | fs/ecryptfs/dentry.c | 20 | 
1 files changed, 4 insertions, 16 deletions
diff --git a/fs/ecryptfs/dentry.c b/fs/ecryptfs/dentry.c index 534c1d46e69e..1b5d9af937df 100644 --- a/fs/ecryptfs/dentry.c +++ b/fs/ecryptfs/dentry.c @@ -32,7 +32,7 @@  /**   * ecryptfs_d_revalidate - revalidate an ecryptfs dentry   * @dentry: The ecryptfs dentry - * @nd: The associated nameidata + * @flags: lookup flags   *   * Called when the VFS needs to revalidate a dentry. This   * is called whenever a name lookup finds a dentry in the @@ -42,32 +42,20 @@   * Returns 1 if valid, 0 otherwise.   *   */ -static int ecryptfs_d_revalidate(struct dentry *dentry, struct nameidata *nd) +static int ecryptfs_d_revalidate(struct dentry *dentry, unsigned int flags)  {  	struct dentry *lower_dentry;  	struct vfsmount *lower_mnt; -	struct dentry *dentry_save = NULL; -	struct vfsmount *vfsmount_save = NULL;  	int rc = 1; -	if (nd && nd->flags & LOOKUP_RCU) +	if (flags & LOOKUP_RCU)  		return -ECHILD;  	lower_dentry = ecryptfs_dentry_to_lower(dentry);  	lower_mnt = ecryptfs_dentry_to_lower_mnt(dentry);  	if (!lower_dentry->d_op || !lower_dentry->d_op->d_revalidate)  		goto out; -	if (nd) { -		dentry_save = nd->path.dentry; -		vfsmount_save = nd->path.mnt; -		nd->path.dentry = lower_dentry; -		nd->path.mnt = lower_mnt; -	} -	rc = lower_dentry->d_op->d_revalidate(lower_dentry, nd); -	if (nd) { -		nd->path.dentry = dentry_save; -		nd->path.mnt = vfsmount_save; -	} +	rc = lower_dentry->d_op->d_revalidate(lower_dentry, flags);  	if (dentry->d_inode) {  		struct inode *lower_inode =  			ecryptfs_inode_to_lower(dentry->d_inode);  | 
