Commit a446e965 authored by Linus Torvalds's avatar Linus Torvalds
Browse files

Merge tag '6.13-rc2-smb3-client-fixes' of git://git.samba.org/sfrench/cifs-2.6

Pull smb client fixes from Steve French:

 - fix rmmod leak

 - two minor cleanups

 - fix for unlink/rename with pending i/o

* tag '6.13-rc2-smb3-client-fixes' of git://git.samba.org/sfrench/cifs-2.6:
  smb: client: destroy cfid_put_wq on module exit
  cifs: Use str_yes_no() helper in cifs_ses_add_channel()
  cifs: Fix rmdir failure due to ongoing I/O on deleted file
  smb3: fix compiler warning in reparse code
parents f8613561 633609c4
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -2043,6 +2043,7 @@ exit_cifs(void)
	destroy_workqueue(decrypt_wq);
	destroy_workqueue(fileinfo_put_wq);
	destroy_workqueue(serverclose_wq);
	destroy_workqueue(cfid_put_wq);
	destroy_workqueue(cifsiod_wq);
	cifs_proc_clean();
}
+4 −1
Original line number Diff line number Diff line
@@ -1947,6 +1947,7 @@ int cifs_unlink(struct inode *dir, struct dentry *dentry)
		goto unlink_out;
	}

	netfs_wait_for_outstanding_io(inode);
	cifs_close_deferred_file_under_dentry(tcon, full_path);
#ifdef CONFIG_CIFS_ALLOW_INSECURE_LEGACY
	if (cap_unix(tcon->ses) && (CIFS_UNIX_POSIX_PATH_OPS_CAP &
@@ -2464,8 +2465,10 @@ cifs_rename2(struct mnt_idmap *idmap, struct inode *source_dir,
	}

	cifs_close_deferred_file_under_dentry(tcon, from_name);
	if (d_inode(target_dentry) != NULL)
	if (d_inode(target_dentry) != NULL) {
		netfs_wait_for_outstanding_io(d_inode(target_dentry));
		cifs_close_deferred_file_under_dentry(tcon, to_name);
	}

	rc = cifs_do_rename(xid, source_dentry, from_name, target_dentry,
			    to_name);
+1 −1
Original line number Diff line number Diff line
@@ -676,7 +676,7 @@ static int parse_reparse_wsl_symlink(struct reparse_wsl_symlink_data_buffer *buf
		return -ENOMEM;
	symname_utf16_len = utf8s_to_utf16s(buf->PathBuffer, symname_utf8_len,
					    UTF16_LITTLE_ENDIAN,
					    symname_utf16, symname_utf8_len * 2);
					    (wchar_t *) symname_utf16, symname_utf8_len * 2);
	if (symname_utf16_len < 0) {
		kfree(symname_utf16);
		return symname_utf16_len;
+2 −2
Original line number Diff line number Diff line
@@ -488,11 +488,11 @@ cifs_ses_add_channel(struct cifs_ses *ses,

	if (iface->sockaddr.ss_family == AF_INET)
		cifs_dbg(FYI, "adding channel to ses %p (speed:%zu bps rdma:%s ip:%pI4)\n",
			 ses, iface->speed, iface->rdma_capable ? "yes" : "no",
			 ses, iface->speed, str_yes_no(iface->rdma_capable),
			 &ipv4->sin_addr);
	else
		cifs_dbg(FYI, "adding channel to ses %p (speed:%zu bps rdma:%s ip:%pI6)\n",
			 ses, iface->speed, iface->rdma_capable ? "yes" : "no",
			 ses, iface->speed, str_yes_no(iface->rdma_capable),
			 &ipv6->sin6_addr);

	/*