]> www.infradead.org Git - users/dwmw2/linux.git/commitdiff
mptcp: drop useless "err = 0" in subflow_destroy
authorGeliang Tang <tanggeliang@kylinos.cn>
Fri, 13 Dec 2024 19:52:58 +0000 (20:52 +0100)
committerJakub Kicinski <kuba@kernel.org>
Sun, 15 Dec 2024 22:28:34 +0000 (14:28 -0800)
Upon successful return, mptcp_pm_parse_addr() returns 0. There is no need
to set "err = 0" after this. So after mptcp_nl_find_ssk() returns, just
need to set "err = -ESRCH", then release and free msk socket if it returns
NULL.

Also, no need to define the variable "subflow" in subflow_destroy(), use
mptcp_subflow_ctx(ssk) directly.

This patch doesn't change the behaviour of the code, just refactoring.

Signed-off-by: Geliang Tang <tanggeliang@kylinos.cn>
Reviewed-by: Matthieu Baerts (NGI0) <matttbe@kernel.org>
Signed-off-by: Matthieu Baerts (NGI0) <matttbe@kernel.org>
Link: https://patch.msgid.link/20241213-net-next-mptcp-pm-misc-cleanup-v1-7-ddb6d00109a8@kernel.org
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
net/mptcp/pm_userspace.c

index 1d5b77e0a722de74f25c9731659b2c938122c025..740a10d669f859baec975556f1d7c4e90df62c4a 100644 (file)
@@ -538,19 +538,18 @@ int mptcp_pm_nl_subflow_destroy_doit(struct sk_buff *skb, struct genl_info *info
 
        lock_sock(sk);
        ssk = mptcp_nl_find_ssk(msk, &addr_l.addr, &addr_r);
-       if (ssk) {
-               struct mptcp_subflow_context *subflow = mptcp_subflow_ctx(ssk);
-
-               spin_lock_bh(&msk->pm.lock);
-               mptcp_userspace_pm_delete_local_addr(msk, &addr_l);
-               spin_unlock_bh(&msk->pm.lock);
-               mptcp_subflow_shutdown(sk, ssk, RCV_SHUTDOWN | SEND_SHUTDOWN);
-               mptcp_close_ssk(sk, ssk, subflow);
-               MPTCP_INC_STATS(sock_net(sk), MPTCP_MIB_RMSUBFLOW);
-               err = 0;
-       } else {
+       if (!ssk) {
                err = -ESRCH;
+               goto release_sock;
        }
+
+       spin_lock_bh(&msk->pm.lock);
+       mptcp_userspace_pm_delete_local_addr(msk, &addr_l);
+       spin_unlock_bh(&msk->pm.lock);
+       mptcp_subflow_shutdown(sk, ssk, RCV_SHUTDOWN | SEND_SHUTDOWN);
+       mptcp_close_ssk(sk, ssk, mptcp_subflow_ctx(ssk));
+       MPTCP_INC_STATS(sock_net(sk), MPTCP_MIB_RMSUBFLOW);
+release_sock:
        release_sock(sk);
 
 destroy_err: