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); }