mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-05-10 10:20:17 -04:00
Merge tag '6.1-rc6-smb3-fixes' of git://git.samba.org/sfrench/cifs-2.6
Pull cifs fixes from Steve French:
"Two small cifs/smb3 client fixes:
- an unlock missing in an error path in copychunk_range found by
xfstest 476
- a fix for a use after free in a debug code path"
* tag '6.1-rc6-smb3-fixes' of git://git.samba.org/sfrench/cifs-2.6:
cifs: fix missing unlock in cifs_file_copychunk_range()
cifs: Use after free in debug code
This commit is contained in:
@@ -1281,7 +1281,7 @@ ssize_t cifs_file_copychunk_range(unsigned int xid,
|
||||
rc = filemap_write_and_wait_range(src_inode->i_mapping, off,
|
||||
off + len - 1);
|
||||
if (rc)
|
||||
goto out;
|
||||
goto unlock;
|
||||
|
||||
/* should we flush first and last page first */
|
||||
truncate_inode_pages(&target_inode->i_data, 0);
|
||||
@@ -1297,6 +1297,8 @@ ssize_t cifs_file_copychunk_range(unsigned int xid,
|
||||
* that target is updated on the server
|
||||
*/
|
||||
CIFS_I(target_inode)->time = 0;
|
||||
|
||||
unlock:
|
||||
/* although unlocking in the reverse order from locking is not
|
||||
* strictly necessary here it is a little cleaner to be consistent
|
||||
*/
|
||||
|
||||
@@ -302,14 +302,14 @@ cifs_chan_update_iface(struct cifs_ses *ses, struct TCP_Server_Info *server)
|
||||
|
||||
/* now drop the ref to the current iface */
|
||||
if (old_iface && iface) {
|
||||
kref_put(&old_iface->refcount, release_iface);
|
||||
cifs_dbg(FYI, "replacing iface: %pIS with %pIS\n",
|
||||
&old_iface->sockaddr,
|
||||
&iface->sockaddr);
|
||||
} else if (old_iface) {
|
||||
kref_put(&old_iface->refcount, release_iface);
|
||||
} else if (old_iface) {
|
||||
cifs_dbg(FYI, "releasing ref to iface: %pIS\n",
|
||||
&old_iface->sockaddr);
|
||||
kref_put(&old_iface->refcount, release_iface);
|
||||
} else {
|
||||
WARN_ON(!iface);
|
||||
cifs_dbg(FYI, "adding new iface: %pIS\n", &iface->sockaddr);
|
||||
|
||||
Reference in New Issue
Block a user