aboutsummaryrefslogtreecommitdiffstats
path: root/fs/9p/vfs_inode.c
diff options
context:
space:
mode:
authorEric Van Hensbergen <ericvh@ericvh-desktop.austin.ibm.com>2007-07-13 13:01:27 -0500
committerEric Van Hensbergen <ericvh@ericvh-desktop.austin.ibm.com>2007-07-14 15:14:08 -0500
commit9523a841b109765f8779236d28be6458ee3a6824 (patch)
tree3701f26715eae8dcfb7610984051720a6f588019 /fs/9p/vfs_inode.c
parentnet/9p: set error to EREMOTEIO if trans->write returns zero (diff)
downloadlinux-dev-9523a841b109765f8779236d28be6458ee3a6824.tar.xz
linux-dev-9523a841b109765f8779236d28be6458ee3a6824.zip
9p: cache meta-data when cache=loose
This patch expands the impact of the loose cache mode to allow for cached metadata increasing the performance of directory listings and other metadata read operations. Signed-off-by: Eric Van Hensbergen <ericvh@gmail.com>
Diffstat (limited to 'fs/9p/vfs_inode.c')
-rw-r--r--fs/9p/vfs_inode.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/fs/9p/vfs_inode.c b/fs/9p/vfs_inode.c
index c602c0e054a2..e5c45eed58a9 100644
--- a/fs/9p/vfs_inode.c
+++ b/fs/9p/vfs_inode.c
@@ -716,6 +716,9 @@ v9fs_vfs_getattr(struct vfsmount *mnt, struct dentry *dentry,
P9_DPRINTK(P9_DEBUG_VFS, "dentry: %p\n", dentry);
err = -EPERM;
v9ses = v9fs_inode2v9ses(dentry->d_inode);
+ if (v9ses->cache == CACHE_LOOSE)
+ return simple_getattr(mnt, dentry, stat);
+
fid = v9fs_fid_lookup(dentry);
if (IS_ERR(fid))
return PTR_ERR(fid);