From: Stefan Metzmacher Date: Fri, 17 Oct 2025 13:49:50 +0000 (+0200) Subject: smb: smbdirect: introduce smbdirect_connection_request_keep_alive() X-Git-Tag: v7.1-rc1~128^2~106 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=4908d19640f4e7834acf26a7de2b78b1c1880829;p=thirdparty%2Fkernel%2Flinux.git smb: smbdirect: introduce smbdirect_connection_request_keep_alive() This a copy of manage_keep_alive_before_sending() in client and server, it will replace these in future. 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_connection.c b/fs/smb/common/smbdirect/smbdirect_connection.c index 40d830c58f195..45a7ff9b7354a 100644 --- a/fs/smb/common/smbdirect/smbdirect_connection.c +++ b/fs/smb/common/smbdirect/smbdirect_connection.c @@ -726,6 +726,25 @@ static 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; + + if (sc->idle.keepalive == SMBDIRECT_KEEPALIVE_PENDING) { + sc->idle.keepalive = SMBDIRECT_KEEPALIVE_SENT; + /* + * Now use the keepalive timeout (instead of keepalive interval) + * in order to wait for a response + */ + mod_delayed_work(sc->workqueue, &sc->idle.timer_work, + msecs_to_jiffies(sp->keepalive_timeout_msec)); + return true; + } + + return false; +} + __maybe_unused /* this is temporary while this file is included in others */ static void smbdirect_connection_send_io_done(struct ib_cq *cq, struct ib_wc *wc) {