net/smc: remove sock_error detour in clc-functions
authorUrsula Braun <ubraun@linux.ibm.com>
Thu, 22 Nov 2018 09:26:36 +0000 (10:26 +0100)
committerDavid S. Miller <davem@davemloft.net>
Sat, 24 Nov 2018 01:20:32 +0000 (17:20 -0800)
There is no need to store the return value in sk_err, if it is
afterwards cleared again with sock_error(). This patch sets the
return value directly. Just cleanup, no functional change.

Signed-off-by: Ursula Braun <ubraun@linux.ibm.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/smc/smc_clc.c

index 89c3a8c7859a3ae11a63d8db5e8b42e0ca26a897..7278ec0cfa582c75e91a63d7c2d5d559878130dc 100644 (file)
@@ -374,10 +374,8 @@ int smc_clc_send_decline(struct smc_sock *smc, u32 peer_diag_info)
        len = kernel_sendmsg(smc->clcsock, &msg, &vec, 1,
                             sizeof(struct smc_clc_msg_decline));
        if (len < sizeof(struct smc_clc_msg_decline))
-               smc->sk.sk_err = EPROTO;
-       if (len < 0)
-               smc->sk.sk_err = -len;
-       return sock_error(&smc->sk);
+               len = -EPROTO;
+       return len > 0 ? 0 : len;
 }
 
 /* send CLC PROPOSAL message across internal TCP socket */
@@ -536,7 +534,6 @@ int smc_clc_send_accept(struct smc_sock *new_smc, int srv_first_contact)
        struct smc_link *link;
        struct msghdr msg;
        struct kvec vec;
-       int rc = 0;
        int len;
 
        memset(&aclc, 0, sizeof(aclc));
@@ -589,13 +586,8 @@ int smc_clc_send_accept(struct smc_sock *new_smc, int srv_first_contact)
        vec.iov_len = ntohs(aclc.hdr.length);
        len = kernel_sendmsg(new_smc->clcsock, &msg, &vec, 1,
                             ntohs(aclc.hdr.length));
-       if (len < ntohs(aclc.hdr.length)) {
-               if (len >= 0)
-                       new_smc->sk.sk_err = EPROTO;
-               else
-                       new_smc->sk.sk_err = new_smc->clcsock->sk->sk_err;
-               rc = sock_error(&new_smc->sk);
-       }
+       if (len < ntohs(aclc.hdr.length))
+               len = len >= 0 ? -EPROTO : -new_smc->clcsock->sk->sk_err;
 
-       return rc;
+       return len > 0 ? 0 : len;
 }