diff options
| author | Stefan Metzmacher <metze@samba.org> | 2025-10-30 12:48:30 +0100 |
|---|---|---|
| committer | Steve French <stfrench@microsoft.com> | 2026-04-15 21:58:24 -0500 |
| commit | aa43bb2c0fc0d928bb120f853349c8affcfeb8b4 (patch) | |
| tree | d95904eb8d366bb494ff82a6cda2ea7b686274e7 | |
| parent | 649c47559a37fdefefc259ab580b537abbc79fbd (diff) | |
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>
| -rw-r--r-- | fs/smb/common/smbdirect/smbdirect_accept.c | 3 | ||||
| -rw-r--r-- | fs/smb/common/smbdirect/smbdirect_all_c_files.c | 25 | ||||
| -rw-r--r-- | fs/smb/common/smbdirect/smbdirect_connect.c | 2 | ||||
| -rw-r--r-- | fs/smb/common/smbdirect/smbdirect_connection.c | 31 | ||||
| -rw-r--r-- | fs/smb/common/smbdirect/smbdirect_debug.c | 1 | ||||
| -rw-r--r-- | fs/smb/common/smbdirect/smbdirect_internal.h | 38 | ||||
| -rw-r--r-- | fs/smb/common/smbdirect/smbdirect_listen.c | 1 | ||||
| -rw-r--r-- | fs/smb/common/smbdirect/smbdirect_mr.c | 5 | ||||
| -rw-r--r-- | fs/smb/common/smbdirect/smbdirect_public.h | 43 | ||||
| -rw-r--r-- | fs/smb/common/smbdirect/smbdirect_rw.c | 1 | ||||
| -rw-r--r-- | fs/smb/common/smbdirect/smbdirect_socket.c | 71 | ||||
| -rw-r--r-- | fs/smb/common/smbdirect/smbdirect_socket.h | 15 |
12 files changed, 3 insertions, 233 deletions
diff --git a/fs/smb/common/smbdirect/smbdirect_accept.c b/fs/smb/common/smbdirect/smbdirect_accept.c index 862df982c2ce..d6d5e6a3f5de 100644 --- a/fs/smb/common/smbdirect/smbdirect_accept.c +++ b/fs/smb/common/smbdirect/smbdirect_accept.c @@ -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 @@ create_qp_failed: 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) diff --git a/fs/smb/common/smbdirect/smbdirect_all_c_files.c b/fs/smb/common/smbdirect/smbdirect_all_c_files.c deleted file mode 100644 index 03e5852cdf86..000000000000 --- a/fs/smb/common/smbdirect/smbdirect_all_c_files.c +++ /dev/null @@ -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" diff --git a/fs/smb/common/smbdirect/smbdirect_connect.c b/fs/smb/common/smbdirect/smbdirect_connect.c index 282dc46c943c..2b54f79dba43 100644 --- a/fs/smb/common/smbdirect/smbdirect_connect.c +++ b/fs/smb/common/smbdirect/smbdirect_connect.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) { diff --git a/fs/smb/common/smbdirect/smbdirect_connection.c b/fs/smb/common/smbdirect/smbdirect_connection.c index fb947a00e4b6..7e4921b9538c 100644 --- a/fs/smb/common/smbdirect/smbdirect_connection.c +++ b/fs/smb/common/smbdirect/smbdirect_connection.c @@ -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 @@ err: 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 @@ err: 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 @@ release_credit: } __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 @@ bcredit_failed: } __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 @@ skip_free: 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 @@ error: 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) diff --git a/fs/smb/common/smbdirect/smbdirect_debug.c b/fs/smb/common/smbdirect/smbdirect_debug.c index eac924164fd4..d8664fd7f71a 100644 --- a/fs/smb/common/smbdirect/smbdirect_debug.c +++ b/fs/smb/common/smbdirect/smbdirect_debug.c @@ -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) diff --git a/fs/smb/common/smbdirect/smbdirect_internal.h b/fs/smb/common/smbdirect/smbdirect_internal.h index b5fe07b7c54d..30a1b8643657 100644 --- a/fs/smb/common/smbdirect/smbdirect_internal.h +++ b/fs/smb/common/smbdirect/smbdirect_internal.h @@ -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); diff --git a/fs/smb/common/smbdirect/smbdirect_listen.c b/fs/smb/common/smbdirect/smbdirect_listen.c index ad1ecf64762b..05c7902e7020 100644 --- a/fs/smb/common/smbdirect/smbdirect_listen.c +++ b/fs/smb/common/smbdirect/smbdirect_listen.c @@ -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; diff --git a/fs/smb/common/smbdirect/smbdirect_mr.c b/fs/smb/common/smbdirect/smbdirect_mr.c index d2e70941f772..4873a2c1066f 100644 --- a/fs/smb/common/smbdirect/smbdirect_mr.c +++ b/fs/smb/common/smbdirect/smbdirect_mr.c @@ -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 @@ dma_map_error: } __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; diff --git a/fs/smb/common/smbdirect/smbdirect_public.h b/fs/smb/common/smbdirect/smbdirect_public.h index 231ad7a9c6af..50088155e7c3 100644 --- a/fs/smb/common/smbdirect/smbdirect_public.h +++ b/fs/smb/common/smbdirect/smbdirect_public.h @@ -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); diff --git a/fs/smb/common/smbdirect/smbdirect_rw.c b/fs/smb/common/smbdirect/smbdirect_rw.c index bd90dffbf369..3b2eb8c48efc 100644 --- a/fs/smb/common/smbdirect/smbdirect_rw.c +++ b/fs/smb/common/smbdirect/smbdirect_rw.c @@ -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, diff --git a/fs/smb/common/smbdirect/smbdirect_socket.c b/fs/smb/common/smbdirect/smbdirect_socket.c index fedde477994f..1e3b361728cc 100644 --- a/fs/smb/common/smbdirect/smbdirect_socket.c +++ b/fs/smb/common/smbdirect/smbdirect_socket.c @@ -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 @@ alloc_failed: } __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 @@ alloc_failed: } __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, diff --git a/fs/smb/common/smbdirect/smbdirect_socket.h b/fs/smb/common/smbdirect/smbdirect_socket.h index f32fee3a6bd2..c09eddd8ad16 100644 --- a/fs/smb/common/smbdirect/smbdirect_socket.h +++ b/fs/smb/common/smbdirect/smbdirect_socket.h @@ -277,10 +277,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 */ wait_queue_head_t zero_wait_queue; @@ -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; |
