cifs: add a debug macro that prints \\server\share for errors
Where we have a tcon available we can log \\server\share as part of the message. Only do this for the VFS log level. Signed-off-by: Ronnie Sahlberg <lsahlber@redhat.com> Signed-off-by: Steve French <stfrench@microsoft.com>
This commit is contained in:
Родитель
46f17d1768
Коммит
3175eb9b57
|
@ -82,15 +82,18 @@ do { \
|
||||||
|
|
||||||
#define cifs_server_dbg_func(ratefunc, type, fmt, ...) \
|
#define cifs_server_dbg_func(ratefunc, type, fmt, ...) \
|
||||||
do { \
|
do { \
|
||||||
|
const char *sn = ""; \
|
||||||
|
if (server && server->hostname) \
|
||||||
|
sn = server->hostname; \
|
||||||
if ((type) & FYI && cifsFYI & CIFS_INFO) { \
|
if ((type) & FYI && cifsFYI & CIFS_INFO) { \
|
||||||
pr_debug_ ## ratefunc("%s: Server:%s " fmt, \
|
pr_debug_ ## ratefunc("%s: \\\\%s " fmt, \
|
||||||
__FILE__, server->hostname, ##__VA_ARGS__);\
|
__FILE__, sn, ##__VA_ARGS__); \
|
||||||
} else if ((type) & VFS) { \
|
} else if ((type) & VFS) { \
|
||||||
pr_err_ ## ratefunc("CIFS VFS: Server:%s " fmt, \
|
pr_err_ ## ratefunc("CIFS VFS: \\\\%s " fmt, \
|
||||||
server->hostname, ##__VA_ARGS__); \
|
sn, ##__VA_ARGS__); \
|
||||||
} else if ((type) & NOISY && (NOISY != 0)) { \
|
} else if ((type) & NOISY && (NOISY != 0)) { \
|
||||||
pr_debug_ ## ratefunc("Server:%s " fmt, \
|
pr_debug_ ## ratefunc("\\\\%s " fmt, \
|
||||||
server->hostname, ##__VA_ARGS__); \
|
sn, ##__VA_ARGS__); \
|
||||||
} \
|
} \
|
||||||
} while (0)
|
} while (0)
|
||||||
|
|
||||||
|
@ -104,6 +107,33 @@ do { \
|
||||||
type, fmt, ##__VA_ARGS__); \
|
type, fmt, ##__VA_ARGS__); \
|
||||||
} while (0)
|
} while (0)
|
||||||
|
|
||||||
|
#define cifs_tcon_dbg_func(ratefunc, type, fmt, ...) \
|
||||||
|
do { \
|
||||||
|
const char *tn = ""; \
|
||||||
|
if (tcon && tcon->treeName) \
|
||||||
|
tn = tcon->treeName; \
|
||||||
|
if ((type) & FYI && cifsFYI & CIFS_INFO) { \
|
||||||
|
pr_debug_ ## ratefunc("%s: %s " fmt, \
|
||||||
|
__FILE__, tn, ##__VA_ARGS__); \
|
||||||
|
} else if ((type) & VFS) { \
|
||||||
|
pr_err_ ## ratefunc("CIFS VFS: %s " fmt, \
|
||||||
|
tn, ##__VA_ARGS__); \
|
||||||
|
} else if ((type) & NOISY && (NOISY != 0)) { \
|
||||||
|
pr_debug_ ## ratefunc("%s " fmt, \
|
||||||
|
tn, ##__VA_ARGS__); \
|
||||||
|
} \
|
||||||
|
} while (0)
|
||||||
|
|
||||||
|
#define cifs_tcon_dbg(type, fmt, ...) \
|
||||||
|
do { \
|
||||||
|
if ((type) & ONCE) \
|
||||||
|
cifs_tcon_dbg_func(once, \
|
||||||
|
type, fmt, ##__VA_ARGS__); \
|
||||||
|
else \
|
||||||
|
cifs_tcon_dbg_func(ratelimited, \
|
||||||
|
type, fmt, ##__VA_ARGS__); \
|
||||||
|
} while (0)
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* debug OFF
|
* debug OFF
|
||||||
* ---------
|
* ---------
|
||||||
|
@ -118,10 +148,16 @@ do { \
|
||||||
#define cifs_server_dbg(type, fmt, ...) \
|
#define cifs_server_dbg(type, fmt, ...) \
|
||||||
do { \
|
do { \
|
||||||
if (0) \
|
if (0) \
|
||||||
pr_debug("Server:%s " fmt, \
|
pr_debug("\\\\%s " fmt, \
|
||||||
server->hostname, ##__VA_ARGS__); \
|
server->hostname, ##__VA_ARGS__); \
|
||||||
} while (0)
|
} while (0)
|
||||||
|
|
||||||
|
#define cifs_tcon_dbg(type, fmt, ...) \
|
||||||
|
do { \
|
||||||
|
if (0) \
|
||||||
|
pr_debug("%s " fmt, tcon->treeName, ##__VA_ARGS__); \
|
||||||
|
} while (0)
|
||||||
|
|
||||||
#define cifs_info(fmt, ...) \
|
#define cifs_info(fmt, ...) \
|
||||||
do { \
|
do { \
|
||||||
pr_info("CIFS: "fmt, ##__VA_ARGS__); \
|
pr_info("CIFS: "fmt, ##__VA_ARGS__); \
|
||||||
|
|
|
@ -109,10 +109,10 @@ smb2_add_credits(struct TCP_Server_Info *server,
|
||||||
/* change_conf hasn't been executed */
|
/* change_conf hasn't been executed */
|
||||||
break;
|
break;
|
||||||
case 0:
|
case 0:
|
||||||
cifs_dbg(VFS, "Possible client or server bug - zero credits\n");
|
cifs_server_dbg(VFS, "Possible client or server bug - zero credits\n");
|
||||||
break;
|
break;
|
||||||
case 1:
|
case 1:
|
||||||
cifs_dbg(VFS, "disabling echoes and oplocks\n");
|
cifs_server_dbg(VFS, "disabling echoes and oplocks\n");
|
||||||
break;
|
break;
|
||||||
case 2:
|
case 2:
|
||||||
cifs_dbg(FYI, "disabling oplocks\n");
|
cifs_dbg(FYI, "disabling oplocks\n");
|
||||||
|
@ -230,7 +230,7 @@ smb2_adjust_credits(struct TCP_Server_Info *server,
|
||||||
|
|
||||||
if (server->reconnect_instance != credits->instance) {
|
if (server->reconnect_instance != credits->instance) {
|
||||||
spin_unlock(&server->req_lock);
|
spin_unlock(&server->req_lock);
|
||||||
cifs_dbg(VFS, "trying to return %d credits to old session\n",
|
cifs_server_dbg(VFS, "trying to return %d credits to old session\n",
|
||||||
credits->value - new_val);
|
credits->value - new_val);
|
||||||
return -EAGAIN;
|
return -EAGAIN;
|
||||||
}
|
}
|
||||||
|
@ -270,7 +270,7 @@ smb2_find_mid(struct TCP_Server_Info *server, char *buf)
|
||||||
__u64 wire_mid = le64_to_cpu(shdr->MessageId);
|
__u64 wire_mid = le64_to_cpu(shdr->MessageId);
|
||||||
|
|
||||||
if (shdr->ProtocolId == SMB2_TRANSFORM_PROTO_NUM) {
|
if (shdr->ProtocolId == SMB2_TRANSFORM_PROTO_NUM) {
|
||||||
cifs_dbg(VFS, "Encrypted frame parsing not supported yet\n");
|
cifs_server_dbg(VFS, "Encrypted frame parsing not supported yet\n");
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -294,10 +294,10 @@ smb2_dump_detail(void *buf, struct TCP_Server_Info *server)
|
||||||
#ifdef CONFIG_CIFS_DEBUG2
|
#ifdef CONFIG_CIFS_DEBUG2
|
||||||
struct smb2_sync_hdr *shdr = (struct smb2_sync_hdr *)buf;
|
struct smb2_sync_hdr *shdr = (struct smb2_sync_hdr *)buf;
|
||||||
|
|
||||||
cifs_dbg(VFS, "Cmd: %d Err: 0x%x Flags: 0x%x Mid: %llu Pid: %d\n",
|
cifs_server_dbg(VFS, "Cmd: %d Err: 0x%x Flags: 0x%x Mid: %llu Pid: %d\n",
|
||||||
shdr->Command, shdr->Status, shdr->Flags, shdr->MessageId,
|
shdr->Command, shdr->Status, shdr->Flags, shdr->MessageId,
|
||||||
shdr->ProcessId);
|
shdr->ProcessId);
|
||||||
cifs_dbg(VFS, "smb buf %p len %u\n", buf,
|
cifs_server_dbg(VFS, "smb buf %p len %u\n", buf,
|
||||||
server->ops->calc_smb_size(buf, server));
|
server->ops->calc_smb_size(buf, server));
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
@ -576,7 +576,7 @@ SMB3_request_interfaces(const unsigned int xid, struct cifs_tcon *tcon)
|
||||||
"server does not support query network interfaces\n");
|
"server does not support query network interfaces\n");
|
||||||
goto out;
|
goto out;
|
||||||
} else if (rc != 0) {
|
} else if (rc != 0) {
|
||||||
cifs_dbg(VFS, "error %d on ioctl to get interface list\n", rc);
|
cifs_tcon_dbg(VFS, "error %d on ioctl to get interface list\n", rc);
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1330,11 +1330,11 @@ SMB2_request_res_key(const unsigned int xid, struct cifs_tcon *tcon,
|
||||||
(char **)&res_key, &ret_data_len);
|
(char **)&res_key, &ret_data_len);
|
||||||
|
|
||||||
if (rc) {
|
if (rc) {
|
||||||
cifs_dbg(VFS, "refcpy ioctl error %d getting resume key\n", rc);
|
cifs_tcon_dbg(VFS, "refcpy ioctl error %d getting resume key\n", rc);
|
||||||
goto req_res_key_exit;
|
goto req_res_key_exit;
|
||||||
}
|
}
|
||||||
if (ret_data_len < sizeof(struct resume_key_req)) {
|
if (ret_data_len < sizeof(struct resume_key_req)) {
|
||||||
cifs_dbg(VFS, "Invalid refcopy resume key length\n");
|
cifs_tcon_dbg(VFS, "Invalid refcopy resume key length\n");
|
||||||
rc = -EINVAL;
|
rc = -EINVAL;
|
||||||
goto req_res_key_exit;
|
goto req_res_key_exit;
|
||||||
}
|
}
|
||||||
|
@ -1486,7 +1486,7 @@ smb2_ioctl_query_info(const unsigned int xid,
|
||||||
qi.input_buffer_length,
|
qi.input_buffer_length,
|
||||||
qi.output_buffer_length, buffer);
|
qi.output_buffer_length, buffer);
|
||||||
} else { /* unknown flags */
|
} else { /* unknown flags */
|
||||||
cifs_dbg(VFS, "invalid passthru query flags: 0x%x\n", qi.flags);
|
cifs_tcon_dbg(VFS, "invalid passthru query flags: 0x%x\n", qi.flags);
|
||||||
rc = -EINVAL;
|
rc = -EINVAL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1613,7 +1613,7 @@ smb2_copychunk_range(const unsigned int xid,
|
||||||
if (rc == 0) {
|
if (rc == 0) {
|
||||||
if (ret_data_len !=
|
if (ret_data_len !=
|
||||||
sizeof(struct copychunk_ioctl_rsp)) {
|
sizeof(struct copychunk_ioctl_rsp)) {
|
||||||
cifs_dbg(VFS, "invalid cchunk response size\n");
|
cifs_tcon_dbg(VFS, "invalid cchunk response size\n");
|
||||||
rc = -EIO;
|
rc = -EIO;
|
||||||
goto cchunk_out;
|
goto cchunk_out;
|
||||||
}
|
}
|
||||||
|
@ -1627,12 +1627,12 @@ smb2_copychunk_range(const unsigned int xid,
|
||||||
*/
|
*/
|
||||||
if (le32_to_cpu(retbuf->TotalBytesWritten) >
|
if (le32_to_cpu(retbuf->TotalBytesWritten) >
|
||||||
le32_to_cpu(pcchunk->Length)) {
|
le32_to_cpu(pcchunk->Length)) {
|
||||||
cifs_dbg(VFS, "invalid copy chunk response\n");
|
cifs_tcon_dbg(VFS, "invalid copy chunk response\n");
|
||||||
rc = -EIO;
|
rc = -EIO;
|
||||||
goto cchunk_out;
|
goto cchunk_out;
|
||||||
}
|
}
|
||||||
if (le32_to_cpu(retbuf->ChunksWritten) != 1) {
|
if (le32_to_cpu(retbuf->ChunksWritten) != 1) {
|
||||||
cifs_dbg(VFS, "invalid num chunks written\n");
|
cifs_tcon_dbg(VFS, "invalid num chunks written\n");
|
||||||
rc = -EIO;
|
rc = -EIO;
|
||||||
goto cchunk_out;
|
goto cchunk_out;
|
||||||
}
|
}
|
||||||
|
@ -2422,7 +2422,7 @@ smb2_get_dfs_refer(const unsigned int xid, struct cifs_ses *ses,
|
||||||
|
|
||||||
if (rc) {
|
if (rc) {
|
||||||
if ((rc != -ENOENT) && (rc != -EOPNOTSUPP))
|
if ((rc != -ENOENT) && (rc != -EOPNOTSUPP))
|
||||||
cifs_dbg(VFS, "ioctl error in %s rc=%d\n", __func__, rc);
|
cifs_tcon_dbg(VFS, "ioctl error in %s rc=%d\n", __func__, rc);
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2431,7 +2431,7 @@ smb2_get_dfs_refer(const unsigned int xid, struct cifs_ses *ses,
|
||||||
nls_codepage, remap, search_name,
|
nls_codepage, remap, search_name,
|
||||||
true /* is_unicode */);
|
true /* is_unicode */);
|
||||||
if (rc) {
|
if (rc) {
|
||||||
cifs_dbg(VFS, "parse error in %s rc=%d\n", __func__, rc);
|
cifs_tcon_dbg(VFS, "parse error in %s rc=%d\n", __func__, rc);
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2661,7 +2661,7 @@ smb2_query_symlink(const unsigned int xid, struct cifs_tcon *tcon,
|
||||||
|
|
||||||
if (plen + le32_to_cpu(ioctl_rsp->OutputOffset) >
|
if (plen + le32_to_cpu(ioctl_rsp->OutputOffset) >
|
||||||
rsp_iov[1].iov_len) {
|
rsp_iov[1].iov_len) {
|
||||||
cifs_dbg(VFS, "srv returned invalid ioctl len: %d\n",
|
cifs_tcon_dbg(VFS, "srv returned invalid ioctl len: %d\n",
|
||||||
plen);
|
plen);
|
||||||
rc = -EIO;
|
rc = -EIO;
|
||||||
goto querty_exit;
|
goto querty_exit;
|
||||||
|
@ -3614,14 +3614,14 @@ crypt_message(struct TCP_Server_Info *server, int num_rqst,
|
||||||
|
|
||||||
rc = smb2_get_enc_key(server, tr_hdr->SessionId, enc, key);
|
rc = smb2_get_enc_key(server, tr_hdr->SessionId, enc, key);
|
||||||
if (rc) {
|
if (rc) {
|
||||||
cifs_dbg(VFS, "%s: Could not get %scryption key\n", __func__,
|
cifs_server_dbg(VFS, "%s: Could not get %scryption key\n", __func__,
|
||||||
enc ? "en" : "de");
|
enc ? "en" : "de");
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
rc = smb3_crypto_aead_allocate(server);
|
rc = smb3_crypto_aead_allocate(server);
|
||||||
if (rc) {
|
if (rc) {
|
||||||
cifs_dbg(VFS, "%s: crypto alloc failed\n", __func__);
|
cifs_server_dbg(VFS, "%s: crypto alloc failed\n", __func__);
|
||||||
return rc;
|
return rc;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -3629,19 +3629,19 @@ crypt_message(struct TCP_Server_Info *server, int num_rqst,
|
||||||
server->secmech.ccmaesdecrypt;
|
server->secmech.ccmaesdecrypt;
|
||||||
rc = crypto_aead_setkey(tfm, key, SMB3_SIGN_KEY_SIZE);
|
rc = crypto_aead_setkey(tfm, key, SMB3_SIGN_KEY_SIZE);
|
||||||
if (rc) {
|
if (rc) {
|
||||||
cifs_dbg(VFS, "%s: Failed to set aead key %d\n", __func__, rc);
|
cifs_server_dbg(VFS, "%s: Failed to set aead key %d\n", __func__, rc);
|
||||||
return rc;
|
return rc;
|
||||||
}
|
}
|
||||||
|
|
||||||
rc = crypto_aead_setauthsize(tfm, SMB2_SIGNATURE_SIZE);
|
rc = crypto_aead_setauthsize(tfm, SMB2_SIGNATURE_SIZE);
|
||||||
if (rc) {
|
if (rc) {
|
||||||
cifs_dbg(VFS, "%s: Failed to set authsize %d\n", __func__, rc);
|
cifs_server_dbg(VFS, "%s: Failed to set authsize %d\n", __func__, rc);
|
||||||
return rc;
|
return rc;
|
||||||
}
|
}
|
||||||
|
|
||||||
req = aead_request_alloc(tfm, GFP_KERNEL);
|
req = aead_request_alloc(tfm, GFP_KERNEL);
|
||||||
if (!req) {
|
if (!req) {
|
||||||
cifs_dbg(VFS, "%s: Failed to alloc aead request\n", __func__);
|
cifs_server_dbg(VFS, "%s: Failed to alloc aead request\n", __func__);
|
||||||
return -ENOMEM;
|
return -ENOMEM;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -3652,7 +3652,7 @@ crypt_message(struct TCP_Server_Info *server, int num_rqst,
|
||||||
|
|
||||||
sg = init_sg(num_rqst, rqst, sign);
|
sg = init_sg(num_rqst, rqst, sign);
|
||||||
if (!sg) {
|
if (!sg) {
|
||||||
cifs_dbg(VFS, "%s: Failed to init sg\n", __func__);
|
cifs_server_dbg(VFS, "%s: Failed to init sg\n", __func__);
|
||||||
rc = -ENOMEM;
|
rc = -ENOMEM;
|
||||||
goto free_req;
|
goto free_req;
|
||||||
}
|
}
|
||||||
|
@ -3660,7 +3660,7 @@ crypt_message(struct TCP_Server_Info *server, int num_rqst,
|
||||||
iv_len = crypto_aead_ivsize(tfm);
|
iv_len = crypto_aead_ivsize(tfm);
|
||||||
iv = kzalloc(iv_len, GFP_KERNEL);
|
iv = kzalloc(iv_len, GFP_KERNEL);
|
||||||
if (!iv) {
|
if (!iv) {
|
||||||
cifs_dbg(VFS, "%s: Failed to alloc iv\n", __func__);
|
cifs_server_dbg(VFS, "%s: Failed to alloc iv\n", __func__);
|
||||||
rc = -ENOMEM;
|
rc = -ENOMEM;
|
||||||
goto free_sg;
|
goto free_sg;
|
||||||
}
|
}
|
||||||
|
@ -3902,7 +3902,7 @@ handle_read_data(struct TCP_Server_Info *server, struct mid_q_entry *mid,
|
||||||
bool use_rdma_mr = false;
|
bool use_rdma_mr = false;
|
||||||
|
|
||||||
if (shdr->Command != SMB2_READ) {
|
if (shdr->Command != SMB2_READ) {
|
||||||
cifs_dbg(VFS, "only big read responses are supported\n");
|
cifs_server_dbg(VFS, "only big read responses are supported\n");
|
||||||
return -ENOTSUPP;
|
return -ENOTSUPP;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -4148,7 +4148,7 @@ one_more:
|
||||||
}
|
}
|
||||||
|
|
||||||
if (*num_mids >= MAX_COMPOUND) {
|
if (*num_mids >= MAX_COMPOUND) {
|
||||||
cifs_dbg(VFS, "too many PDUs in compound\n");
|
cifs_server_dbg(VFS, "too many PDUs in compound\n");
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
bufs[*num_mids] = buf;
|
bufs[*num_mids] = buf;
|
||||||
|
@ -4194,7 +4194,7 @@ smb3_receive_transform(struct TCP_Server_Info *server,
|
||||||
|
|
||||||
if (pdu_length < sizeof(struct smb2_transform_hdr) +
|
if (pdu_length < sizeof(struct smb2_transform_hdr) +
|
||||||
sizeof(struct smb2_sync_hdr)) {
|
sizeof(struct smb2_sync_hdr)) {
|
||||||
cifs_dbg(VFS, "Transform message is too small (%u)\n",
|
cifs_server_dbg(VFS, "Transform message is too small (%u)\n",
|
||||||
pdu_length);
|
pdu_length);
|
||||||
cifs_reconnect(server);
|
cifs_reconnect(server);
|
||||||
wake_up(&server->response_q);
|
wake_up(&server->response_q);
|
||||||
|
@ -4202,7 +4202,7 @@ smb3_receive_transform(struct TCP_Server_Info *server,
|
||||||
}
|
}
|
||||||
|
|
||||||
if (pdu_length < orig_len + sizeof(struct smb2_transform_hdr)) {
|
if (pdu_length < orig_len + sizeof(struct smb2_transform_hdr)) {
|
||||||
cifs_dbg(VFS, "Transform message is broken\n");
|
cifs_server_dbg(VFS, "Transform message is broken\n");
|
||||||
cifs_reconnect(server);
|
cifs_reconnect(server);
|
||||||
wake_up(&server->response_q);
|
wake_up(&server->response_q);
|
||||||
return -ECONNABORTED;
|
return -ECONNABORTED;
|
||||||
|
|
|
@ -1019,7 +1019,7 @@ int smb3_validate_negotiate(const unsigned int xid, struct cifs_tcon *tcon)
|
||||||
}
|
}
|
||||||
|
|
||||||
if (tcon->ses->session_flags & SMB2_SESSION_FLAG_IS_NULL)
|
if (tcon->ses->session_flags & SMB2_SESSION_FLAG_IS_NULL)
|
||||||
cifs_server_dbg(VFS, "Unexpected null user (anonymous) auth flag sent by server\n");
|
cifs_tcon_dbg(VFS, "Unexpected null user (anonymous) auth flag sent by server\n");
|
||||||
|
|
||||||
pneg_inbuf = kmalloc(sizeof(*pneg_inbuf), GFP_NOFS);
|
pneg_inbuf = kmalloc(sizeof(*pneg_inbuf), GFP_NOFS);
|
||||||
if (!pneg_inbuf)
|
if (!pneg_inbuf)
|
||||||
|
@ -1076,18 +1076,18 @@ int smb3_validate_negotiate(const unsigned int xid, struct cifs_tcon *tcon)
|
||||||
* Old Windows versions or Netapp SMB server can return
|
* Old Windows versions or Netapp SMB server can return
|
||||||
* not supported error. Client should accept it.
|
* not supported error. Client should accept it.
|
||||||
*/
|
*/
|
||||||
cifs_server_dbg(VFS, "Server does not support validate negotiate\n");
|
cifs_tcon_dbg(VFS, "Server does not support validate negotiate\n");
|
||||||
rc = 0;
|
rc = 0;
|
||||||
goto out_free_inbuf;
|
goto out_free_inbuf;
|
||||||
} else if (rc != 0) {
|
} else if (rc != 0) {
|
||||||
cifs_server_dbg(VFS, "validate protocol negotiate failed: %d\n", rc);
|
cifs_tcon_dbg(VFS, "validate protocol negotiate failed: %d\n", rc);
|
||||||
rc = -EIO;
|
rc = -EIO;
|
||||||
goto out_free_inbuf;
|
goto out_free_inbuf;
|
||||||
}
|
}
|
||||||
|
|
||||||
rc = -EIO;
|
rc = -EIO;
|
||||||
if (rsplen != sizeof(*pneg_rsp)) {
|
if (rsplen != sizeof(*pneg_rsp)) {
|
||||||
cifs_server_dbg(VFS, "invalid protocol negotiate response size: %d\n",
|
cifs_tcon_dbg(VFS, "invalid protocol negotiate response size: %d\n",
|
||||||
rsplen);
|
rsplen);
|
||||||
|
|
||||||
/* relax check since Mac returns max bufsize allowed on ioctl */
|
/* relax check since Mac returns max bufsize allowed on ioctl */
|
||||||
|
@ -1114,7 +1114,7 @@ int smb3_validate_negotiate(const unsigned int xid, struct cifs_tcon *tcon)
|
||||||
goto out_free_rsp;
|
goto out_free_rsp;
|
||||||
|
|
||||||
vneg_out:
|
vneg_out:
|
||||||
cifs_server_dbg(VFS, "protocol revalidation - security settings mismatch\n");
|
cifs_tcon_dbg(VFS, "protocol revalidation - security settings mismatch\n");
|
||||||
out_free_rsp:
|
out_free_rsp:
|
||||||
kfree(pneg_rsp);
|
kfree(pneg_rsp);
|
||||||
out_free_inbuf:
|
out_free_inbuf:
|
||||||
|
@ -1762,11 +1762,11 @@ SMB2_tcon(const unsigned int xid, struct cifs_ses *ses, const char *tree,
|
||||||
|
|
||||||
if ((rsp->Capabilities & SMB2_SHARE_CAP_DFS) &&
|
if ((rsp->Capabilities & SMB2_SHARE_CAP_DFS) &&
|
||||||
((tcon->share_flags & SHI1005_FLAGS_DFS) == 0))
|
((tcon->share_flags & SHI1005_FLAGS_DFS) == 0))
|
||||||
cifs_server_dbg(VFS, "DFS capability contradicts DFS flag\n");
|
cifs_tcon_dbg(VFS, "DFS capability contradicts DFS flag\n");
|
||||||
|
|
||||||
if (tcon->seal &&
|
if (tcon->seal &&
|
||||||
!(server->capabilities & SMB2_GLOBAL_CAP_ENCRYPTION))
|
!(server->capabilities & SMB2_GLOBAL_CAP_ENCRYPTION))
|
||||||
cifs_server_dbg(VFS, "Encryption is requested but not supported\n");
|
cifs_tcon_dbg(VFS, "Encryption is requested but not supported\n");
|
||||||
|
|
||||||
init_copy_chunk_defaults(tcon);
|
init_copy_chunk_defaults(tcon);
|
||||||
if (server->ops->validate_negotiate)
|
if (server->ops->validate_negotiate)
|
||||||
|
@ -1779,7 +1779,7 @@ tcon_exit:
|
||||||
|
|
||||||
tcon_error_exit:
|
tcon_error_exit:
|
||||||
if (rsp && rsp->sync_hdr.Status == STATUS_BAD_NETWORK_NAME) {
|
if (rsp && rsp->sync_hdr.Status == STATUS_BAD_NETWORK_NAME) {
|
||||||
cifs_server_dbg(VFS, "BAD_NETWORK_NAME: %s\n", tree);
|
cifs_tcon_dbg(VFS, "BAD_NETWORK_NAME: %s\n", tree);
|
||||||
}
|
}
|
||||||
goto tcon_exit;
|
goto tcon_exit;
|
||||||
}
|
}
|
||||||
|
@ -2812,14 +2812,14 @@ SMB2_ioctl(const unsigned int xid, struct cifs_tcon *tcon, u64 persistent_fid,
|
||||||
if (*plen == 0)
|
if (*plen == 0)
|
||||||
goto ioctl_exit; /* server returned no data */
|
goto ioctl_exit; /* server returned no data */
|
||||||
else if (*plen > rsp_iov.iov_len || *plen > 0xFF00) {
|
else if (*plen > rsp_iov.iov_len || *plen > 0xFF00) {
|
||||||
cifs_server_dbg(VFS, "srv returned invalid ioctl length: %d\n", *plen);
|
cifs_tcon_dbg(VFS, "srv returned invalid ioctl length: %d\n", *plen);
|
||||||
*plen = 0;
|
*plen = 0;
|
||||||
rc = -EIO;
|
rc = -EIO;
|
||||||
goto ioctl_exit;
|
goto ioctl_exit;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (rsp_iov.iov_len - *plen < le32_to_cpu(rsp->OutputOffset)) {
|
if (rsp_iov.iov_len - *plen < le32_to_cpu(rsp->OutputOffset)) {
|
||||||
cifs_server_dbg(VFS, "Malformed ioctl resp: len %d offset %d\n", *plen,
|
cifs_tcon_dbg(VFS, "Malformed ioctl resp: len %d offset %d\n", *plen,
|
||||||
le32_to_cpu(rsp->OutputOffset));
|
le32_to_cpu(rsp->OutputOffset));
|
||||||
*plen = 0;
|
*plen = 0;
|
||||||
rc = -EIO;
|
rc = -EIO;
|
||||||
|
@ -3110,7 +3110,7 @@ query_info(const unsigned int xid, struct cifs_tcon *tcon,
|
||||||
if (!*data) {
|
if (!*data) {
|
||||||
*data = kmalloc(*dlen, GFP_KERNEL);
|
*data = kmalloc(*dlen, GFP_KERNEL);
|
||||||
if (!*data) {
|
if (!*data) {
|
||||||
cifs_server_dbg(VFS,
|
cifs_tcon_dbg(VFS,
|
||||||
"Error %d allocating memory for acl\n",
|
"Error %d allocating memory for acl\n",
|
||||||
rc);
|
rc);
|
||||||
*dlen = 0;
|
*dlen = 0;
|
||||||
|
@ -3505,7 +3505,7 @@ smb2_readv_callback(struct mid_q_entry *mid)
|
||||||
|
|
||||||
rc = smb2_verify_signature(&rqst, server);
|
rc = smb2_verify_signature(&rqst, server);
|
||||||
if (rc)
|
if (rc)
|
||||||
cifs_server_dbg(VFS, "SMB signature verification returned error = %d\n",
|
cifs_tcon_dbg(VFS, "SMB signature verification returned error = %d\n",
|
||||||
rc);
|
rc);
|
||||||
}
|
}
|
||||||
/* FIXME: should this be counted toward the initiating task? */
|
/* FIXME: should this be counted toward the initiating task? */
|
||||||
|
@ -4095,7 +4095,7 @@ SMB2_query_directory(const unsigned int xid, struct cifs_tcon *tcon,
|
||||||
info_buf_size = sizeof(SEARCH_ID_FULL_DIR_INFO) - 1;
|
info_buf_size = sizeof(SEARCH_ID_FULL_DIR_INFO) - 1;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
cifs_server_dbg(VFS, "info level %u isn't supported\n",
|
cifs_tcon_dbg(VFS, "info level %u isn't supported\n",
|
||||||
srch_inf->info_level);
|
srch_inf->info_level);
|
||||||
rc = -EINVAL;
|
rc = -EINVAL;
|
||||||
goto qdir_exit;
|
goto qdir_exit;
|
||||||
|
@ -4186,7 +4186,7 @@ SMB2_query_directory(const unsigned int xid, struct cifs_tcon *tcon,
|
||||||
else if (resp_buftype == CIFS_SMALL_BUFFER)
|
else if (resp_buftype == CIFS_SMALL_BUFFER)
|
||||||
srch_inf->smallBuf = true;
|
srch_inf->smallBuf = true;
|
||||||
else
|
else
|
||||||
cifs_server_dbg(VFS, "illegal search buffer type\n");
|
cifs_tcon_dbg(VFS, "illegal search buffer type\n");
|
||||||
|
|
||||||
trace_smb3_query_dir_done(xid, persistent_fid, tcon->tid,
|
trace_smb3_query_dir_done(xid, persistent_fid, tcon->tid,
|
||||||
tcon->ses->Suid, index, srch_inf->entries_in_buffer);
|
tcon->ses->Suid, index, srch_inf->entries_in_buffer);
|
||||||
|
|
|
@ -1403,7 +1403,7 @@ SendReceiveBlockingLock(const unsigned int xid, struct cifs_tcon *tcon,
|
||||||
use ses->maxReq */
|
use ses->maxReq */
|
||||||
|
|
||||||
if (len > CIFSMaxBufSize + MAX_CIFS_HDR_SIZE - 4) {
|
if (len > CIFSMaxBufSize + MAX_CIFS_HDR_SIZE - 4) {
|
||||||
cifs_server_dbg(VFS, "Illegal length, greater than maximum frame, %d\n",
|
cifs_tcon_dbg(VFS, "Illegal length, greater than maximum frame, %d\n",
|
||||||
len);
|
len);
|
||||||
return -EIO;
|
return -EIO;
|
||||||
}
|
}
|
||||||
|
@ -1505,7 +1505,7 @@ SendReceiveBlockingLock(const unsigned int xid, struct cifs_tcon *tcon,
|
||||||
/* rcvd frame is ok */
|
/* rcvd frame is ok */
|
||||||
if (out_buf == NULL || midQ->mid_state != MID_RESPONSE_RECEIVED) {
|
if (out_buf == NULL || midQ->mid_state != MID_RESPONSE_RECEIVED) {
|
||||||
rc = -EIO;
|
rc = -EIO;
|
||||||
cifs_server_dbg(VFS, "Bad MID state?\n");
|
cifs_tcon_dbg(VFS, "Bad MID state?\n");
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Загрузка…
Ссылка в новой задаче