netlink: Reset portid after netlink_insert failure
The commitc5adde9468
("netlink: eliminate nl_sk_hash_lock") breaks the autobind retry mechanism because it doesn't reset portid after a failed netlink_insert. This means that should autobind fail the first time around, then the socket will be stuck in limbo as it can never be bound again since it already has a non-zero portid. Fixes:c5adde9468
("netlink: eliminate nl_sk_hash_lock") Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
1d6057019e
commit
c0bb07df7d
|
@ -1081,6 +1081,7 @@ static int netlink_insert(struct sock *sk, u32 portid)
|
|||
if (err) {
|
||||
if (err == -EEXIST)
|
||||
err = -EADDRINUSE;
|
||||
nlk_sk(sk)->portid = 0;
|
||||
sock_put(sk);
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue