diff options
Diffstat (limited to 'net/rxrpc/sendmsg.c')
| -rw-r--r-- | net/rxrpc/sendmsg.c | 21 | 
1 files changed, 12 insertions, 9 deletions
| diff --git a/net/rxrpc/sendmsg.c b/net/rxrpc/sendmsg.c index 46c9312085b1..bec64deb7b0a 100644 --- a/net/rxrpc/sendmsg.c +++ b/net/rxrpc/sendmsg.c @@ -152,12 +152,13 @@ static void rxrpc_notify_end_tx(struct rxrpc_sock *rx, struct rxrpc_call *call,  }  /* - * Queue a DATA packet for transmission, set the resend timeout and send the - * packet immediately + * Queue a DATA packet for transmission, set the resend timeout and send + * the packet immediately.  Returns the error from rxrpc_send_data_packet() + * in case the caller wants to do something with it.   */ -static void rxrpc_queue_packet(struct rxrpc_sock *rx, struct rxrpc_call *call, -			       struct sk_buff *skb, bool last, -			       rxrpc_notify_end_tx_t notify_end_tx) +static int rxrpc_queue_packet(struct rxrpc_sock *rx, struct rxrpc_call *call, +			      struct sk_buff *skb, bool last, +			      rxrpc_notify_end_tx_t notify_end_tx)  {  	struct rxrpc_skb_priv *sp = rxrpc_skb(skb);  	unsigned long now; @@ -250,7 +251,8 @@ static void rxrpc_queue_packet(struct rxrpc_sock *rx, struct rxrpc_call *call,  out:  	rxrpc_free_skb(skb, rxrpc_skb_tx_freed); -	_leave(""); +	_leave(" = %d", ret); +	return ret;  }  /* @@ -423,9 +425,10 @@ static int rxrpc_send_data(struct rxrpc_sock *rx,  			if (ret < 0)  				goto out; -			rxrpc_queue_packet(rx, call, skb, -					   !msg_data_left(msg) && !more, -					   notify_end_tx); +			ret = rxrpc_queue_packet(rx, call, skb, +						 !msg_data_left(msg) && !more, +						 notify_end_tx); +			/* Should check for failure here */  			skb = NULL;  		}  	} while (msg_data_left(msg) > 0); | 
