summaryrefslogtreecommitdiff
path: root/fs/cifs/readdir.c
diff options
context:
space:
mode:
authorMark Brown <broonie@linaro.org>2013-08-22 11:09:03 +0100
committerMark Brown <broonie@linaro.org>2013-08-22 11:09:03 +0100
commit64393c6e647c8a791243063d282c787b46721be7 (patch)
tree89ca12bd5d52e8df24d2bc13a36d30479a4e825d /fs/cifs/readdir.c
parenta2388a498ad2f85be01aca29e364abf427d9b53c (diff)
parent741a509f34d8d702f70d0ad99b8152c57d76961e (diff)
Merge remote-tracking branch 'asoc/topic/ac97' into asoc-fsl
Diffstat (limited to 'fs/cifs/readdir.c')
-rw-r--r--fs/cifs/readdir.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/fs/cifs/readdir.c b/fs/cifs/readdir.c
index ab8778469394..69d2c826a23b 100644
--- a/fs/cifs/readdir.c
+++ b/fs/cifs/readdir.c
@@ -111,6 +111,14 @@ cifs_prime_dcache(struct dentry *parent, struct qstr *name,
return;
}
+ /*
+ * If we know that the inode will need to be revalidated immediately,
+ * then don't create a new dentry for it. We'll end up doing an on
+ * the wire call either way and this spares us an invalidation.
+ */
+ if (fattr->cf_flags & CIFS_FATTR_NEED_REVAL)
+ return;
+
dentry = d_alloc(parent, name);
if (!dentry)
return;