]> git.karo-electronics.de Git - linux-beck.git/commit
drbd: serialize sending of resync uuid with pending w_send_oos
authorLars Ellenberg <lars.ellenberg@linbit.com>
Fri, 17 Dec 2010 20:14:23 +0000 (21:14 +0100)
committerPhilipp Reisner <philipp.reisner@linbit.com>
Thu, 10 Mar 2011 10:43:35 +0000 (11:43 +0100)
commit5a22db8968a69bec835d1ed9a96ab3381719e0c0
tree6dd29c3cec008a2f846f54a02cdb139c4ce94be3
parentf735e3635430c6d1c319664d82b34376e3f9aa17
drbd: serialize sending of resync uuid with pending w_send_oos

To improve the latency of IO requests during bitmap exchange,
we recently allowed writes while waiting for the bitmap, sending "set
out-of-sync" information packets for any newly dirtied bits.

We have to make sure that the new resync-uuid does not overtake
these "set oos" packets. Once the resync-uuid is received, the
sync target starts the resync process, and expects the bitmap to
only be cleared, not re-set.

If we use this protocol extension, we queue the generation and sending
of the resync-uuid on the worker, which naturally serializes with all
previously queued packets.

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