]> git.michaelhowe.org Git - packages/o/openafs.git/commitdiff
rx: Don't count unknown packets as missing
authorSimon Wilkinson <sxw@your-file-system.com>
Mon, 11 Oct 2010 18:08:00 +0000 (14:08 -0400)
committerJeffrey Altman <jaltman@openafs.org>
Thu, 14 Oct 2010 03:03:55 +0000 (20:03 -0700)
Just because a packet is in the transmit queue, don't assume that
the other side has instantly seen it! Currently, if we receive an
ACK packet which doesn't include the entire transmit queue, then we
will end backing off, even if we haven't sent the packets.

Restrict this behaviour to packets which are implicitly acked (or
otherwise) by the sender.

Change-Id: I2d63cd27d6d748007f87ff303f3fd64549a6208d
Reviewed-on: http://gerrit.openafs.org/2959
Reviewed-by: Jeffrey Altman <jaltman@openafs.org>
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Jeffrey Altman <jaltman@openafs.org>
src/rx/rx.c

index 082c2b89c3cf3a5dc6d5ff1e1dbff8dc753f4678..8a4bd33d48927ae6f2b69a8e5fd6878b16128d3e 100644 (file)
@@ -4171,8 +4171,10 @@ rxi_ReceiveAckPacket(struct rx_call *call, struct rx_packet *np,
                missing = 1;
            }
        } else {
-           tp->flags &= ~RX_PKTFLAG_ACKED;
-           missing = 1;
+           if (tp->flags & RX_PKTFLAG_ACKED) {
+               tp->flags &= ~RX_PKTFLAG_ACKED;
+               missing = 1;
+           }
        }
 
         /*