From 44530f658a46d02b4c3aabdbf3efbad84e0fdb2b Mon Sep 17 00:00:00 2001 From: Andrea Bittau Date: Tue, 19 Sep 2006 13:04:54 -0700 Subject: [PATCH] --- yaml --- r: 34685 b: refs/heads/master c: 23d06e3b986677ec57007a24891fa9deb09ac973 h: refs/heads/master i: 34683: f18cc0c30a7e0800824ff59645c0f604b7f4c579 v: v3 --- [refs] | 2 +- trunk/net/dccp/ackvec.c | 12 +++++++----- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/[refs] b/[refs] index 6454805ff677..dcf1bf4f8776 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: a1e59abf824969554b90facd44a4ab16e265afa4 +refs/heads/master: 23d06e3b986677ec57007a24891fa9deb09ac973 diff --git a/trunk/net/dccp/ackvec.c b/trunk/net/dccp/ackvec.c index 8c211c58893b..8dab723cc704 100644 --- a/trunk/net/dccp/ackvec.c +++ b/trunk/net/dccp/ackvec.c @@ -353,11 +353,13 @@ static void dccp_ackvec_throw_record(struct dccp_ackvec *av, { struct dccp_ackvec_record *next; - av->dccpav_buf_tail = avr->dccpavr_ack_ptr - 1; - if (av->dccpav_buf_tail == 0) - av->dccpav_buf_tail = DCCP_MAX_ACKVEC_LEN - 1; - - av->dccpav_vec_len -= avr->dccpavr_sent_len; + /* sort out vector length */ + if (av->dccpav_buf_head <= avr->dccpavr_ack_ptr) + av->dccpav_vec_len = avr->dccpavr_ack_ptr - av->dccpav_buf_head; + else + av->dccpav_vec_len = DCCP_MAX_ACKVEC_LEN - 1 + - av->dccpav_buf_head + + avr->dccpavr_ack_ptr; /* free records */ list_for_each_entry_safe_from(avr, next, &av->dccpav_records,