summaryrefslogtreecommitdiffstats
path: root/fs/orangefs/dcache.c
diff options
context:
space:
mode:
authorMartin Brandenburg2016-01-30 19:46:54 +0100
committerMike Marshall2016-02-04 20:12:37 +0100
commit933287da750edefbf0f449750fd67b4fc6c10013 (patch)
treebff11480a25729ac8adaeb25b1eb267a200b8679 /fs/orangefs/dcache.c
parentorangefs: Only compare attributes specified in orangefs_inode_getattr. (diff)
downloadkernel-qcow2-linux-933287da750edefbf0f449750fd67b4fc6c10013.tar.gz
kernel-qcow2-linux-933287da750edefbf0f449750fd67b4fc6c10013.tar.xz
kernel-qcow2-linux-933287da750edefbf0f449750fd67b4fc6c10013.zip
orangefs: Implement inode_operations->permission().
Thus d_revalidate is not obliged to check on as much, which will eventually lead the way to hammering the filesystem servers much less. Signed-off-by: Martin Brandenburg <martin@omnibond.com> Signed-off-by: Mike Marshall <hubcap@omnibond.com>
Diffstat (limited to 'fs/orangefs/dcache.c')
-rw-r--r--fs/orangefs/dcache.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/fs/orangefs/dcache.c b/fs/orangefs/dcache.c
index e8fb79de37c6..a6911dbbf3e5 100644
--- a/fs/orangefs/dcache.c
+++ b/fs/orangefs/dcache.c
@@ -119,8 +119,9 @@ static int orangefs_d_revalidate(struct dentry *dentry, unsigned int flags)
goto out;
/* Now we must perform a getattr to validate the inode contents. */
+
ret = orangefs_inode_getattr(dentry->d_inode,
- ORANGEFS_ATTR_SYS_ALL_NOHINT, 1);
+ ORANGEFS_ATTR_SYS_TYPE|ORANGEFS_ATTR_SYS_LNK_TARGET, 1);
if (ret < 0) {
gossip_debug(GOSSIP_DCACHE_DEBUG, "%s:%s:%d getattr failure.\n",
__FILE__, __func__, __LINE__);