mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-03-18 05:04:04 +00:00
two smb3 client fixes
-----BEGIN PGP SIGNATURE----- iQGzBAABCgAdFiEE6fsu8pdIjtWE/DpLiiy9cAdyT1EFAmUgfesACgkQiiy9cAdy T1G4Owv+PWBc6OqHR3VzXHvkw5A6I9f1neVcYtN+8NyxVreaMWmj/xSe1IshBNxm 4vkkkdEMr8E3FQQ4tuciFrUMpPhlYy8mXa2QqUuHv0gKe/etcnecp6cHtMyiCDDs Z1PSGzFlQ/1f/O5yGmUy4l3Mn6HPh2InHoPrw7GKbMitxwaoAhVgHEb+5mljM+7n fMcEuNWRkIFTJc6F8/VOHkFR/+vLGpTOCW+QwN/WrD9GgxI+Y07BhAWBNjju1tRI ao5KYQYhOu/SsZ51QwUCb5uxk7IoCIBKeR6YTCHsbXavUTzKNcmNTYnAVia03ebp 0+DLOtZquEYdvKKa5vDWEJK5+W1Em6RKHF8rfhn7DKHeJTbyznzcpwOLU8AbwyTE u7WXw1kyhGgEur4GJHYBs8pXcaBnP2GXf/njW0SAQQP0fu5vgwqFo8xWm077K8jZ 6NQ85qR+3AlytXP8Qz7rSb0dZMuOSfc7KflMlgN4PVj9kcHj3ku3YXnHBxSti5hG BetEOa4m =vjil -----END PGP SIGNATURE----- Merge tag '6.6-rc4-smb3-client-fixes' of git://git.samba.org/sfrench/cifs-2.6 Pull smb client fixes from Steve French: - protect cifs/smb3 socket connect from BPF address overwrite - fix case when directory leases disabled but wasting resources with unneeded thread on each mount * tag '6.6-rc4-smb3-client-fixes' of git://git.samba.org/sfrench/cifs-2.6: smb: client: do not start laundromat thread on nohandlecache smb: use kernel_connect() and kernel_bind()
This commit is contained in:
commit
59f3fd30af
1 changed files with 13 additions and 13 deletions
|
@ -2474,8 +2474,9 @@ cifs_put_tcon(struct cifs_tcon *tcon)
|
|||
static struct cifs_tcon *
|
||||
cifs_get_tcon(struct cifs_ses *ses, struct smb3_fs_context *ctx)
|
||||
{
|
||||
int rc, xid;
|
||||
struct cifs_tcon *tcon;
|
||||
bool nohandlecache;
|
||||
int rc, xid;
|
||||
|
||||
tcon = cifs_find_tcon(ses, ctx);
|
||||
if (tcon) {
|
||||
|
@ -2493,14 +2494,17 @@ cifs_get_tcon(struct cifs_ses *ses, struct smb3_fs_context *ctx)
|
|||
goto out_fail;
|
||||
}
|
||||
|
||||
if (ses->server->capabilities & SMB2_GLOBAL_CAP_DIRECTORY_LEASING)
|
||||
tcon = tcon_info_alloc(true);
|
||||
if (ses->server->dialect >= SMB20_PROT_ID &&
|
||||
(ses->server->capabilities & SMB2_GLOBAL_CAP_DIRECTORY_LEASING))
|
||||
nohandlecache = ctx->nohandlecache;
|
||||
else
|
||||
tcon = tcon_info_alloc(false);
|
||||
nohandlecache = true;
|
||||
tcon = tcon_info_alloc(!nohandlecache);
|
||||
if (tcon == NULL) {
|
||||
rc = -ENOMEM;
|
||||
goto out_fail;
|
||||
}
|
||||
tcon->nohandlecache = nohandlecache;
|
||||
|
||||
if (ctx->snapshot_time) {
|
||||
if (ses->server->vals->protocol_id == 0) {
|
||||
|
@ -2662,10 +2666,6 @@ cifs_get_tcon(struct cifs_ses *ses, struct smb3_fs_context *ctx)
|
|||
tcon->nocase = ctx->nocase;
|
||||
tcon->broken_sparse_sup = ctx->no_sparse;
|
||||
tcon->max_cached_dirs = ctx->max_cached_dirs;
|
||||
if (ses->server->capabilities & SMB2_GLOBAL_CAP_DIRECTORY_LEASING)
|
||||
tcon->nohandlecache = ctx->nohandlecache;
|
||||
else
|
||||
tcon->nohandlecache = true;
|
||||
tcon->nodelete = ctx->nodelete;
|
||||
tcon->local_lease = ctx->local_lease;
|
||||
INIT_LIST_HEAD(&tcon->pending_opens);
|
||||
|
@ -2895,9 +2895,9 @@ bind_socket(struct TCP_Server_Info *server)
|
|||
if (server->srcaddr.ss_family != AF_UNSPEC) {
|
||||
/* Bind to the specified local IP address */
|
||||
struct socket *socket = server->ssocket;
|
||||
rc = socket->ops->bind(socket,
|
||||
(struct sockaddr *) &server->srcaddr,
|
||||
sizeof(server->srcaddr));
|
||||
rc = kernel_bind(socket,
|
||||
(struct sockaddr *) &server->srcaddr,
|
||||
sizeof(server->srcaddr));
|
||||
if (rc < 0) {
|
||||
struct sockaddr_in *saddr4;
|
||||
struct sockaddr_in6 *saddr6;
|
||||
|
@ -3046,8 +3046,8 @@ generic_ip_connect(struct TCP_Server_Info *server)
|
|||
socket->sk->sk_sndbuf,
|
||||
socket->sk->sk_rcvbuf, socket->sk->sk_rcvtimeo);
|
||||
|
||||
rc = socket->ops->connect(socket, saddr, slen,
|
||||
server->noblockcnt ? O_NONBLOCK : 0);
|
||||
rc = kernel_connect(socket, saddr, slen,
|
||||
server->noblockcnt ? O_NONBLOCK : 0);
|
||||
/*
|
||||
* When mounting SMB root file systems, we do not want to block in
|
||||
* connect. Otherwise bail out and then let cifs_reconnect() perform
|
||||
|
|
Loading…
Add table
Reference in a new issue