CIFS: SMBD: Implement function to receive data via RDMA receive
authorLong Li <longli@microsoft.com>
Thu, 23 Nov 2017 00:38:40 +0000 (17:38 -0700)
committerSteve French <smfrench@gmail.com>
Thu, 25 Jan 2018 01:49:06 +0000 (19:49 -0600)
commitf64b78fd1835d1d764685b0c80c292c5d3daaa07
tree2a5dee3f1b6e15f7c5d9e927dfefa223b08f1c6b
parent09902f8dc849fd9d3f1258a5c926c5d5472646b1
CIFS: SMBD: Implement function to receive data via RDMA receive

On the receive path, the transport maintains receive buffers and a reassembly
queue for transferring payload via RDMA recv. There is data copy in the
transport on recv when it copies the payload to upper layer.

The transport recognizes the RFC1002 header length use in the SMB
upper layer payloads in CIFS. Because this length is mainly used for TCP and
not applicable to RDMA, it is handled as a out-of-band information and is
never sent over the wire, and the trasnport behaves like TCP to upper layer
by processing and exposing the length correctly on data payloads.

Signed-off-by: Long Li <longli@microsoft.com>
Signed-off-by: Steve French <smfrench@gmail.com>
Reviewed-by: Pavel Shilovsky <pshilov@microsoft.com>
Reviewed-by: Ronnie Sahlberg <lsahlber@redhat.com>
fs/cifs/smbdirect.c
fs/cifs/smbdirect.h