patch-1.3.77 linux/net/core/datagram.c
Next file: linux/net/core/dev.c
Previous file: linux/net/ax25/ax25_subr.c
Back to the patch index
Back to the overall index
- Lines: 29
- Date:
Thu Mar 21 10:46:17 1996
- Orig file:
v1.3.76/linux/net/core/datagram.c
- Orig date:
Sat Feb 17 16:02:57 1996
diff -u --recursive --new-file v1.3.76/linux/net/core/datagram.c linux/net/core/datagram.c
@@ -79,7 +79,7 @@
lock_sock(sk);
restart:
- while(skb_peek(&sk->receive_queue) == NULL) /* No data */
+ while(skb_queue_empty(&sk->receive_queue)) /* No data */
{
/* Socket errors? */
error = sock_error(sk);
@@ -142,14 +142,12 @@
save_flags(flags);
cli();
skb->users--;
- if(skb->users>0)
- {
- restore_flags(flags);
- return;
+ if(skb->users <= 0) {
+ /* See if it needs destroying */
+ /* Been dequeued by someone - ie it's read */
+ if(!skb->next && !skb->prev)
+ kfree_skb(skb,FREE_READ);
}
- /* See if it needs destroying */
- if(!skb->next && !skb->prev) /* Been dequeued by someone - ie it's read */
- kfree_skb(skb,FREE_READ);
restore_flags(flags);
release_sock(sk);
}
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen, slshen@lbl.gov
with Sam's (original) version of this