Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6
Conflicts: drivers/net/bnx2x/bnx2x_cmn.c
This commit is contained in:
@ -1728,7 +1728,11 @@ static int unix_dgram_recvmsg(struct kiocb *iocb, struct socket *sock,
|
||||
|
||||
msg->msg_namelen = 0;
|
||||
|
||||
mutex_lock(&u->readlock);
|
||||
err = mutex_lock_interruptible(&u->readlock);
|
||||
if (err) {
|
||||
err = sock_intr_errno(sock_rcvtimeo(sk, noblock));
|
||||
goto out;
|
||||
}
|
||||
|
||||
skb = skb_recv_datagram(sk, flags, noblock, &err);
|
||||
if (!skb) {
|
||||
@ -1868,7 +1872,11 @@ static int unix_stream_recvmsg(struct kiocb *iocb, struct socket *sock,
|
||||
memset(&tmp_scm, 0, sizeof(tmp_scm));
|
||||
}
|
||||
|
||||
mutex_lock(&u->readlock);
|
||||
err = mutex_lock_interruptible(&u->readlock);
|
||||
if (err) {
|
||||
err = sock_intr_errno(timeo);
|
||||
goto out;
|
||||
}
|
||||
|
||||
do {
|
||||
int chunk;
|
||||
@ -1899,11 +1907,12 @@ static int unix_stream_recvmsg(struct kiocb *iocb, struct socket *sock,
|
||||
|
||||
timeo = unix_stream_data_wait(sk, timeo);
|
||||
|
||||
if (signal_pending(current)) {
|
||||
if (signal_pending(current)
|
||||
|| mutex_lock_interruptible(&u->readlock)) {
|
||||
err = sock_intr_errno(timeo);
|
||||
goto out;
|
||||
}
|
||||
mutex_lock(&u->readlock);
|
||||
|
||||
continue;
|
||||
unlock:
|
||||
unix_state_unlock(sk);
|
||||
|
Reference in New Issue
Block a user