Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 37ab4fa7 authored by Sasha Levin's avatar Sasha Levin Committed by David S. Miller
Browse files

net: unix: allow bind to fail on mutex lock



This is similar to the set_peek_off patch where calling bind while the
socket is stuck in unix_dgram_recvmsg() will block and cause a hung task
spew after a while.

This is also the last place that did a straightforward mutex_lock(), so
there shouldn't be any more of these patches.

Signed-off-by: default avatarSasha Levin <sasha.levin@oracle.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent d1fc5024
Loading
Loading
Loading
Loading
+6 −2
Original line number Diff line number Diff line
@@ -718,7 +718,9 @@ static int unix_autobind(struct socket *sock)
	int err;
	unsigned int retries = 0;

	mutex_lock(&u->readlock);
	err = mutex_lock_interruptible(&u->readlock);
	if (err)
		return err;

	err = 0;
	if (u->addr)
@@ -877,7 +879,9 @@ static int unix_bind(struct socket *sock, struct sockaddr *uaddr, int addr_len)
		goto out;
	addr_len = err;

	mutex_lock(&u->readlock);
	err = mutex_lock_interruptible(&u->readlock);
	if (err)
		goto out;

	err = -EINVAL;
	if (u->addr)