From: Stefan Metzmacher Date: Wed, 19 Nov 2025 13:56:03 +0000 (+0100) Subject: smb: smbdirect: introduce smbdirect_socket_bind() X-Git-Tag: v7.1-rc1~128^2~86 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=03f9e2c15f8fa32b8056a3a59f98f652726f78b8;p=thirdparty%2Fkernel%2Flinux.git smb: smbdirect: introduce smbdirect_socket_bind() This will be used by the server in the next steps. Cc: Steve French Cc: Tom Talpey Cc: Long Li Cc: Namjae Jeon Cc: linux-cifs@vger.kernel.org Cc: samba-technical@lists.samba.org Signed-off-by: Stefan Metzmacher Acked-by: Namjae Jeon Signed-off-by: Steve French --- diff --git a/fs/smb/common/smbdirect/smbdirect_public.h b/fs/smb/common/smbdirect/smbdirect_public.h index 3d20d9a87e7ba..95837beeece8f 100644 --- a/fs/smb/common/smbdirect/smbdirect_public.h +++ b/fs/smb/common/smbdirect/smbdirect_public.h @@ -85,6 +85,9 @@ 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); diff --git a/fs/smb/common/smbdirect/smbdirect_socket.c b/fs/smb/common/smbdirect/smbdirect_socket.c index ac75860e4dd64..def67fdac066e 100644 --- a/fs/smb/common/smbdirect/smbdirect_socket.c +++ b/fs/smb/common/smbdirect/smbdirect_socket.c @@ -611,6 +611,22 @@ 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; + + if (sc->status != SMBDIRECT_SOCKET_CREATED) + return -EINVAL; + + ret = rdma_bind_addr(sc->rdma.cm_id, addr); + if (ret) + return ret; + + return 0; +} +__SMBDIRECT_EXPORT_SYMBOL__(smbdirect_socket_bind); + __SMBDIRECT_PUBLIC__ void smbdirect_socket_shutdown(struct smbdirect_socket *sc) {