forked from luck/tmp_suning_uos_patched
cifs: get rid of blind d_drop() in readdir
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
This commit is contained in:
parent
c44600c9d1
commit
0903a0c849
|
@ -86,14 +86,17 @@ cifs_readdir_lookup(struct dentry *parent, struct qstr *name,
|
||||||
|
|
||||||
dentry = d_lookup(parent, name);
|
dentry = d_lookup(parent, name);
|
||||||
if (dentry) {
|
if (dentry) {
|
||||||
|
int err;
|
||||||
inode = dentry->d_inode;
|
inode = dentry->d_inode;
|
||||||
/* update inode in place if i_ino didn't change */
|
/* update inode in place if i_ino didn't change */
|
||||||
if (inode && CIFS_I(inode)->uniqueid == fattr->cf_uniqueid) {
|
if (inode && CIFS_I(inode)->uniqueid == fattr->cf_uniqueid) {
|
||||||
cifs_fattr_to_inode(inode, fattr);
|
cifs_fattr_to_inode(inode, fattr);
|
||||||
return dentry;
|
return dentry;
|
||||||
}
|
}
|
||||||
d_drop(dentry);
|
err = d_invalidate(dentry);
|
||||||
dput(dentry);
|
dput(dentry);
|
||||||
|
if (err)
|
||||||
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
dentry = d_alloc(parent, name);
|
dentry = d_alloc(parent, name);
|
||||||
|
|
Loading…
Reference in New Issue
Block a user