diff options
author | Matthieu Baerts <matthieu.baerts@tessares.net> | 2023-01-25 11:47:24 +0100 |
---|---|---|
committer | Paolo Abeni <pabeni@redhat.com> | 2023-01-26 13:33:30 +0100 |
commit | 40c71f763f87b68fe43199c1702220c91afed288 (patch) | |
tree | e6aaed22a6b4ba34798a4db629c6955706853caf /net | |
parent | ad3493746ebe9e9adf3d8c5b003fa0240f25242a (diff) |
mptcp: userspace pm: use a single point of exit
Like in all other functions in this file, a single point of exit is used
when extra operations are needed: unlock, decrement refcount, etc.
There is no functional change for the moment but it is better to do the
same here to make sure all cleanups are done in case of intermediate
errors.
Reviewed-by: Mat Martineau <mathew.j.martineau@linux.intel.com>
Signed-off-by: Matthieu Baerts <matthieu.baerts@tessares.net>
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
Diffstat (limited to 'net')
-rw-r--r-- | net/mptcp/pm_userspace.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/net/mptcp/pm_userspace.c b/net/mptcp/pm_userspace.c index ea6ad9da7493..a02d3cbf2a1b 100644 --- a/net/mptcp/pm_userspace.c +++ b/net/mptcp/pm_userspace.c @@ -59,8 +59,8 @@ int mptcp_userspace_pm_append_new_local_addr(struct mptcp_sock *msk, */ e = sock_kmalloc(sk, sizeof(*e), GFP_ATOMIC); if (!e) { - spin_unlock_bh(&msk->pm.lock); - return -ENOMEM; + ret = -ENOMEM; + goto append_err; } *e = *entry; @@ -74,6 +74,7 @@ int mptcp_userspace_pm_append_new_local_addr(struct mptcp_sock *msk, ret = entry->addr.id; } +append_err: spin_unlock_bh(&msk->pm.lock); return ret; } |