From mboxrd@z Thu Jan 1 00:00:00 1970 From: Alexander Aring Date: Wed, 23 Jun 2021 11:14:44 -0400 Subject: [Cluster-devel] [RFC dlm/next 05/15] fs: dlm: auto load sctp module In-Reply-To: <20210623151454.176649-1-aahringo@redhat.com> References: <20210623151454.176649-1-aahringo@redhat.com> Message-ID: <20210623151454.176649-6-aahringo@redhat.com> List-Id: To: cluster-devel.redhat.com MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit This patch adds a "for now" better handling of missing SCTP support in the kernel and try to load the sctp module if SCTP is set. Signed-off-by: Alexander Aring --- fs/dlm/lowcomms.c | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/fs/dlm/lowcomms.c b/fs/dlm/lowcomms.c index 783cfd5f63a5..fcc1094f7417 100644 --- a/fs/dlm/lowcomms.c +++ b/fs/dlm/lowcomms.c @@ -1865,11 +1865,9 @@ static int dlm_listen_for_all(void) log_print("Using %s for communications", dlm_proto_ops->name); - if (dlm_proto_ops->listen_validate) { - result = dlm_proto_ops->listen_validate(); - if (result < 0) - return result; - } + result = dlm_proto_ops->listen_validate(); + if (result < 0) + return result; result = sock_create_kern(&init_net, dlm_local_addr[0]->ss_family, SOCK_STREAM, dlm_proto_ops->proto, &sock); @@ -1946,6 +1944,17 @@ static const struct dlm_proto_ops dlm_tcp_ops = { .eof_condition = tcp_eof_condition, }; +static int dlm_sctp_listen_validate(void) +{ + if (!IS_ENABLED(CONFIG_IP_SCTP)) { + log_print("SCTP is not enabled by this kernel\n"); + return -EOPNOTSUPP; + } + + request_module("sctp"); + return 0; +} + static int dlm_sctp_bind_listen(struct socket *sock) { return sctp_bind_addrs(sock, dlm_config.ci_tcp_port); @@ -1961,6 +1970,7 @@ static void dlm_sctp_sockopts(struct socket *sock) static const struct dlm_proto_ops dlm_sctp_ops = { .name = "SCTP", .proto = IPPROTO_SCTP, + .listen_validate = dlm_sctp_listen_validate, .listen_sockopts = dlm_sctp_sockopts, .listen_bind = dlm_sctp_bind_listen, .connect_action = sctp_connect_to_sock, -- 2.26.3