diff options
author | Ralf Baechle <ralf@linux-mips.org> | 2000-04-19 04:00:00 +0000 |
---|---|---|
committer | Ralf Baechle <ralf@linux-mips.org> | 2000-04-19 04:00:00 +0000 |
commit | 46e045034336a2cc90c1798cd7cc07af744ddfd6 (patch) | |
tree | 3b9b51fc482e729f663d25333e77fbed9aaa939a /net/decnet | |
parent | 31dc59d503a02e84c4de98826452acaeb56dc15a (diff) |
Merge with Linux 2.3.99-pre4.
Diffstat (limited to 'net/decnet')
-rw-r--r-- | net/decnet/af_decnet.c | 4 | ||||
-rw-r--r-- | net/decnet/dn_nsp_in.c | 3 | ||||
-rw-r--r-- | net/decnet/dn_nsp_out.c | 4 |
3 files changed, 6 insertions, 5 deletions
diff --git a/net/decnet/af_decnet.c b/net/decnet/af_decnet.c index a2453c06a..c560ea01e 100644 --- a/net/decnet/af_decnet.c +++ b/net/decnet/af_decnet.c @@ -1670,14 +1670,14 @@ static int dn_recvmsg(struct socket *sock, struct msghdr *msg, int size, goto out; } - sock->flags |= SO_WAITDATA; + set_bit(SOCK_ASYNC_WAITDATA, &sock->flags); SOCK_SLEEP_PRE(sk) if (!dn_data_ready(sk, queue, flags, target)) schedule(); SOCK_SLEEP_POST(sk) - sock->flags &= ~SO_WAITDATA; + clear_bit(SOCK_ASYNC_WAITDATA, &sock->flags); } for(skb = queue->next; skb != (struct sk_buff *)queue; skb = nskb) { diff --git a/net/decnet/dn_nsp_in.c b/net/decnet/dn_nsp_in.c index 854ed0e92..00e62aa76 100644 --- a/net/decnet/dn_nsp_in.c +++ b/net/decnet/dn_nsp_in.c @@ -438,7 +438,8 @@ static __inline__ int dn_queue_skb(struct sock *sk, struct sk_buff *skb, int sig if (!sk->dead) { struct socket *sock = sk->socket; wake_up_interruptible(sk->sleep); - if (!(sock->flags & SO_WAITDATA) && sock->fasync_list) + if (sock && sock->fasync_list && + !test_bit(SOCK_ASYNC_WAITDATA, &sock->flags)) kill_fasync(sock->fasync_list, sig, (sig == SIGURG) ? POLL_PRI : POLL_IN); } diff --git a/net/decnet/dn_nsp_out.c b/net/decnet/dn_nsp_out.c index ebbf4163f..669aeccce 100644 --- a/net/decnet/dn_nsp_out.c +++ b/net/decnet/dn_nsp_out.c @@ -133,13 +133,13 @@ struct sk_buff *dn_alloc_send_skb(struct sock *sk, int *size, int noblock, int * } if (space < len) { - sk->socket->flags |= SO_NOSPACE; + set_bit(SOCK_ASYNC_NOSPACE, &sk->socket->flags); if (noblock) { *err = EWOULDBLOCK; break; } - sk->socket->flags &= ~SO_NOSPACE; + clear_bit(SOCK_ASYNC_WAITDATA, &sk->socket->flags); SOCK_SLEEP_PRE(sk) if ((sk->sndbuf - atomic_read(&sk->wmem_alloc)) < len) |