aboutsummaryrefslogtreecommitdiffstats
path: root/net/unix
diff options
context:
space:
mode:
authorDavid S. Miller <davem@davemloft.net>2013-12-18 16:42:06 -0500
committerDavid S. Miller <davem@davemloft.net>2013-12-18 16:42:06 -0500
commit143c9054949436cb05e468439dc5e46231f33d09 (patch)
treec2e972d8188fb1b36368e9acb5b6b59466c9d903 /net/unix
parent0b6807034791160d5e584138943d2daea765436d (diff)
parent35eecf052250f663f07a4cded7d3503fd1b50729 (diff)
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
Conflicts: drivers/net/ethernet/intel/i40e/i40e_main.c drivers/net/macvtap.c Both minor merge hassles, simple overlapping changes. Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/unix')
-rw-r--r--net/unix/af_unix.c16
1 files changed, 12 insertions, 4 deletions
diff --git a/net/unix/af_unix.c b/net/unix/af_unix.c
index 813622296317..800ca61758ff 100644
--- a/net/unix/af_unix.c
+++ b/net/unix/af_unix.c
@@ -532,13 +532,17 @@ static int unix_seqpacket_sendmsg(struct kiocb *, struct socket *,
532static int unix_seqpacket_recvmsg(struct kiocb *, struct socket *, 532static int unix_seqpacket_recvmsg(struct kiocb *, struct socket *,
533 struct msghdr *, size_t, int); 533 struct msghdr *, size_t, int);
534 534
535static void unix_set_peek_off(struct sock *sk, int val) 535static int unix_set_peek_off(struct sock *sk, int val)
536{ 536{
537 struct unix_sock *u = unix_sk(sk); 537 struct unix_sock *u = unix_sk(sk);
538 538
539 mutex_lock(&u->readlock); 539 if (mutex_lock_interruptible(&u->readlock))
540 return -EINTR;
541
540 sk->sk_peek_off = val; 542 sk->sk_peek_off = val;
541 mutex_unlock(&u->readlock); 543 mutex_unlock(&u->readlock);
544
545 return 0;
542} 546}
543 547
544 548
@@ -716,7 +720,9 @@ static int unix_autobind(struct socket *sock)
716 int err; 720 int err;
717 unsigned int retries = 0; 721 unsigned int retries = 0;
718 722
719 mutex_lock(&u->readlock); 723 err = mutex_lock_interruptible(&u->readlock);
724 if (err)
725 return err;
720 726
721 err = 0; 727 err = 0;
722 if (u->addr) 728 if (u->addr)
@@ -875,7 +881,9 @@ static int unix_bind(struct socket *sock, struct sockaddr *uaddr, int addr_len)
875 goto out; 881 goto out;
876 addr_len = err; 882 addr_len = err;
877 883
878 mutex_lock(&u->readlock); 884 err = mutex_lock_interruptible(&u->readlock);
885 if (err)
886 goto out;
879 887
880 err = -EINVAL; 888 err = -EINVAL;
881 if (u->addr) 889 if (u->addr)