summaryrefslogtreecommitdiffstats
path: root/fs/ecryptfs/ecryptfs_kernel.h
diff options
context:
space:
mode:
authorAl Viro <viro@zeniv.linux.org.uk>2013-09-16 02:45:11 +0200
committerAl Viro <viro@zeniv.linux.org.uk>2013-10-25 05:34:48 +0200
commit2edbfbf1c1ab0aeb58ce8abfb69b6f6b63542848 (patch)
treedc37f9a9aac1cd63c578841b29a039fbe86f48bf /fs/ecryptfs/ecryptfs_kernel.h
parentecryptfs: check DCACHE_OP_REVALIDATE instead of ->d_op (diff)
downloadlinux-2edbfbf1c1ab0aeb58ce8abfb69b6f6b63542848.tar.xz
linux-2edbfbf1c1ab0aeb58ce8abfb69b6f6b63542848.zip
ecryptfs: don't leave RCU pathwalk immediately
If the underlying dentry doesn't have ->d_revalidate(), there's no need to force dropping out of RCU mode. All we need for that is to make freeing ecryptfs_dentry_info RCU-delayed. Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Diffstat (limited to 'fs/ecryptfs/ecryptfs_kernel.h')
-rw-r--r--fs/ecryptfs/ecryptfs_kernel.h5
1 files changed, 4 insertions, 1 deletions
diff --git a/fs/ecryptfs/ecryptfs_kernel.h b/fs/ecryptfs/ecryptfs_kernel.h
index df19d34a033b..e7ad2b3f24a7 100644
--- a/fs/ecryptfs/ecryptfs_kernel.h
+++ b/fs/ecryptfs/ecryptfs_kernel.h
@@ -261,7 +261,10 @@ struct ecryptfs_inode_info {
* vfsmount too. */
struct ecryptfs_dentry_info {
struct path lower_path;
- struct ecryptfs_crypt_stat *crypt_stat;
+ union {
+ struct ecryptfs_crypt_stat *crypt_stat;
+ struct rcu_head rcu;
+ };
};
/**