cifs: get rid of blind d_drop() in readdir
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
This commit is contained in:
Родитель
c44600c9d1
Коммит
0903a0c849
|
@ -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);
|
||||
|
|
Загрузка…
Ссылка в новой задаче