mirror of https://gitee.com/openkylin/linux.git
[DCCP]: Fix logfile overflow
This patch fixes data being spewed into the logs continually. As the code stood if there was a large queue and long delays timeo would go down to zero and never get reset. This fixes it by resetting timeo. Put constant into header as well. Signed-off-by: Ian McDonald <ian.mcdonald@jandi.co.nz> Signed-off-by: Gerrit Renker <gerrit@erg.abdn.ac.uk> Signed-off-by: Arnaldo Carvalho de Melo <acme@mandriva.com>
This commit is contained in:
parent
fec5b80e49
commit
f45b3ec481
|
@ -62,6 +62,8 @@ extern void dccp_time_wait(struct sock *sk, int state, int timeo);
|
||||||
|
|
||||||
#define DCCP_RTO_MAX ((unsigned)(120 * HZ)) /* FIXME: using TCP value */
|
#define DCCP_RTO_MAX ((unsigned)(120 * HZ)) /* FIXME: using TCP value */
|
||||||
|
|
||||||
|
#define DCCP_XMIT_TIMEO 30000 /* Time/msecs for blocking transmit per packet */
|
||||||
|
|
||||||
/* is seq1 < seq2 ? */
|
/* is seq1 < seq2 ? */
|
||||||
static inline int before48(const u64 seq1, const u64 seq2)
|
static inline int before48(const u64 seq1, const u64 seq2)
|
||||||
{
|
{
|
||||||
|
|
|
@ -249,8 +249,8 @@ void dccp_write_xmit(struct sock *sk, int block)
|
||||||
{
|
{
|
||||||
struct dccp_sock *dp = dccp_sk(sk);
|
struct dccp_sock *dp = dccp_sk(sk);
|
||||||
struct sk_buff *skb;
|
struct sk_buff *skb;
|
||||||
long timeo = 30000; /* If a packet is taking longer than 2 secs
|
long timeo = DCCP_XMIT_TIMEO; /* If a packet is taking longer than
|
||||||
we have other issues */
|
this we have other issues */
|
||||||
|
|
||||||
while ((skb = skb_peek(&sk->sk_write_queue))) {
|
while ((skb = skb_peek(&sk->sk_write_queue))) {
|
||||||
int err = ccid_hc_tx_send_packet(dp->dccps_hc_tx_ccid, sk, skb,
|
int err = ccid_hc_tx_send_packet(dp->dccps_hc_tx_ccid, sk, skb,
|
||||||
|
@ -261,8 +261,10 @@ void dccp_write_xmit(struct sock *sk, int block)
|
||||||
sk_reset_timer(sk, &dp->dccps_xmit_timer,
|
sk_reset_timer(sk, &dp->dccps_xmit_timer,
|
||||||
msecs_to_jiffies(err)+jiffies);
|
msecs_to_jiffies(err)+jiffies);
|
||||||
break;
|
break;
|
||||||
} else
|
} else {
|
||||||
err = dccp_wait_for_ccid(sk, skb, &timeo);
|
err = dccp_wait_for_ccid(sk, skb, &timeo);
|
||||||
|
timeo = DCCP_XMIT_TIMEO;
|
||||||
|
}
|
||||||
if (err) {
|
if (err) {
|
||||||
printk(KERN_CRIT "%s:err at dccp_wait_for_ccid"
|
printk(KERN_CRIT "%s:err at dccp_wait_for_ccid"
|
||||||
" %d\n", __FUNCTION__, err);
|
" %d\n", __FUNCTION__, err);
|
||||||
|
|
Loading…
Reference in New Issue