aboutsummaryrefslogtreecommitdiffstats
path: root/fs/ecryptfs
diff options
context:
space:
mode:
authorAl Viro <viro@zeniv.linux.org.uk>2012-06-10 16:03:43 -0400
committerAl Viro <viro@zeniv.linux.org.uk>2012-07-14 08:34:14 -0400
commit0b728e1911cbe6e24020727c3870628b9653f32a (patch)
treecd975921b28300d62f3aca2fc37eef28af89b959 /fs/ecryptfs
parentfa3c56bbda6c2ac2a57d96ba501dbe85cccd312b (diff)
stop passing nameidata * to ->d_revalidate()
Just the lookup flags. Die, bastard, die... Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Diffstat (limited to 'fs/ecryptfs')
-rw-r--r--fs/ecryptfs/dentry.c20
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 @@
32/** 32/**
33 * ecryptfs_d_revalidate - revalidate an ecryptfs dentry 33 * ecryptfs_d_revalidate - revalidate an ecryptfs dentry
34 * @dentry: The ecryptfs dentry 34 * @dentry: The ecryptfs dentry
35 * @nd: The associated nameidata 35 * @flags: lookup flags
36 * 36 *
37 * Called when the VFS needs to revalidate a dentry. This 37 * Called when the VFS needs to revalidate a dentry. This
38 * is called whenever a name lookup finds a dentry in the 38 * is called whenever a name lookup finds a dentry in the
@@ -42,32 +42,20 @@
42 * Returns 1 if valid, 0 otherwise. 42 * Returns 1 if valid, 0 otherwise.
43 * 43 *
44 */ 44 */
45static int ecryptfs_d_revalidate(struct dentry *dentry, struct nameidata *nd) 45static int ecryptfs_d_revalidate(struct dentry *dentry, unsigned int flags)
46{ 46{
47 struct dentry *lower_dentry; 47 struct dentry *lower_dentry;
48 struct vfsmount *lower_mnt; 48 struct vfsmount *lower_mnt;
49 struct dentry *dentry_save = NULL;
50 struct vfsmount *vfsmount_save = NULL;
51 int rc = 1; 49 int rc = 1;
52 50
53 if (nd && nd->flags & LOOKUP_RCU) 51 if (flags & LOOKUP_RCU)
54 return -ECHILD; 52 return -ECHILD;
55 53
56 lower_dentry = ecryptfs_dentry_to_lower(dentry); 54 lower_dentry = ecryptfs_dentry_to_lower(dentry);
57 lower_mnt = ecryptfs_dentry_to_lower_mnt(dentry); 55 lower_mnt = ecryptfs_dentry_to_lower_mnt(dentry);
58 if (!lower_dentry->d_op || !lower_dentry->d_op->d_revalidate) 56 if (!lower_dentry->d_op || !lower_dentry->d_op->d_revalidate)
59 goto out; 57 goto out;
60 if (nd) { 58 rc = lower_dentry->d_op->d_revalidate(lower_dentry, flags);
61 dentry_save = nd->path.dentry;
62 vfsmount_save = nd->path.mnt;
63 nd->path.dentry = lower_dentry;
64 nd->path.mnt = lower_mnt;
65 }
66 rc = lower_dentry->d_op->d_revalidate(lower_dentry, nd);
67 if (nd) {
68 nd->path.dentry = dentry_save;
69 nd->path.mnt = vfsmount_save;
70 }
71 if (dentry->d_inode) { 59 if (dentry->d_inode) {
72 struct inode *lower_inode = 60 struct inode *lower_inode =
73 ecryptfs_inode_to_lower(dentry->d_inode); 61 ecryptfs_inode_to_lower(dentry->d_inode);