From 982abe87e86ac50b70eeb6312e269d8ad424b248 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Denis-Courmont?= Date: Wed, 29 Sep 2010 22:33:50 +0000 Subject: [PATCH] --- yaml --- r: 214816 b: refs/heads/master c: e1a5964f0c32a75b17360cfc565d25aaedbff747 h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/net/phonet/pep.c | 10 ++++++++-- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/[refs] b/[refs] index 25c07061096b..35f418dba99b 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 1020660189bb72ae25fd68733ee473d29b8604b5 +refs/heads/master: e1a5964f0c32a75b17360cfc565d25aaedbff747 diff --git a/trunk/net/phonet/pep.c b/trunk/net/phonet/pep.c index 7bf23cf36b02..552fb665645f 100644 --- a/trunk/net/phonet/pep.c +++ b/trunk/net/phonet/pep.c @@ -1288,6 +1288,7 @@ static int pipe_skb_send(struct sock *sk, struct sk_buff *skb) { struct pep_sock *pn = pep_sk(sk); struct pnpipehdr *ph; + int err; #ifdef CONFIG_PHONET_PIPECTRLR struct sockaddr_pn spn = { .spn_family = AF_PHONET, @@ -1314,10 +1315,15 @@ static int pipe_skb_send(struct sock *sk, struct sk_buff *skb) ph->message_id = PNS_PIPE_DATA; ph->pipe_handle = pn->pipe_handle; #ifdef CONFIG_PHONET_PIPECTRLR - return pn_skb_send(sk, skb, &spn); + err = pn_skb_send(sk, skb, &spn); #else - return pn_skb_send(sk, skb, &pipe_srv); + err = pn_skb_send(sk, skb, &pipe_srv); #endif + + if (err && pn_flow_safe(pn->tx_fc)) + atomic_inc(&pn->tx_credits); + return err; + } static int pep_sendmsg(struct kiocb *iocb, struct sock *sk,