drbd: fix drbd epoch write count for ahead/behind mode
authorLars Ellenberg <lars.ellenberg@linbit.com>
Wed, 27 Mar 2013 13:08:45 +0000 (14:08 +0100)
committerJens Axboe <axboe@kernel.dk>
Thu, 28 Mar 2013 16:10:25 +0000 (10:10 -0600)
commit607f25e56ee0a31e451f6bd8a7109fa1f5dcbe29
tree712acc8e7f7c7eac67ce8f9ed36535914f0ebc9b
parentef57f9e6bb9278720c8a5278728f252ab85d7ac6
drbd: fix drbd epoch write count for ahead/behind mode

The sanity check when receiving P_BARRIER_ACK does expect all write
requests with a given req->epoch to have been either all replicated,
or all not replicated.

Because req->epoch was assigned before calling maybe_pull_ahead(),
this expectation was not met, leading to an off-by-one in the sanity
check, and further to a "Protocol Error".

Fix: move the call to maybe_pull_ahead() a few lines up,
and assign req->epoch only after that.

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