fs: dlm: use saved sk_error_report()
authorAlexander Aring <aahringo@redhat.com>
Thu, 17 Nov 2022 22:11:55 +0000 (17:11 -0500)
committerDavid Teigland <teigland@redhat.com>
Mon, 21 Nov 2022 15:45:49 +0000 (09:45 -0600)
This patch changes the handling of calling the original
sk_error_report() by not putting it on the stack and calling it later.
If the listen_sock.sk_error_report() is NULL in this moment it indicates
a bug in our implementation.

Signed-off-by: Alexander Aring <aahringo@redhat.com>
Signed-off-by: David Teigland <teigland@redhat.com>
fs/dlm/lowcomms.c

index 677e31144ca0b5b1216dd3235fb549bf40457e75..643f9810ec3581c38f2f57b55ff0df9dfa9a9b3c 100644 (file)
@@ -569,11 +569,8 @@ int dlm_lowcomms_nodes_set_mark(int nodeid, unsigned int mark)
 static void lowcomms_error_report(struct sock *sk)
 {
        struct connection *con = sock2con(sk);
-       void (*orig_report)(struct sock *) = NULL;
        struct inet_sock *inet;
 
-       orig_report = listen_sock.sk_error_report;
-
        inet = inet_sk(sk);
        switch (sk->sk_family) {
        case AF_INET:
@@ -618,8 +615,7 @@ static void lowcomms_error_report(struct sock *sk)
                queue_work(send_workqueue, &con->swork);
 
 out:
-       if (orig_report)
-               orig_report(sk);
+       listen_sock.sk_error_report(sk);
 }
 
 static void restore_callbacks(struct socket *sock)