CIFS: Fix cifs_do_create error hadnling
Commit d2c127197d
caused a regression
in cifs_do_create error handling. Fix this by closing a file handle
in the case of a get_inode_info(_unix) error. Also remove unnecessary
checks for newinode being NULL.
Signed-off-by: Pavel Shilovsky <pshilovsky@samba.org>
Signed-off-by: Steve French <smfrench@gmail.com>
This commit is contained in:
parent
985e4ff016
commit
ea7b4887e7
|
@ -356,19 +356,12 @@ cifs_create_get_file_info:
|
||||||
cifs_create_set_dentry:
|
cifs_create_set_dentry:
|
||||||
if (rc != 0) {
|
if (rc != 0) {
|
||||||
cFYI(1, "Create worked, get_inode_info failed rc = %d", rc);
|
cFYI(1, "Create worked, get_inode_info failed rc = %d", rc);
|
||||||
|
CIFSSMBClose(xid, tcon, *fileHandle);
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
d_drop(direntry);
|
d_drop(direntry);
|
||||||
d_add(direntry, newinode);
|
d_add(direntry, newinode);
|
||||||
|
|
||||||
/* ENOENT for create? How weird... */
|
|
||||||
rc = -ENOENT;
|
|
||||||
if (!newinode) {
|
|
||||||
CIFSSMBClose(xid, tcon, *fileHandle);
|
|
||||||
goto out;
|
|
||||||
}
|
|
||||||
rc = 0;
|
|
||||||
|
|
||||||
out:
|
out:
|
||||||
kfree(buf);
|
kfree(buf);
|
||||||
kfree(full_path);
|
kfree(full_path);
|
||||||
|
|
Loading…
Reference in New Issue