]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
smb: smbdirect: introduce and use include/linux/smbdirect.h
authorStefan Metzmacher <metze@samba.org>
Wed, 29 Apr 2026 13:43:36 +0000 (15:43 +0200)
committerSteve French <stfrench@microsoft.com>
Fri, 1 May 2026 21:24:25 +0000 (16:24 -0500)
This makes it easier to rebuild cifs.ko and ksmbd.ko against
a running kernel.

Suggested-by: Christoph Hellwig <hch@infradead.org>
Link: https://lore.kernel.org/linux-cifs/aehrPuY60VMcYGU8@infradead.org/
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: Christoph Hellwig <hch@infradead.org>
Cc: linux-cifs@vger.kernel.org
Cc: samba-technical@lists.samba.org
Signed-off-by: Stefan Metzmacher <metze@samba.org>
Signed-off-by: Steve French <stfrench@microsoft.com>
MAINTAINERS
fs/smb/client/smbdirect.c
fs/smb/client/smbdirect.h
fs/smb/server/transport_rdma.c
fs/smb/server/transport_rdma.h
fs/smb/smbdirect/internal.h
fs/smb/smbdirect/smbdirect.h [deleted file]
include/linux/smbdirect.h [moved from fs/smb/smbdirect/public.h with 76% similarity]

index 2c67ee25ffe6acca36a11bfb79d6c9533fe0a9ff..060dca38dbf7423436bb8b8a8a79e7860509b9fd 100644 (file)
@@ -24650,6 +24650,7 @@ S:      Maintained
 F:     fs/smb/client/smbdirect.*
 F:     fs/smb/smbdirect/
 F:     fs/smb/server/transport_rdma.*
+F:     include/linux/smbdirect.h
 
 SMC91x ETHERNET DRIVER
 M:     Nicolas Pitre <nico@fluxnic.net>
index b9826185de18ba893f95120c938aacdf70b6aaee..563ef488a22585f582b67a0aa933a019877d8a34 100644 (file)
@@ -9,7 +9,6 @@
 #include "cifs_debug.h"
 #include "cifsproto.h"
 #include "smb2proto.h"
-#include "../smbdirect/public.h"
 
 /* Port numbers for SMBD transport */
 #define SMB_PORT       445
index 287ac849213d400f761141573ee6e08799aa5979..be205ec02077e6c78cdc977f1d891cc620012f15 100644 (file)
@@ -12,7 +12,7 @@
 
 #include "cifsglob.h"
 
-#include "../smbdirect/smbdirect.h"
+#include <linux/smbdirect.h>
 
 extern int rdma_readwrite_threshold;
 extern int smbd_max_frmr_depth;
index 346c051e31f502ec97db7cf244cce2e7432d81bc..b6d63ff8a8a3d5f250a1278e49e324ee43c21894 100644 (file)
@@ -18,7 +18,6 @@
 #include "smb_common.h"
 #include "../common/smb2status.h"
 #include "transport_rdma.h"
-#include "../smbdirect/public.h"
 
 
 #define SMB_DIRECT_PORT_IWARP          5445
index bde3d88aecc7196c3d4575f857372989fc265a97..8b78917a179580b354a3911e1b965721ebf10c72 100644 (file)
@@ -25,6 +25,6 @@ static inline void init_smbd_max_io_size(unsigned int sz) { }
 static inline unsigned int get_smbd_max_read_write_size(struct ksmbd_transport *kt) { return 0; }
 #endif
 
-#include "../smbdirect/smbdirect.h"
+#include <linux/smbdirect.h>
 
 #endif /* __KSMBD_TRANSPORT_RDMA_H__ */
index 82529b41708b3365610065d7db523af74c1e5817..e9959e6dc13ae8b56c175134fb9f3a5c6bdb15c7 100644 (file)
@@ -9,9 +9,8 @@
 #define DEFAULT_SYMBOL_NAMESPACE "SMBDIRECT"
 #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
 
-#include "smbdirect.h"
+#include <linux/smbdirect.h>
 #include "pdu.h"
-#include "public.h"
 
 #include <linux/mutex.h>
 
diff --git a/fs/smb/smbdirect/smbdirect.h b/fs/smb/smbdirect/smbdirect.h
deleted file mode 100644 (file)
index bbab5f7..0000000
+++ /dev/null
@@ -1,52 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0-or-later */
-/*
- *   Copyright (C) 2025 Stefan Metzmacher
- */
-
-#ifndef __FS_SMB_COMMON_SMBDIRECT_SMBDIRECT_H__
-#define __FS_SMB_COMMON_SMBDIRECT_SMBDIRECT_H__
-
-#include <linux/types.h>
-
-/* SMB-DIRECT buffer descriptor V1 structure [MS-SMBD] 2.2.3.1 */
-struct smbdirect_buffer_descriptor_v1 {
-       __le64 offset;
-       __le32 token;
-       __le32 length;
-} __packed;
-
-/*
- * Connection parameters mostly from [MS-SMBD] 3.1.1.1
- *
- * These are setup and negotiated at the beginning of a
- * connection and remain constant unless explicitly changed.
- *
- * Some values are important for the upper layer.
- */
-struct smbdirect_socket_parameters {
-       __u64 flags;
-#define SMBDIRECT_FLAG_PORT_RANGE_ONLY_IB ((__u64)0x1)
-#define SMBDIRECT_FLAG_PORT_RANGE_ONLY_IW ((__u64)0x2)
-       __u32 resolve_addr_timeout_msec;
-       __u32 resolve_route_timeout_msec;
-       __u32 rdma_connect_timeout_msec;
-       __u32 negotiate_timeout_msec;
-       __u16 initiator_depth;     /* limited to U8_MAX */
-       __u16 responder_resources; /* limited to U8_MAX */
-       __u16 recv_credit_max;
-       __u16 send_credit_target;
-       __u32 max_send_size;
-       __u32 max_fragmented_send_size;
-       __u32 max_recv_size;
-       __u32 max_fragmented_recv_size;
-       __u32 max_read_write_size;
-       __u32 max_frmr_depth;
-       __u32 keepalive_interval_msec;
-       __u32 keepalive_timeout_msec;
-} __packed;
-
-#define SMBDIRECT_FLAG_PORT_RANGE_MASK ( \
-               SMBDIRECT_FLAG_PORT_RANGE_ONLY_IB | \
-               SMBDIRECT_FLAG_PORT_RANGE_ONLY_IW)
-
-#endif /* __FS_SMB_COMMON_SMBDIRECT_SMBDIRECT_H__ */
similarity index 76%
rename from fs/smb/smbdirect/public.h
rename to include/linux/smbdirect.h
index d4fb36e65254a8c146d0f7aa24590a40a950bc2f..97f5ba730fa74cf546e5aba7c98073c64e8efbc6 100644 (file)
@@ -3,11 +3,51 @@
  *   Copyright (C) 2025, Stefan Metzmacher
  */
 
-#ifndef __FS_SMB_COMMON_SMBDIRECT_SMBDIRECT_PUBLIC_H__
-#define __FS_SMB_COMMON_SMBDIRECT_SMBDIRECT_PUBLIC_H__
+#ifndef __LINUX_SMBDIRECT_H__
+#define __LINUX_SMBDIRECT_H__
 
-struct smbdirect_buffer_descriptor_v1;
-struct smbdirect_socket_parameters;
+#include <linux/types.h>
+
+/* SMB-DIRECT buffer descriptor V1 structure [MS-SMBD] 2.2.3.1 */
+struct smbdirect_buffer_descriptor_v1 {
+       __le64 offset;
+       __le32 token;
+       __le32 length;
+} __packed;
+
+/*
+ * Connection parameters mostly from [MS-SMBD] 3.1.1.1
+ *
+ * These are setup and negotiated at the beginning of a
+ * connection and remain constant unless explicitly changed.
+ *
+ * Some values are important for the upper layer.
+ */
+struct smbdirect_socket_parameters {
+       __u64 flags;
+#define SMBDIRECT_FLAG_PORT_RANGE_ONLY_IB ((__u64)0x1)
+#define SMBDIRECT_FLAG_PORT_RANGE_ONLY_IW ((__u64)0x2)
+       __u32 resolve_addr_timeout_msec;
+       __u32 resolve_route_timeout_msec;
+       __u32 rdma_connect_timeout_msec;
+       __u32 negotiate_timeout_msec;
+       __u16 initiator_depth;     /* limited to U8_MAX */
+       __u16 responder_resources; /* limited to U8_MAX */
+       __u16 recv_credit_max;
+       __u16 send_credit_target;
+       __u32 max_send_size;
+       __u32 max_fragmented_send_size;
+       __u32 max_recv_size;
+       __u32 max_fragmented_recv_size;
+       __u32 max_read_write_size;
+       __u32 max_frmr_depth;
+       __u32 keepalive_interval_msec;
+       __u32 keepalive_timeout_msec;
+} __packed;
+
+#define SMBDIRECT_FLAG_PORT_RANGE_MASK ( \
+               SMBDIRECT_FLAG_PORT_RANGE_ONLY_IB | \
+               SMBDIRECT_FLAG_PORT_RANGE_ONLY_IW)
 
 struct smbdirect_socket;
 struct smbdirect_send_batch;
@@ -143,4 +183,4 @@ void smbdirect_connection_legacy_debug_proc_show(struct smbdirect_socket *sc,
                                                 unsigned int rdma_readwrite_threshold,
                                                 struct seq_file *m);
 
-#endif /* __FS_SMB_COMMON_SMBDIRECT_SMBDIRECT_PUBLIC_H__ */
+#endif /* __LINUX_SMBDIRECT_H__ */