cifs: add resp_buf_size to the mid_q_entry structure
and get rid of some more calls to get_rfc1002_length() Signed-off-by: Ronnie Sahlberg <lsahlber@redhat.com> Signed-off-by: Steve French <smfrench@gmail.com> Reviewed-by: Pavel Shilovsky <pshilov@microsoft.com>
This commit is contained in:
parent
0d4b46ba7d
commit
e19b2bc079
|
@ -1376,6 +1376,7 @@ struct mid_q_entry {
|
||||||
mid_handle_t *handle; /* call handle mid callback */
|
mid_handle_t *handle; /* call handle mid callback */
|
||||||
void *callback_data; /* general purpose pointer for callback */
|
void *callback_data; /* general purpose pointer for callback */
|
||||||
void *resp_buf; /* pointer to received SMB header */
|
void *resp_buf; /* pointer to received SMB header */
|
||||||
|
unsigned int resp_buf_size;
|
||||||
int mid_state; /* wish this were enum but can not pass to wait_event */
|
int mid_state; /* wish this were enum but can not pass to wait_event */
|
||||||
unsigned int mid_flags;
|
unsigned int mid_flags;
|
||||||
__le16 command; /* smb command code */
|
__le16 command; /* smb command code */
|
||||||
|
|
|
@ -928,6 +928,7 @@ cifs_demultiplex_thread(void *p)
|
||||||
|
|
||||||
server->lstrp = jiffies;
|
server->lstrp = jiffies;
|
||||||
if (mid_entry != NULL) {
|
if (mid_entry != NULL) {
|
||||||
|
mid_entry->resp_buf_size = server->pdu_size;
|
||||||
if ((mid_entry->mid_flags & MID_WAIT_CANCELLED) &&
|
if ((mid_entry->mid_flags & MID_WAIT_CANCELLED) &&
|
||||||
mid_entry->mid_state == MID_RESPONSE_RECEIVED &&
|
mid_entry->mid_state == MID_RESPONSE_RECEIVED &&
|
||||||
server->ops->handle_cancelled_mid)
|
server->ops->handle_cancelled_mid)
|
||||||
|
|
|
@ -604,7 +604,7 @@ int
|
||||||
smb2_check_receive(struct mid_q_entry *mid, struct TCP_Server_Info *server,
|
smb2_check_receive(struct mid_q_entry *mid, struct TCP_Server_Info *server,
|
||||||
bool log_error)
|
bool log_error)
|
||||||
{
|
{
|
||||||
unsigned int len = get_rfc1002_length(mid->resp_buf);
|
unsigned int len = mid->resp_buf_size;
|
||||||
struct kvec iov[2];
|
struct kvec iov[2];
|
||||||
struct smb_rqst rqst = { .rq_iov = iov,
|
struct smb_rqst rqst = { .rq_iov = iov,
|
||||||
.rq_nvec = 2 };
|
.rq_nvec = 2 };
|
||||||
|
|
|
@ -790,7 +790,7 @@ cifs_send_recv(const unsigned int xid, struct cifs_ses *ses,
|
||||||
|
|
||||||
buf = (char *)midQ->resp_buf;
|
buf = (char *)midQ->resp_buf;
|
||||||
resp_iov->iov_base = buf;
|
resp_iov->iov_base = buf;
|
||||||
resp_iov->iov_len = get_rfc1002_length(buf) +
|
resp_iov->iov_len = midQ->resp_buf_size +
|
||||||
ses->server->vals->header_preamble_size;
|
ses->server->vals->header_preamble_size;
|
||||||
if (midQ->large_buf)
|
if (midQ->large_buf)
|
||||||
*resp_buf_type = CIFS_LARGE_BUFFER;
|
*resp_buf_type = CIFS_LARGE_BUFFER;
|
||||||
|
|
Loading…
Reference in New Issue