CIFS: Make SendReceive2() takes resp iov
Now SendReceive2 frees the first iov and returns a response buffer in it that increases a code complexity. Simplify this by making a caller responsible for freeing request buffer itself and returning a response buffer in a separate iov. Signed-off-by: Pavel Shilovsky <pshilov@microsoft.com>
This commit is contained in:

committed by
Steve French

parent
31473fc4f9
commit
da502f7df0
@@ -652,6 +652,7 @@ sess_sendreceive(struct sess_data *sess_data)
|
||||
int rc;
|
||||
struct smb_hdr *smb_buf = (struct smb_hdr *) sess_data->iov[0].iov_base;
|
||||
__u16 count;
|
||||
struct kvec rsp_iov = { NULL, 0 };
|
||||
|
||||
count = sess_data->iov[1].iov_len + sess_data->iov[2].iov_len;
|
||||
smb_buf->smb_buf_length =
|
||||
@@ -661,7 +662,9 @@ sess_sendreceive(struct sess_data *sess_data)
|
||||
rc = SendReceive2(sess_data->xid, sess_data->ses,
|
||||
sess_data->iov, 3 /* num_iovecs */,
|
||||
&sess_data->buf0_type,
|
||||
CIFS_LOG_ERROR);
|
||||
CIFS_LOG_ERROR, &rsp_iov);
|
||||
cifs_small_buf_release(sess_data->iov[0].iov_base);
|
||||
memcpy(&sess_data->iov[0], &rsp_iov, sizeof(struct kvec));
|
||||
|
||||
return rc;
|
||||
}
|
||||
|
Reference in New Issue
Block a user