mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-05-16 18:22:00 -04:00
smb: smbdirect: remove unused SMBDIRECT_USE_INLINE_C_FILES logic
We always build as standalone module (or as part of the core kernel). This also removes unused elements from struct smbdirect_socket and unused exports. 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: 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:
committed by
Steve French
parent
649c47559a
commit
aa43bb2c0f
@@ -15,7 +15,6 @@ static int smbdirect_accept_init_params(struct smbdirect_socket *sc);
|
||||
static void smbdirect_accept_negotiate_recv_done(struct ib_cq *cq, struct ib_wc *wc);
|
||||
static void smbdirect_accept_negotiate_send_done(struct ib_cq *cq, struct ib_wc *wc);
|
||||
|
||||
__SMBDIRECT_PUBLIC__
|
||||
int smbdirect_accept_connect_request(struct smbdirect_socket *sc,
|
||||
const struct rdma_conn_param *param)
|
||||
{
|
||||
@@ -161,7 +160,6 @@ int smbdirect_accept_connect_request(struct smbdirect_socket *sc,
|
||||
init_params_failed:
|
||||
return ret;
|
||||
}
|
||||
__SMBDIRECT_EXPORT_SYMBOL__(smbdirect_accept_connect_request);
|
||||
|
||||
static int smbdirect_accept_init_params(struct smbdirect_socket *sc)
|
||||
{
|
||||
@@ -793,7 +791,6 @@ static long smbdirect_socket_wait_for_accept(struct smbdirect_socket *lsc, long
|
||||
return 0;
|
||||
}
|
||||
|
||||
__SMBDIRECT_PUBLIC__
|
||||
struct smbdirect_socket *smbdirect_socket_accept(struct smbdirect_socket *lsc,
|
||||
long timeo,
|
||||
struct proto_accept_arg *arg)
|
||||
|
||||
@@ -1,25 +0,0 @@
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
/*
|
||||
* Copyright (c) 2025, Stefan Metzmacher
|
||||
*/
|
||||
|
||||
/*
|
||||
* This is a temporary solution in order
|
||||
* to include the common smbdirect functions
|
||||
* into .c files in order to make a transformation
|
||||
* in tiny bisectable steps possible.
|
||||
*
|
||||
* It will be replaced by a smbdirect.ko with
|
||||
* exported public functions at the end.
|
||||
*/
|
||||
#ifndef SMBDIRECT_USE_INLINE_C_FILES
|
||||
#error SMBDIRECT_USE_INLINE_C_FILES define needed
|
||||
#endif
|
||||
#include "smbdirect_socket.c"
|
||||
#include "smbdirect_connection.c"
|
||||
#include "smbdirect_mr.c"
|
||||
#include "smbdirect_rw.c"
|
||||
#include "smbdirect_debug.c"
|
||||
#include "smbdirect_connect.c"
|
||||
#include "smbdirect_accept.c"
|
||||
#include "smbdirect_listen.c"
|
||||
@@ -16,7 +16,6 @@ static int smbdirect_connect_negotiate_start(struct smbdirect_socket *sc);
|
||||
static void smbdirect_connect_negotiate_send_done(struct ib_cq *cq, struct ib_wc *wc);
|
||||
static void smbdirect_connect_negotiate_recv_done(struct ib_cq *cq, struct ib_wc *wc);
|
||||
|
||||
__SMBDIRECT_PUBLIC__
|
||||
int smbdirect_connect(struct smbdirect_socket *sc, const struct sockaddr *dst)
|
||||
{
|
||||
const struct sockaddr *src = NULL;
|
||||
@@ -895,7 +894,6 @@ static void smbdirect_connect_negotiate_recv_work(struct work_struct *work)
|
||||
smbdirect_connection_negotiation_done(sc);
|
||||
}
|
||||
|
||||
__SMBDIRECT_PUBLIC__
|
||||
int smbdirect_connect_sync(struct smbdirect_socket *sc,
|
||||
const struct sockaddr *dst)
|
||||
{
|
||||
|
||||
@@ -22,7 +22,6 @@ static ssize_t smbdirect_map_sges_from_iter(struct iov_iter *iter, size_t len,
|
||||
static void smbdirect_connection_recv_io_refill_work(struct work_struct *work);
|
||||
static void smbdirect_connection_send_immediate_work(struct work_struct *work);
|
||||
|
||||
__maybe_unused /* this is temporary while this file is included in others */
|
||||
static void smbdirect_connection_qp_event_handler(struct ib_event *event, void *context)
|
||||
{
|
||||
struct smbdirect_socket *sc = context;
|
||||
@@ -143,7 +142,6 @@ static int smbdirect_connection_rdma_event_handler(struct rdma_cm_id *id,
|
||||
return 0;
|
||||
}
|
||||
|
||||
__SMBDIRECT_PRIVATE__
|
||||
void smbdirect_connection_rdma_established(struct smbdirect_socket *sc)
|
||||
{
|
||||
smbdirect_log_rdma_event(sc, SMBDIRECT_LOG_INFO,
|
||||
@@ -157,7 +155,6 @@ void smbdirect_connection_rdma_established(struct smbdirect_socket *sc)
|
||||
sc->rdma.expected_event = RDMA_CM_EVENT_DISCONNECTED;
|
||||
}
|
||||
|
||||
__SMBDIRECT_PRIVATE__
|
||||
void smbdirect_connection_negotiation_done(struct smbdirect_socket *sc)
|
||||
{
|
||||
if (unlikely(sc->first_error))
|
||||
@@ -242,7 +239,6 @@ static u32 smbdirect_rdma_rw_send_wrs(struct ib_device *dev,
|
||||
return factor * attr->cap.max_rdma_ctxs;
|
||||
}
|
||||
|
||||
__SMBDIRECT_PRIVATE__
|
||||
int smbdirect_connection_create_qp(struct smbdirect_socket *sc)
|
||||
{
|
||||
const struct smbdirect_socket_parameters *sp = &sc->parameters;
|
||||
@@ -400,7 +396,6 @@ int smbdirect_connection_create_qp(struct smbdirect_socket *sc)
|
||||
return ret;
|
||||
}
|
||||
|
||||
__SMBDIRECT_PRIVATE__
|
||||
void smbdirect_connection_destroy_qp(struct smbdirect_socket *sc)
|
||||
{
|
||||
if (sc->ib.qp) {
|
||||
@@ -422,7 +417,6 @@ void smbdirect_connection_destroy_qp(struct smbdirect_socket *sc)
|
||||
}
|
||||
}
|
||||
|
||||
__SMBDIRECT_PRIVATE__
|
||||
int smbdirect_connection_create_mem_pools(struct smbdirect_socket *sc)
|
||||
{
|
||||
const struct smbdirect_socket_parameters *sp = &sc->parameters;
|
||||
@@ -500,7 +494,6 @@ int smbdirect_connection_create_mem_pools(struct smbdirect_socket *sc)
|
||||
return -ENOMEM;
|
||||
}
|
||||
|
||||
__SMBDIRECT_PRIVATE__
|
||||
void smbdirect_connection_destroy_mem_pools(struct smbdirect_socket *sc)
|
||||
{
|
||||
struct smbdirect_recv_io *recv_io, *next_io;
|
||||
@@ -528,7 +521,6 @@ void smbdirect_connection_destroy_mem_pools(struct smbdirect_socket *sc)
|
||||
sc->send_io.mem.cache = NULL;
|
||||
}
|
||||
|
||||
__SMBDIRECT_PRIVATE__
|
||||
struct smbdirect_send_io *smbdirect_connection_alloc_send_io(struct smbdirect_socket *sc)
|
||||
{
|
||||
struct smbdirect_send_io *msg;
|
||||
@@ -543,7 +535,6 @@ struct smbdirect_send_io *smbdirect_connection_alloc_send_io(struct smbdirect_so
|
||||
return msg;
|
||||
}
|
||||
|
||||
__SMBDIRECT_PRIVATE__
|
||||
void smbdirect_connection_free_send_io(struct smbdirect_send_io *msg)
|
||||
{
|
||||
struct smbdirect_socket *sc = msg->socket;
|
||||
@@ -575,7 +566,6 @@ void smbdirect_connection_free_send_io(struct smbdirect_send_io *msg)
|
||||
mempool_free(msg, sc->send_io.mem.pool);
|
||||
}
|
||||
|
||||
__SMBDIRECT_PRIVATE__
|
||||
struct smbdirect_recv_io *smbdirect_connection_get_recv_io(struct smbdirect_socket *sc)
|
||||
{
|
||||
struct smbdirect_recv_io *msg = NULL;
|
||||
@@ -595,7 +585,6 @@ struct smbdirect_recv_io *smbdirect_connection_get_recv_io(struct smbdirect_sock
|
||||
return msg;
|
||||
}
|
||||
|
||||
__SMBDIRECT_PRIVATE__
|
||||
void smbdirect_connection_put_recv_io(struct smbdirect_recv_io *msg)
|
||||
{
|
||||
struct smbdirect_socket *sc = msg->socket;
|
||||
@@ -617,7 +606,6 @@ void smbdirect_connection_put_recv_io(struct smbdirect_recv_io *msg)
|
||||
queue_work(sc->workqueues.refill, &sc->recv_io.posted.refill_work);
|
||||
}
|
||||
|
||||
__SMBDIRECT_PRIVATE__
|
||||
void smbdirect_connection_reassembly_append_recv_io(struct smbdirect_socket *sc,
|
||||
struct smbdirect_recv_io *msg,
|
||||
u32 data_length)
|
||||
@@ -639,7 +627,6 @@ void smbdirect_connection_reassembly_append_recv_io(struct smbdirect_socket *sc,
|
||||
sc->statistics.enqueue_reassembly_queue++;
|
||||
}
|
||||
|
||||
__SMBDIRECT_PRIVATE__
|
||||
struct smbdirect_recv_io *
|
||||
smbdirect_connection_reassembly_first_recv_io(struct smbdirect_socket *sc)
|
||||
{
|
||||
@@ -652,7 +639,6 @@ smbdirect_connection_reassembly_first_recv_io(struct smbdirect_socket *sc)
|
||||
return msg;
|
||||
}
|
||||
|
||||
__SMBDIRECT_PRIVATE__
|
||||
void smbdirect_connection_negotiate_rdma_resources(struct smbdirect_socket *sc,
|
||||
u8 peer_initiator_depth,
|
||||
u8 peer_responder_resources,
|
||||
@@ -714,7 +700,6 @@ void smbdirect_connection_negotiate_rdma_resources(struct smbdirect_socket *sc,
|
||||
peer_responder_resources);
|
||||
}
|
||||
|
||||
__SMBDIRECT_PUBLIC__
|
||||
bool smbdirect_connection_is_connected(struct smbdirect_socket *sc)
|
||||
{
|
||||
if (unlikely(!sc || sc->first_error || sc->status != SMBDIRECT_SOCKET_CONNECTED))
|
||||
@@ -723,7 +708,6 @@ bool smbdirect_connection_is_connected(struct smbdirect_socket *sc)
|
||||
}
|
||||
__SMBDIRECT_EXPORT_SYMBOL__(smbdirect_connection_is_connected);
|
||||
|
||||
__SMBDIRECT_PUBLIC__
|
||||
int smbdirect_connection_wait_for_connected(struct smbdirect_socket *sc)
|
||||
{
|
||||
const struct smbdirect_socket_parameters *sp = &sc->parameters;
|
||||
@@ -797,7 +781,6 @@ int smbdirect_connection_wait_for_connected(struct smbdirect_socket *sc)
|
||||
}
|
||||
__SMBDIRECT_EXPORT_SYMBOL__(smbdirect_connection_wait_for_connected);
|
||||
|
||||
__SMBDIRECT_PRIVATE__
|
||||
void smbdirect_connection_idle_timer_work(struct work_struct *work)
|
||||
{
|
||||
struct smbdirect_socket *sc =
|
||||
@@ -829,7 +812,6 @@ void smbdirect_connection_idle_timer_work(struct work_struct *work)
|
||||
queue_work(sc->workqueues.immediate, &sc->idle.immediate_work);
|
||||
}
|
||||
|
||||
__SMBDIRECT_PRIVATE__
|
||||
u16 smbdirect_connection_grant_recv_credits(struct smbdirect_socket *sc)
|
||||
{
|
||||
int missing;
|
||||
@@ -867,7 +849,6 @@ u16 smbdirect_connection_grant_recv_credits(struct smbdirect_socket *sc)
|
||||
return new_credits;
|
||||
}
|
||||
|
||||
__maybe_unused /* this is temporary while this file is included in others */
|
||||
static bool smbdirect_connection_request_keep_alive(struct smbdirect_socket *sc)
|
||||
{
|
||||
const struct smbdirect_socket_parameters *sp = &sc->parameters;
|
||||
@@ -886,7 +867,6 @@ static bool smbdirect_connection_request_keep_alive(struct smbdirect_socket *sc)
|
||||
return false;
|
||||
}
|
||||
|
||||
__SMBDIRECT_PRIVATE__
|
||||
int smbdirect_connection_post_send_wr(struct smbdirect_socket *sc,
|
||||
struct ib_send_wr *wr)
|
||||
{
|
||||
@@ -919,7 +899,6 @@ static void smbdirect_connection_send_batch_init(struct smbdirect_send_batch *ba
|
||||
batch->credit = 0;
|
||||
}
|
||||
|
||||
__SMBDIRECT_PUBLIC__
|
||||
int smbdirect_connection_send_batch_flush(struct smbdirect_socket *sc,
|
||||
struct smbdirect_send_batch *batch,
|
||||
bool is_last)
|
||||
@@ -981,7 +960,6 @@ int smbdirect_connection_send_batch_flush(struct smbdirect_socket *sc,
|
||||
}
|
||||
__SMBDIRECT_EXPORT_SYMBOL__(smbdirect_connection_send_batch_flush);
|
||||
|
||||
__SMBDIRECT_PUBLIC__
|
||||
struct smbdirect_send_batch *
|
||||
smbdirect_init_send_batch_storage(struct smbdirect_send_batch_storage *storage,
|
||||
bool need_invalidate_rkey,
|
||||
@@ -1098,7 +1076,6 @@ static int smbdirect_connection_post_send_io(struct smbdirect_socket *sc,
|
||||
return smbdirect_connection_post_send_wr(sc, &msg->wr);
|
||||
}
|
||||
|
||||
__SMBDIRECT_PUBLIC__
|
||||
int smbdirect_connection_send_single_iter(struct smbdirect_socket *sc,
|
||||
struct smbdirect_send_batch *batch,
|
||||
struct iov_iter *iter,
|
||||
@@ -1288,7 +1265,6 @@ int smbdirect_connection_send_single_iter(struct smbdirect_socket *sc,
|
||||
}
|
||||
__SMBDIRECT_EXPORT_SYMBOL__(smbdirect_connection_send_single_iter);
|
||||
|
||||
__SMBDIRECT_PUBLIC__
|
||||
int smbdirect_connection_send_wait_zero_pending(struct smbdirect_socket *sc)
|
||||
{
|
||||
/*
|
||||
@@ -1314,7 +1290,6 @@ int smbdirect_connection_send_wait_zero_pending(struct smbdirect_socket *sc)
|
||||
}
|
||||
__SMBDIRECT_EXPORT_SYMBOL__(smbdirect_connection_send_wait_zero_pending);
|
||||
|
||||
__SMBDIRECT_PUBLIC__
|
||||
int smbdirect_connection_send_iter(struct smbdirect_socket *sc,
|
||||
struct iov_iter *iter,
|
||||
unsigned int flags,
|
||||
@@ -1465,8 +1440,6 @@ static void smbdirect_connection_send_io_done(struct ib_cq *cq, struct ib_wc *wc
|
||||
|
||||
if (atomic_dec_and_test(&sc->send_io.pending.count))
|
||||
wake_up(&sc->send_io.pending.zero_wait_queue);
|
||||
|
||||
wake_up(&sc->send_io.pending.dec_wait_queue);
|
||||
}
|
||||
|
||||
static void smbdirect_connection_send_immediate_work(struct work_struct *work)
|
||||
@@ -1490,7 +1463,6 @@ static void smbdirect_connection_send_immediate_work(struct work_struct *work)
|
||||
}
|
||||
}
|
||||
|
||||
__SMBDIRECT_PRIVATE__
|
||||
int smbdirect_connection_post_recv_io(struct smbdirect_recv_io *msg)
|
||||
{
|
||||
struct smbdirect_socket *sc = msg->socket;
|
||||
@@ -1532,7 +1504,6 @@ int smbdirect_connection_post_recv_io(struct smbdirect_recv_io *msg)
|
||||
return ret;
|
||||
}
|
||||
|
||||
__SMBDIRECT_PRIVATE__
|
||||
void smbdirect_connection_recv_io_done(struct ib_cq *cq, struct ib_wc *wc)
|
||||
{
|
||||
struct smbdirect_recv_io *recv_io =
|
||||
@@ -1702,7 +1673,6 @@ void smbdirect_connection_recv_io_done(struct ib_cq *cq, struct ib_wc *wc)
|
||||
smbdirect_socket_schedule_cleanup(sc, -ECONNABORTED);
|
||||
}
|
||||
|
||||
__SMBDIRECT_PRIVATE__
|
||||
int smbdirect_connection_recv_io_refill(struct smbdirect_socket *sc)
|
||||
{
|
||||
int missing;
|
||||
@@ -1818,7 +1788,6 @@ static void smbdirect_connection_recv_io_refill_work(struct work_struct *work)
|
||||
}
|
||||
}
|
||||
|
||||
__SMBDIRECT_PUBLIC__
|
||||
int smbdirect_connection_recvmsg(struct smbdirect_socket *sc,
|
||||
struct msghdr *msg,
|
||||
unsigned int flags)
|
||||
|
||||
@@ -7,7 +7,6 @@
|
||||
#include "smbdirect_internal.h"
|
||||
#include <linux/seq_file.h>
|
||||
|
||||
__SMBDIRECT_PUBLIC__
|
||||
void smbdirect_connection_legacy_debug_proc_show(struct smbdirect_socket *sc,
|
||||
unsigned int rdma_readwrite_threshold,
|
||||
struct seq_file *m)
|
||||
|
||||
@@ -6,9 +6,7 @@
|
||||
#ifndef __FS_SMB_COMMON_SMBDIRECT_INTERNAL_H__
|
||||
#define __FS_SMB_COMMON_SMBDIRECT_INTERNAL_H__
|
||||
|
||||
#ifndef SMBDIRECT_USE_INLINE_C_FILES
|
||||
#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
|
||||
#endif /* ! SMBDIRECT_USE_INLINE_C_FILES */
|
||||
|
||||
#include "smbdirect.h"
|
||||
#include "smbdirect_pdu.h"
|
||||
@@ -48,20 +46,10 @@ struct smbdirect_device {
|
||||
char ib_name[IB_DEVICE_NAME_MAX];
|
||||
};
|
||||
|
||||
#ifdef SMBDIRECT_USE_INLINE_C_FILES
|
||||
/* this is temporary while this file is included in others */
|
||||
#define __SMBDIRECT_PRIVATE__ __maybe_unused static
|
||||
#else
|
||||
#define __SMBDIRECT_PRIVATE__
|
||||
#endif
|
||||
|
||||
__SMBDIRECT_PRIVATE__
|
||||
int smbdirect_socket_init_new(struct net *net, struct smbdirect_socket *sc);
|
||||
|
||||
__SMBDIRECT_PRIVATE__
|
||||
int smbdirect_socket_init_accepting(struct rdma_cm_id *id, struct smbdirect_socket *sc);
|
||||
|
||||
__SMBDIRECT_PRIVATE__
|
||||
void __smbdirect_socket_schedule_cleanup(struct smbdirect_socket *sc,
|
||||
const char *macro_name,
|
||||
unsigned int lvl,
|
||||
@@ -84,10 +72,8 @@ void __smbdirect_socket_schedule_cleanup(struct smbdirect_socket *sc,
|
||||
__func__, __LINE__, __error, &__force_status); \
|
||||
} while (0)
|
||||
|
||||
__SMBDIRECT_PRIVATE__
|
||||
void smbdirect_socket_destroy_sync(struct smbdirect_socket *sc);
|
||||
|
||||
__SMBDIRECT_PRIVATE__
|
||||
int smbdirect_socket_wait_for_credits(struct smbdirect_socket *sc,
|
||||
enum smbdirect_socket_status expected_status,
|
||||
int unexpected_errno,
|
||||
@@ -95,76 +81,58 @@ int smbdirect_socket_wait_for_credits(struct smbdirect_socket *sc,
|
||||
atomic_t *total_credits,
|
||||
int needed);
|
||||
|
||||
__SMBDIRECT_PRIVATE__
|
||||
void smbdirect_connection_rdma_established(struct smbdirect_socket *sc);
|
||||
|
||||
__SMBDIRECT_PRIVATE__
|
||||
void smbdirect_connection_negotiation_done(struct smbdirect_socket *sc);
|
||||
|
||||
__SMBDIRECT_PRIVATE__
|
||||
int smbdirect_connection_create_qp(struct smbdirect_socket *sc);
|
||||
|
||||
__SMBDIRECT_PRIVATE__
|
||||
void smbdirect_connection_destroy_qp(struct smbdirect_socket *sc);
|
||||
|
||||
__SMBDIRECT_PRIVATE__
|
||||
int smbdirect_connection_create_mem_pools(struct smbdirect_socket *sc);
|
||||
|
||||
__SMBDIRECT_PRIVATE__
|
||||
void smbdirect_connection_destroy_mem_pools(struct smbdirect_socket *sc);
|
||||
|
||||
__SMBDIRECT_PRIVATE__
|
||||
struct smbdirect_send_io *smbdirect_connection_alloc_send_io(struct smbdirect_socket *sc);
|
||||
|
||||
__SMBDIRECT_PRIVATE__
|
||||
void smbdirect_connection_free_send_io(struct smbdirect_send_io *msg);
|
||||
|
||||
__SMBDIRECT_PRIVATE__
|
||||
struct smbdirect_recv_io *smbdirect_connection_get_recv_io(struct smbdirect_socket *sc);
|
||||
|
||||
__SMBDIRECT_PRIVATE__
|
||||
void smbdirect_connection_put_recv_io(struct smbdirect_recv_io *msg);
|
||||
|
||||
__SMBDIRECT_PRIVATE__
|
||||
void smbdirect_connection_reassembly_append_recv_io(struct smbdirect_socket *sc,
|
||||
struct smbdirect_recv_io *msg,
|
||||
u32 data_length);
|
||||
|
||||
__SMBDIRECT_PRIVATE__
|
||||
struct smbdirect_recv_io *
|
||||
smbdirect_connection_reassembly_first_recv_io(struct smbdirect_socket *sc);
|
||||
|
||||
__SMBDIRECT_PRIVATE__
|
||||
void smbdirect_connection_negotiate_rdma_resources(struct smbdirect_socket *sc,
|
||||
u8 peer_initiator_depth,
|
||||
u8 peer_responder_resources,
|
||||
const struct rdma_conn_param *param);
|
||||
|
||||
__SMBDIRECT_PRIVATE__
|
||||
void smbdirect_connection_idle_timer_work(struct work_struct *work);
|
||||
|
||||
__SMBDIRECT_PRIVATE__
|
||||
u16 smbdirect_connection_grant_recv_credits(struct smbdirect_socket *sc);
|
||||
|
||||
__SMBDIRECT_PRIVATE__
|
||||
int smbdirect_connection_post_send_wr(struct smbdirect_socket *sc,
|
||||
struct ib_send_wr *wr);
|
||||
|
||||
__SMBDIRECT_PRIVATE__
|
||||
int smbdirect_connection_post_recv_io(struct smbdirect_recv_io *msg);
|
||||
|
||||
__SMBDIRECT_PRIVATE__
|
||||
void smbdirect_connection_recv_io_done(struct ib_cq *cq, struct ib_wc *wc);
|
||||
|
||||
__SMBDIRECT_PRIVATE__
|
||||
int smbdirect_connection_recv_io_refill(struct smbdirect_socket *sc);
|
||||
|
||||
__SMBDIRECT_PRIVATE__
|
||||
int smbdirect_connection_create_mr_list(struct smbdirect_socket *sc);
|
||||
|
||||
__SMBDIRECT_PRIVATE__
|
||||
void smbdirect_connection_destroy_mr_list(struct smbdirect_socket *sc);
|
||||
|
||||
int smbdirect_accept_connect_request(struct smbdirect_socket *sc,
|
||||
const struct rdma_conn_param *param);
|
||||
|
||||
void smbdirect_accept_negotiate_finish(struct smbdirect_socket *sc, u32 ntstatus);
|
||||
|
||||
__init int smbdirect_devices_init(void);
|
||||
|
||||
@@ -10,7 +10,6 @@
|
||||
static int smbdirect_listen_rdma_event_handler(struct rdma_cm_id *id,
|
||||
struct rdma_cm_event *event);
|
||||
|
||||
__SMBDIRECT_PUBLIC__
|
||||
int smbdirect_socket_listen(struct smbdirect_socket *sc, int backlog)
|
||||
{
|
||||
int ret;
|
||||
|
||||
@@ -13,7 +13,6 @@
|
||||
* Recovery is done in smbd_mr_recovery_work. The content of list entry changes
|
||||
* as MRs are used and recovered for I/O, but the list links will not change
|
||||
*/
|
||||
__SMBDIRECT_PRIVATE__
|
||||
int smbdirect_connection_create_mr_list(struct smbdirect_socket *sc)
|
||||
{
|
||||
const struct smbdirect_socket_parameters *sp = &sc->parameters;
|
||||
@@ -116,7 +115,6 @@ static void smbdirect_mr_io_free_locked(struct kref *kref)
|
||||
kfree(mr);
|
||||
}
|
||||
|
||||
__SMBDIRECT_PRIVATE__
|
||||
void smbdirect_connection_destroy_mr_list(struct smbdirect_socket *sc)
|
||||
{
|
||||
struct smbdirect_mr_io *mr, *tmp;
|
||||
@@ -263,7 +261,6 @@ static int smbdirect_iter_to_sgt(struct iov_iter *iter,
|
||||
* need_invalidate: true if this MR needs to be locally invalidated after I/O
|
||||
* return value: the MR registered, NULL if failed.
|
||||
*/
|
||||
__SMBDIRECT_PUBLIC__
|
||||
struct smbdirect_mr_io *
|
||||
smbdirect_connection_register_mr_io(struct smbdirect_socket *sc,
|
||||
struct iov_iter *iter,
|
||||
@@ -385,7 +382,6 @@ smbdirect_connection_register_mr_io(struct smbdirect_socket *sc,
|
||||
}
|
||||
__SMBDIRECT_EXPORT_SYMBOL__(smbdirect_connection_register_mr_io);
|
||||
|
||||
__SMBDIRECT_PUBLIC__
|
||||
void smbdirect_mr_io_fill_buffer_descriptor(struct smbdirect_mr_io *mr,
|
||||
struct smbdirect_buffer_descriptor_v1 *v1)
|
||||
{
|
||||
@@ -409,7 +405,6 @@ __SMBDIRECT_EXPORT_SYMBOL__(smbdirect_mr_io_fill_buffer_descriptor);
|
||||
* and we have to locally invalidate the buffer to prevent data is being
|
||||
* modified by remote peer after upper layer consumes it
|
||||
*/
|
||||
__SMBDIRECT_PUBLIC__
|
||||
void smbdirect_connection_deregister_mr_io(struct smbdirect_mr_io *mr)
|
||||
{
|
||||
struct smbdirect_socket *sc = mr->socket;
|
||||
|
||||
@@ -13,46 +13,28 @@ struct smbdirect_socket;
|
||||
struct smbdirect_send_batch;
|
||||
struct smbdirect_mr_io;
|
||||
|
||||
#ifdef SMBDIRECT_USE_INLINE_C_FILES
|
||||
/* this is temporary while this file is included in others */
|
||||
#define __SMBDIRECT_PUBLIC__ __maybe_unused static
|
||||
#define __SMBDIRECT_EXPORT_SYMBOL__(__sym)
|
||||
#else
|
||||
#define __SMBDIRECT_PUBLIC__
|
||||
#define __SMBDIRECT_EXPORT_SYMBOL__(__sym) EXPORT_SYMBOL_FOR_MODULES(__sym, "cifs,ksmbd")
|
||||
#endif
|
||||
|
||||
#include <rdma/rw.h>
|
||||
|
||||
__SMBDIRECT_PUBLIC__
|
||||
u8 smbdirect_netdev_rdma_capable_node_type(struct net_device *netdev);
|
||||
|
||||
__SMBDIRECT_PUBLIC__
|
||||
bool smbdirect_frwr_is_supported(const struct ib_device_attr *attrs);
|
||||
|
||||
__SMBDIRECT_PUBLIC__
|
||||
int smbdirect_socket_create_kern(struct net *net, struct smbdirect_socket **_sc);
|
||||
|
||||
__SMBDIRECT_PUBLIC__
|
||||
int smbdirect_socket_create_accepting(struct rdma_cm_id *id, struct smbdirect_socket **_sc);
|
||||
|
||||
__SMBDIRECT_PUBLIC__
|
||||
int smbdirect_socket_set_initial_parameters(struct smbdirect_socket *sc,
|
||||
const struct smbdirect_socket_parameters *sp);
|
||||
|
||||
__SMBDIRECT_PUBLIC__
|
||||
const struct smbdirect_socket_parameters *
|
||||
smbdirect_socket_get_current_parameters(struct smbdirect_socket *sc);
|
||||
|
||||
__SMBDIRECT_PUBLIC__
|
||||
int smbdirect_socket_set_kernel_settings(struct smbdirect_socket *sc,
|
||||
enum ib_poll_context poll_ctx,
|
||||
gfp_t gfp_mask);
|
||||
|
||||
__SMBDIRECT_PUBLIC__
|
||||
int smbdirect_socket_set_custom_workqueue(struct smbdirect_socket *sc,
|
||||
struct workqueue_struct *workqueue);
|
||||
|
||||
#define SMBDIRECT_LOG_ERR 0x0
|
||||
#define SMBDIRECT_LOG_INFO 0x1
|
||||
|
||||
@@ -67,7 +49,6 @@ int smbdirect_socket_set_custom_workqueue(struct smbdirect_socket *sc,
|
||||
#define SMBDIRECT_LOG_RDMA_MR 0x100
|
||||
#define SMBDIRECT_LOG_RDMA_RW 0x200
|
||||
#define SMBDIRECT_LOG_NEGOTIATE 0x400
|
||||
__SMBDIRECT_PUBLIC__
|
||||
void smbdirect_socket_set_logging(struct smbdirect_socket *sc,
|
||||
void *private_ptr,
|
||||
bool (*needed)(struct smbdirect_socket *sc,
|
||||
@@ -82,22 +63,16 @@ void smbdirect_socket_set_logging(struct smbdirect_socket *sc,
|
||||
unsigned int cls,
|
||||
struct va_format *vaf));
|
||||
|
||||
__SMBDIRECT_PUBLIC__
|
||||
bool smbdirect_connection_is_connected(struct smbdirect_socket *sc);
|
||||
|
||||
__SMBDIRECT_PUBLIC__
|
||||
int smbdirect_connection_wait_for_connected(struct smbdirect_socket *sc);
|
||||
|
||||
__SMBDIRECT_PUBLIC__
|
||||
int smbdirect_socket_bind(struct smbdirect_socket *sc, struct sockaddr *addr);
|
||||
|
||||
__SMBDIRECT_PUBLIC__
|
||||
void smbdirect_socket_shutdown(struct smbdirect_socket *sc);
|
||||
|
||||
__SMBDIRECT_PUBLIC__
|
||||
void smbdirect_socket_release(struct smbdirect_socket *sc);
|
||||
|
||||
__SMBDIRECT_PUBLIC__
|
||||
int smbdirect_connection_send_batch_flush(struct smbdirect_socket *sc,
|
||||
struct smbdirect_send_batch *batch,
|
||||
bool is_last);
|
||||
@@ -114,76 +89,58 @@ struct smbdirect_send_batch_storage {
|
||||
};
|
||||
};
|
||||
|
||||
__SMBDIRECT_PUBLIC__
|
||||
struct smbdirect_send_batch *
|
||||
smbdirect_init_send_batch_storage(struct smbdirect_send_batch_storage *storage,
|
||||
bool need_invalidate_rkey,
|
||||
unsigned int remote_key);
|
||||
|
||||
__SMBDIRECT_PUBLIC__
|
||||
int smbdirect_connection_send_single_iter(struct smbdirect_socket *sc,
|
||||
struct smbdirect_send_batch *batch,
|
||||
struct iov_iter *iter,
|
||||
unsigned int flags,
|
||||
u32 remaining_data_length);
|
||||
|
||||
__SMBDIRECT_PUBLIC__
|
||||
int smbdirect_connection_send_wait_zero_pending(struct smbdirect_socket *sc);
|
||||
|
||||
__SMBDIRECT_PUBLIC__
|
||||
int smbdirect_connection_send_iter(struct smbdirect_socket *sc,
|
||||
struct iov_iter *iter,
|
||||
unsigned int flags,
|
||||
bool need_invalidate,
|
||||
unsigned int remote_key);
|
||||
|
||||
__SMBDIRECT_PUBLIC__
|
||||
int smbdirect_connection_recvmsg(struct smbdirect_socket *sc,
|
||||
struct msghdr *msg,
|
||||
unsigned int flags);
|
||||
|
||||
__SMBDIRECT_PUBLIC__
|
||||
int smbdirect_connect(struct smbdirect_socket *sc,
|
||||
const struct sockaddr *dst);
|
||||
|
||||
__SMBDIRECT_PUBLIC__
|
||||
int smbdirect_connect_sync(struct smbdirect_socket *sc,
|
||||
const struct sockaddr *dst);
|
||||
|
||||
__SMBDIRECT_PUBLIC__
|
||||
int smbdirect_socket_listen(struct smbdirect_socket *sc, int backlog);
|
||||
|
||||
__SMBDIRECT_PUBLIC__
|
||||
int smbdirect_accept_connect_request(struct smbdirect_socket *sc,
|
||||
const struct rdma_conn_param *param);
|
||||
|
||||
__SMBDIRECT_PUBLIC__
|
||||
struct smbdirect_socket *smbdirect_socket_accept(struct smbdirect_socket *lsc,
|
||||
long timeo,
|
||||
struct proto_accept_arg *arg);
|
||||
|
||||
__SMBDIRECT_PUBLIC__
|
||||
int smbdirect_connection_rdma_xmit(struct smbdirect_socket *sc,
|
||||
void *buf, size_t buf_len,
|
||||
struct smbdirect_buffer_descriptor_v1 *desc,
|
||||
size_t desc_len,
|
||||
bool is_read);
|
||||
|
||||
__SMBDIRECT_PUBLIC__
|
||||
struct smbdirect_mr_io *
|
||||
smbdirect_connection_register_mr_io(struct smbdirect_socket *sc,
|
||||
struct iov_iter *iter,
|
||||
bool writing,
|
||||
bool need_invalidate);
|
||||
|
||||
__SMBDIRECT_PUBLIC__
|
||||
void smbdirect_mr_io_fill_buffer_descriptor(struct smbdirect_mr_io *mr,
|
||||
struct smbdirect_buffer_descriptor_v1 *v1);
|
||||
|
||||
__SMBDIRECT_PUBLIC__
|
||||
void smbdirect_connection_deregister_mr_io(struct smbdirect_mr_io *mr);
|
||||
|
||||
__SMBDIRECT_PUBLIC__
|
||||
void smbdirect_connection_legacy_debug_proc_show(struct smbdirect_socket *sc,
|
||||
unsigned int rdma_readwrite_threshold,
|
||||
struct seq_file *m);
|
||||
|
||||
@@ -105,7 +105,6 @@ static void smbdirect_connection_rdma_write_done(struct ib_cq *cq, struct ib_wc
|
||||
smbdirect_connection_rdma_rw_done(cq, wc, DMA_TO_DEVICE);
|
||||
}
|
||||
|
||||
__SMBDIRECT_PUBLIC__
|
||||
int smbdirect_connection_rdma_xmit(struct smbdirect_socket *sc,
|
||||
void *buf, size_t buf_len,
|
||||
struct smbdirect_buffer_descriptor_v1 *desc,
|
||||
|
||||
@@ -6,7 +6,6 @@
|
||||
|
||||
#include "smbdirect_internal.h"
|
||||
|
||||
__SMBDIRECT_PUBLIC__
|
||||
bool smbdirect_frwr_is_supported(const struct ib_device_attr *attrs)
|
||||
{
|
||||
/*
|
||||
@@ -52,7 +51,6 @@ static int smbdirect_socket_rdma_event_handler(struct rdma_cm_id *id,
|
||||
return -ESTALE;
|
||||
}
|
||||
|
||||
__SMBDIRECT_PRIVATE__
|
||||
int smbdirect_socket_init_new(struct net *net, struct smbdirect_socket *sc)
|
||||
{
|
||||
struct rdma_cm_id *id;
|
||||
@@ -85,7 +83,6 @@ int smbdirect_socket_init_new(struct net *net, struct smbdirect_socket *sc)
|
||||
return 0;
|
||||
}
|
||||
|
||||
__SMBDIRECT_PUBLIC__
|
||||
int smbdirect_socket_create_kern(struct net *net, struct smbdirect_socket **_sc)
|
||||
{
|
||||
struct smbdirect_socket *sc;
|
||||
@@ -112,7 +109,6 @@ int smbdirect_socket_create_kern(struct net *net, struct smbdirect_socket **_sc)
|
||||
}
|
||||
__SMBDIRECT_EXPORT_SYMBOL__(smbdirect_socket_create_kern);
|
||||
|
||||
__SMBDIRECT_PRIVATE__
|
||||
int smbdirect_socket_init_accepting(struct rdma_cm_id *id, struct smbdirect_socket *sc)
|
||||
{
|
||||
smbdirect_socket_init(sc);
|
||||
@@ -128,7 +124,6 @@ int smbdirect_socket_init_accepting(struct rdma_cm_id *id, struct smbdirect_sock
|
||||
return 0;
|
||||
}
|
||||
|
||||
__SMBDIRECT_PUBLIC__
|
||||
int smbdirect_socket_create_accepting(struct rdma_cm_id *id, struct smbdirect_socket **_sc)
|
||||
{
|
||||
struct smbdirect_socket *sc;
|
||||
@@ -155,7 +150,6 @@ int smbdirect_socket_create_accepting(struct rdma_cm_id *id, struct smbdirect_so
|
||||
}
|
||||
__SMBDIRECT_EXPORT_SYMBOL__(smbdirect_socket_create_accepting);
|
||||
|
||||
__SMBDIRECT_PUBLIC__
|
||||
int smbdirect_socket_set_initial_parameters(struct smbdirect_socket *sc,
|
||||
const struct smbdirect_socket_parameters *sp)
|
||||
{
|
||||
@@ -192,7 +186,6 @@ int smbdirect_socket_set_initial_parameters(struct smbdirect_socket *sc,
|
||||
}
|
||||
__SMBDIRECT_EXPORT_SYMBOL__(smbdirect_socket_set_initial_parameters);
|
||||
|
||||
__SMBDIRECT_PUBLIC__
|
||||
const struct smbdirect_socket_parameters *
|
||||
smbdirect_socket_get_current_parameters(struct smbdirect_socket *sc)
|
||||
{
|
||||
@@ -200,7 +193,6 @@ smbdirect_socket_get_current_parameters(struct smbdirect_socket *sc)
|
||||
}
|
||||
__SMBDIRECT_EXPORT_SYMBOL__(smbdirect_socket_get_current_parameters);
|
||||
|
||||
__SMBDIRECT_PUBLIC__
|
||||
int smbdirect_socket_set_kernel_settings(struct smbdirect_socket *sc,
|
||||
enum ib_poll_context poll_ctx,
|
||||
gfp_t gfp_mask)
|
||||
@@ -225,58 +217,6 @@ int smbdirect_socket_set_kernel_settings(struct smbdirect_socket *sc,
|
||||
}
|
||||
__SMBDIRECT_EXPORT_SYMBOL__(smbdirect_socket_set_kernel_settings);
|
||||
|
||||
__SMBDIRECT_PUBLIC__
|
||||
int smbdirect_socket_set_custom_workqueue(struct smbdirect_socket *sc,
|
||||
struct workqueue_struct *workqueue)
|
||||
{
|
||||
/*
|
||||
* This is only allowed before connect or accept
|
||||
*/
|
||||
WARN_ONCE(sc->status != SMBDIRECT_SOCKET_CREATED,
|
||||
"status=%s first_error=%1pe",
|
||||
smbdirect_socket_status_string(sc->status),
|
||||
SMBDIRECT_DEBUG_ERR_PTR(sc->first_error));
|
||||
if (sc->status != SMBDIRECT_SOCKET_CREATED)
|
||||
return -EINVAL;
|
||||
|
||||
/*
|
||||
* Remember the callers workqueue
|
||||
*/
|
||||
sc->workqueues.accept = workqueue;
|
||||
sc->workqueues.connect = workqueue;
|
||||
sc->workqueues.idle = workqueue;
|
||||
sc->workqueues.refill = workqueue;
|
||||
sc->workqueues.immediate = workqueue;
|
||||
sc->workqueues.cleanup = workqueue;
|
||||
|
||||
return 0;
|
||||
}
|
||||
__SMBDIRECT_EXPORT_SYMBOL__(smbdirect_socket_set_custom_workqueue);
|
||||
|
||||
__maybe_unused /* this is temporary while this file is included in others */
|
||||
static void smbdirect_socket_prepare_create(struct smbdirect_socket *sc,
|
||||
const struct smbdirect_socket_parameters *sp,
|
||||
struct workqueue_struct *workqueue)
|
||||
{
|
||||
smbdirect_socket_init(sc);
|
||||
|
||||
/*
|
||||
* Make a copy of the callers parameters
|
||||
* from here we only work on the copy
|
||||
*/
|
||||
smbdirect_socket_set_initial_parameters(sc, sp);
|
||||
|
||||
/*
|
||||
* Remember the callers workqueue
|
||||
*/
|
||||
smbdirect_socket_set_custom_workqueue(sc, workqueue);
|
||||
|
||||
INIT_WORK(&sc->disconnect_work, smbdirect_socket_cleanup_work);
|
||||
|
||||
INIT_DELAYED_WORK(&sc->idle.timer_work, smbdirect_connection_idle_timer_work);
|
||||
}
|
||||
|
||||
__SMBDIRECT_PUBLIC__
|
||||
void smbdirect_socket_set_logging(struct smbdirect_socket *sc,
|
||||
void *private_ptr,
|
||||
bool (*needed)(struct smbdirect_socket *sc,
|
||||
@@ -308,15 +248,12 @@ static void smbdirect_socket_wake_up_all(struct smbdirect_socket *sc)
|
||||
wake_up_all(&sc->send_io.bcredits.wait_queue);
|
||||
wake_up_all(&sc->send_io.lcredits.wait_queue);
|
||||
wake_up_all(&sc->send_io.credits.wait_queue);
|
||||
wake_up_all(&sc->send_io.pending.dec_wait_queue);
|
||||
wake_up_all(&sc->send_io.pending.zero_wait_queue);
|
||||
wake_up_all(&sc->recv_io.reassembly.wait_queue);
|
||||
wake_up_all(&sc->rw_io.credits.wait_queue);
|
||||
wake_up_all(&sc->mr_io.ready.wait_queue);
|
||||
wake_up_all(&sc->mr_io.cleanup.wait_queue);
|
||||
}
|
||||
|
||||
__SMBDIRECT_PRIVATE__
|
||||
void __smbdirect_socket_schedule_cleanup(struct smbdirect_socket *sc,
|
||||
const char *macro_name,
|
||||
unsigned int lvl,
|
||||
@@ -354,7 +291,6 @@ void __smbdirect_socket_schedule_cleanup(struct smbdirect_socket *sc,
|
||||
*/
|
||||
disable_work(&sc->connect.work);
|
||||
disable_work(&sc->recv_io.posted.refill_work);
|
||||
disable_work(&sc->mr_io.recovery_work);
|
||||
disable_work(&sc->idle.immediate_work);
|
||||
sc->idle.keepalive = SMBDIRECT_KEEPALIVE_NONE;
|
||||
disable_delayed_work(&sc->idle.timer_work);
|
||||
@@ -455,7 +391,6 @@ static void smbdirect_socket_cleanup_work(struct work_struct *work)
|
||||
disable_work(&sc->disconnect_work);
|
||||
disable_work(&sc->connect.work);
|
||||
disable_work(&sc->recv_io.posted.refill_work);
|
||||
disable_work(&sc->mr_io.recovery_work);
|
||||
disable_work(&sc->idle.immediate_work);
|
||||
sc->idle.keepalive = SMBDIRECT_KEEPALIVE_NONE;
|
||||
disable_delayed_work(&sc->idle.timer_work);
|
||||
@@ -573,7 +508,6 @@ static void smbdirect_socket_destroy(struct smbdirect_socket *sc)
|
||||
disable_work_sync(&sc->disconnect_work);
|
||||
disable_work_sync(&sc->connect.work);
|
||||
disable_work_sync(&sc->recv_io.posted.refill_work);
|
||||
disable_work_sync(&sc->mr_io.recovery_work);
|
||||
disable_work_sync(&sc->idle.immediate_work);
|
||||
disable_delayed_work_sync(&sc->idle.timer_work);
|
||||
|
||||
@@ -649,7 +583,6 @@ static void smbdirect_socket_destroy(struct smbdirect_socket *sc)
|
||||
"rdma session destroyed\n");
|
||||
}
|
||||
|
||||
__SMBDIRECT_PRIVATE__
|
||||
void smbdirect_socket_destroy_sync(struct smbdirect_socket *sc)
|
||||
{
|
||||
smbdirect_log_rdma_event(sc, SMBDIRECT_LOG_INFO,
|
||||
@@ -698,7 +631,6 @@ void smbdirect_socket_destroy_sync(struct smbdirect_socket *sc)
|
||||
SMBDIRECT_DEBUG_ERR_PTR(sc->first_error));
|
||||
}
|
||||
|
||||
__SMBDIRECT_PUBLIC__
|
||||
int smbdirect_socket_bind(struct smbdirect_socket *sc, struct sockaddr *addr)
|
||||
{
|
||||
int ret;
|
||||
@@ -714,7 +646,6 @@ int smbdirect_socket_bind(struct smbdirect_socket *sc, struct sockaddr *addr)
|
||||
}
|
||||
__SMBDIRECT_EXPORT_SYMBOL__(smbdirect_socket_bind);
|
||||
|
||||
__SMBDIRECT_PUBLIC__
|
||||
void smbdirect_socket_shutdown(struct smbdirect_socket *sc)
|
||||
{
|
||||
smbdirect_socket_schedule_cleanup_lvl(sc, SMBDIRECT_LOG_INFO, -ESHUTDOWN);
|
||||
@@ -746,7 +677,6 @@ static void smbdirect_socket_release_destroy(struct kref *kref)
|
||||
kfree(sc);
|
||||
}
|
||||
|
||||
__SMBDIRECT_PUBLIC__
|
||||
void smbdirect_socket_release(struct smbdirect_socket *sc)
|
||||
{
|
||||
/*
|
||||
@@ -765,7 +695,6 @@ void smbdirect_socket_release(struct smbdirect_socket *sc)
|
||||
}
|
||||
__SMBDIRECT_EXPORT_SYMBOL__(smbdirect_socket_release);
|
||||
|
||||
__SMBDIRECT_PRIVATE__
|
||||
int smbdirect_socket_wait_for_credits(struct smbdirect_socket *sc,
|
||||
enum smbdirect_socket_status expected_status,
|
||||
int unexpected_errno,
|
||||
|
||||
@@ -276,10 +276,6 @@ struct smbdirect_socket {
|
||||
*/
|
||||
struct {
|
||||
atomic_t count;
|
||||
/*
|
||||
* woken when count is decremented
|
||||
*/
|
||||
wait_queue_head_t dec_wait_queue;
|
||||
/*
|
||||
* woken when count reached zero
|
||||
*/
|
||||
@@ -393,13 +389,6 @@ struct smbdirect_socket {
|
||||
struct {
|
||||
atomic_t count;
|
||||
} used;
|
||||
|
||||
struct work_struct recovery_work;
|
||||
|
||||
/* Used by transport to wait until all MRs are returned */
|
||||
struct {
|
||||
wait_queue_head_t wait_queue;
|
||||
} cleanup;
|
||||
} mr_io;
|
||||
|
||||
/*
|
||||
@@ -616,7 +605,6 @@ static __always_inline void smbdirect_socket_init(struct smbdirect_socket *sc)
|
||||
init_waitqueue_head(&sc->send_io.credits.wait_queue);
|
||||
|
||||
atomic_set(&sc->send_io.pending.count, 0);
|
||||
init_waitqueue_head(&sc->send_io.pending.dec_wait_queue);
|
||||
init_waitqueue_head(&sc->send_io.pending.zero_wait_queue);
|
||||
|
||||
sc->recv_io.mem.gfp_mask = GFP_KERNEL;
|
||||
@@ -644,9 +632,6 @@ static __always_inline void smbdirect_socket_init(struct smbdirect_socket *sc)
|
||||
atomic_set(&sc->mr_io.ready.count, 0);
|
||||
init_waitqueue_head(&sc->mr_io.ready.wait_queue);
|
||||
atomic_set(&sc->mr_io.used.count, 0);
|
||||
INIT_WORK(&sc->mr_io.recovery_work, __smbdirect_socket_disabled_work);
|
||||
disable_work_sync(&sc->mr_io.recovery_work);
|
||||
init_waitqueue_head(&sc->mr_io.cleanup.wait_queue);
|
||||
|
||||
sc->logging.private_ptr = NULL;
|
||||
sc->logging.needed = __smbdirect_log_needed;
|
||||
|
||||
Reference in New Issue
Block a user