mirror of
https://github.com/torvalds/linux.git
synced 2026-05-25 15:41:52 +02:00
smb: server: make use of common smbdirect.h
Cc: Steve French <smfrench@gmail.com> Cc: Tom Talpey <tom@talpey.com> Cc: Long Li <longli@microsoft.com> Cc: Namjae Jeon <linkinjeon@kernel.org> Cc: Hyunchul Lee <hyc.lee@gmail.com> Cc: Meetakshi Setiya <meetakshisetiyaoss@gmail.com> Cc: linux-cifs@vger.kernel.org Cc: samba-technical@lists.samba.org Signed-off-by: Stefan Metzmacher <metze@samba.org> Acked-by: Namjae Jeon <linkinjeon@kernel.org> Signed-off-by: Steve French <stfrench@microsoft.com>
This commit is contained in:
parent
575c1af4dc
commit
e7de2c4521
|
|
@ -243,7 +243,7 @@ int ksmbd_conn_write(struct ksmbd_work *work)
|
|||
|
||||
int ksmbd_conn_rdma_read(struct ksmbd_conn *conn,
|
||||
void *buf, unsigned int buflen,
|
||||
struct smb2_buffer_desc_v1 *desc,
|
||||
struct smbdirect_buffer_descriptor_v1 *desc,
|
||||
unsigned int desc_len)
|
||||
{
|
||||
int ret = -EINVAL;
|
||||
|
|
@ -257,7 +257,7 @@ int ksmbd_conn_rdma_read(struct ksmbd_conn *conn,
|
|||
|
||||
int ksmbd_conn_rdma_write(struct ksmbd_conn *conn,
|
||||
void *buf, unsigned int buflen,
|
||||
struct smb2_buffer_desc_v1 *desc,
|
||||
struct smbdirect_buffer_descriptor_v1 *desc,
|
||||
unsigned int desc_len)
|
||||
{
|
||||
int ret = -EINVAL;
|
||||
|
|
|
|||
|
|
@ -19,6 +19,8 @@
|
|||
#include "smb_common.h"
|
||||
#include "ksmbd_work.h"
|
||||
|
||||
struct smbdirect_buffer_descriptor_v1;
|
||||
|
||||
#define KSMBD_SOCKET_BACKLOG 16
|
||||
|
||||
enum {
|
||||
|
|
@ -133,11 +135,11 @@ struct ksmbd_transport_ops {
|
|||
unsigned int remote_key);
|
||||
int (*rdma_read)(struct ksmbd_transport *t,
|
||||
void *buf, unsigned int len,
|
||||
struct smb2_buffer_desc_v1 *desc,
|
||||
struct smbdirect_buffer_descriptor_v1 *desc,
|
||||
unsigned int desc_len);
|
||||
int (*rdma_write)(struct ksmbd_transport *t,
|
||||
void *buf, unsigned int len,
|
||||
struct smb2_buffer_desc_v1 *desc,
|
||||
struct smbdirect_buffer_descriptor_v1 *desc,
|
||||
unsigned int desc_len);
|
||||
void (*free_transport)(struct ksmbd_transport *kt);
|
||||
};
|
||||
|
|
@ -163,11 +165,11 @@ bool ksmbd_conn_lookup_dialect(struct ksmbd_conn *c);
|
|||
int ksmbd_conn_write(struct ksmbd_work *work);
|
||||
int ksmbd_conn_rdma_read(struct ksmbd_conn *conn,
|
||||
void *buf, unsigned int buflen,
|
||||
struct smb2_buffer_desc_v1 *desc,
|
||||
struct smbdirect_buffer_descriptor_v1 *desc,
|
||||
unsigned int desc_len);
|
||||
int ksmbd_conn_rdma_write(struct ksmbd_conn *conn,
|
||||
void *buf, unsigned int buflen,
|
||||
struct smb2_buffer_desc_v1 *desc,
|
||||
struct smbdirect_buffer_descriptor_v1 *desc,
|
||||
unsigned int desc_len);
|
||||
void ksmbd_conn_enqueue_request(struct ksmbd_work *work);
|
||||
void ksmbd_conn_try_dequeue_request(struct ksmbd_work *work);
|
||||
|
|
|
|||
|
|
@ -23,6 +23,7 @@
|
|||
#include "asn1.h"
|
||||
#include "connection.h"
|
||||
#include "transport_ipc.h"
|
||||
#include "../common/smbdirect/smbdirect.h"
|
||||
#include "transport_rdma.h"
|
||||
#include "vfs.h"
|
||||
#include "vfs_cache.h"
|
||||
|
|
@ -6665,7 +6666,7 @@ static noinline int smb2_read_pipe(struct ksmbd_work *work)
|
|||
}
|
||||
|
||||
static int smb2_set_remote_key_for_rdma(struct ksmbd_work *work,
|
||||
struct smb2_buffer_desc_v1 *desc,
|
||||
struct smbdirect_buffer_descriptor_v1 *desc,
|
||||
__le32 Channel,
|
||||
__le16 ChannelInfoLength)
|
||||
{
|
||||
|
|
@ -6701,7 +6702,7 @@ static ssize_t smb2_read_rdma_channel(struct ksmbd_work *work,
|
|||
int err;
|
||||
|
||||
err = ksmbd_conn_rdma_write(work->conn, data_buf, length,
|
||||
(struct smb2_buffer_desc_v1 *)
|
||||
(struct smbdirect_buffer_descriptor_v1 *)
|
||||
((char *)req + le16_to_cpu(req->ReadChannelInfoOffset)),
|
||||
le16_to_cpu(req->ReadChannelInfoLength));
|
||||
if (err)
|
||||
|
|
@ -6772,7 +6773,7 @@ int smb2_read(struct ksmbd_work *work)
|
|||
goto out;
|
||||
}
|
||||
err = smb2_set_remote_key_for_rdma(work,
|
||||
(struct smb2_buffer_desc_v1 *)
|
||||
(struct smbdirect_buffer_descriptor_v1 *)
|
||||
((char *)req + ch_offset),
|
||||
req->Channel,
|
||||
req->ReadChannelInfoLength);
|
||||
|
|
@ -6967,7 +6968,7 @@ static ssize_t smb2_write_rdma_channel(struct ksmbd_work *work,
|
|||
return -ENOMEM;
|
||||
|
||||
ret = ksmbd_conn_rdma_read(work->conn, data_buf, length,
|
||||
(struct smb2_buffer_desc_v1 *)
|
||||
(struct smbdirect_buffer_descriptor_v1 *)
|
||||
((char *)req + le16_to_cpu(req->WriteChannelInfoOffset)),
|
||||
le16_to_cpu(req->WriteChannelInfoLength));
|
||||
if (ret < 0) {
|
||||
|
|
@ -7032,7 +7033,7 @@ int smb2_write(struct ksmbd_work *work)
|
|||
goto out;
|
||||
}
|
||||
err = smb2_set_remote_key_for_rdma(work,
|
||||
(struct smb2_buffer_desc_v1 *)
|
||||
(struct smbdirect_buffer_descriptor_v1 *)
|
||||
((char *)req + ch_offset),
|
||||
req->Channel,
|
||||
req->WriteChannelInfoLength);
|
||||
|
|
|
|||
|
|
@ -136,12 +136,6 @@ struct create_posix_rsp {
|
|||
u8 SidBuffer[44];
|
||||
} __packed;
|
||||
|
||||
struct smb2_buffer_desc_v1 {
|
||||
__le64 offset;
|
||||
__le32 token;
|
||||
__le32 length;
|
||||
} __packed;
|
||||
|
||||
#define SMB2_0_IOCTL_IS_FSCTL 0x00000001
|
||||
|
||||
struct smb_sockaddr_in {
|
||||
|
|
|
|||
|
|
@ -23,6 +23,7 @@
|
|||
#include "connection.h"
|
||||
#include "smb_common.h"
|
||||
#include "../common/smb2status.h"
|
||||
#include "../common/smbdirect/smbdirect.h"
|
||||
#include "../common/smbdirect/smbdirect_pdu.h"
|
||||
#include "transport_rdma.h"
|
||||
|
||||
|
|
@ -1402,7 +1403,7 @@ static void write_done(struct ib_cq *cq, struct ib_wc *wc)
|
|||
|
||||
static int smb_direct_rdma_xmit(struct smb_direct_transport *t,
|
||||
void *buf, int buf_len,
|
||||
struct smb2_buffer_desc_v1 *desc,
|
||||
struct smbdirect_buffer_descriptor_v1 *desc,
|
||||
unsigned int desc_len,
|
||||
bool is_read)
|
||||
{
|
||||
|
|
@ -1532,7 +1533,7 @@ static int smb_direct_rdma_xmit(struct smb_direct_transport *t,
|
|||
|
||||
static int smb_direct_rdma_write(struct ksmbd_transport *t,
|
||||
void *buf, unsigned int buflen,
|
||||
struct smb2_buffer_desc_v1 *desc,
|
||||
struct smbdirect_buffer_descriptor_v1 *desc,
|
||||
unsigned int desc_len)
|
||||
{
|
||||
return smb_direct_rdma_xmit(smb_trans_direct_transfort(t), buf, buflen,
|
||||
|
|
@ -1541,7 +1542,7 @@ static int smb_direct_rdma_write(struct ksmbd_transport *t,
|
|||
|
||||
static int smb_direct_rdma_read(struct ksmbd_transport *t,
|
||||
void *buf, unsigned int buflen,
|
||||
struct smb2_buffer_desc_v1 *desc,
|
||||
struct smbdirect_buffer_descriptor_v1 *desc,
|
||||
unsigned int desc_len)
|
||||
{
|
||||
return smb_direct_rdma_xmit(smb_trans_direct_transfort(t), buf, buflen,
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user