drbd: fix potential imbalance of ap_in_flight
authorLars Ellenberg <lars.ellenberg@linbit.com>
Fri, 21 Jan 2011 16:10:37 +0000 (17:10 +0100)
committerPhilipp Reisner <philipp.reisner@linbit.com>
Thu, 10 Mar 2011 10:48:06 +0000 (11:48 +0100)
commite636db5b956950b8b9bfbeb766a637f84bae1e3b
tree6b6b05d69c2baaf4ea4ec1dee5cd399aed85eb88
parent0ddc5549f88dfc4a4c919693e9a86095e89e080b
drbd: fix potential imbalance of ap_in_flight

When we receive a barrier ack, we walk the ring list of drbd requests
in the transfer log of the respective epoch, do some housekeeping,
and free those objects.

We tried to keep epochs of mirrored and unmirrored drbd requests
separate, and assert that no local-only requests are present in a
barrier_acked epoch.

It turns out that this has quite a number of corner cases and would
add bloated code without functional benefit.

We now revert the (insufficient) commits
 drbd: Fixed an issue with AHEAD -> SYNC_SOURCE transitions
 drbd: Ensure that an epoch contains only requests of one kind
and instead fix the processing of barrier acks to cope with
a mix of local-only and mirrored requests.

Signed-off-by: Philipp Reisner <philipp.reisner@linbit.com>
Signed-off-by: Lars Ellenberg <lars.ellenberg@linbit.com>
drivers/block/drbd/drbd_main.c
drivers/block/drbd/drbd_req.c