From 9da6116c7b66abd7dd10cac8267c7640cc5b465d Mon Sep 17 00:00:00 2001 From: Jeff Layton Date: Fri, 6 Jul 2012 07:09:42 -0400 Subject: [PATCH] --- yaml --- r: 312054 b: refs/heads/master c: cd60042cc1392e79410dc8de9e9c1abb38a29e57 h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/fs/cifs/readdir.c | 7 +++++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/[refs] b/[refs] index e2117bbc8e8a..1cc3c7b082c3 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 3cf003c08be785af4bee9ac05891a15bcbff856a +refs/heads/master: cd60042cc1392e79410dc8de9e9c1abb38a29e57 diff --git a/trunk/fs/cifs/readdir.c b/trunk/fs/cifs/readdir.c index 0a8224d1c4c5..a4217f02fab2 100644 --- a/trunk/fs/cifs/readdir.c +++ b/trunk/fs/cifs/readdir.c @@ -86,9 +86,12 @@ cifs_readdir_lookup(struct dentry *parent, struct qstr *name, dentry = d_lookup(parent, name); if (dentry) { - /* FIXME: check for inode number changes? */ - if (dentry->d_inode != NULL) + inode = dentry->d_inode; + /* update inode in place if i_ino didn't change */ + if (inode && CIFS_I(inode)->uniqueid == fattr->cf_uniqueid) { + cifs_fattr_to_inode(inode, fattr); return dentry; + } d_drop(dentry); dput(dentry); }