diff --git a/[refs] b/[refs] index a842af46ffa9..efa252a921f3 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: c44600c9d1de64314c2bd58103f15acb53e10073 +refs/heads/master: 0903a0c8491c1e987dfc6eb294199a36760398bc diff --git a/trunk/fs/cifs/readdir.c b/trunk/fs/cifs/readdir.c index f9b5d3d6cf33..1c576e871366 100644 --- a/trunk/fs/cifs/readdir.c +++ b/trunk/fs/cifs/readdir.c @@ -86,14 +86,17 @@ cifs_readdir_lookup(struct dentry *parent, struct qstr *name, dentry = d_lookup(parent, name); if (dentry) { + int err; 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); + err = d_invalidate(dentry); dput(dentry); + if (err) + return NULL; } dentry = d_alloc(parent, name);