aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/block/drbd/drbd_int.h
diff options
context:
space:
mode:
authorLars Ellenberg <lars.ellenberg@linbit.com>2010-12-17 15:14:23 -0500
committerPhilipp Reisner <philipp.reisner@linbit.com>2011-03-10 05:43:35 -0500
commit5a22db8968a69bec835d1ed9a96ab3381719e0c0 (patch)
tree6dd29c3cec008a2f846f54a02cdb139c4ce94be3 /drivers/block/drbd/drbd_int.h
parentf735e3635430c6d1c319664d82b34376e3f9aa17 (diff)
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>
Diffstat (limited to 'drivers/block/drbd/drbd_int.h')
-rw-r--r--drivers/block/drbd/drbd_int.h2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/block/drbd/drbd_int.h b/drivers/block/drbd/drbd_int.h
index 5a2d0ec72b34..ec06e744be42 100644
--- a/drivers/block/drbd/drbd_int.h
+++ b/drivers/block/drbd/drbd_int.h
@@ -1204,7 +1204,7 @@ extern int drbd_send(struct drbd_conf *mdev, struct socket *sock,
1204extern int drbd_send_protocol(struct drbd_conf *mdev); 1204extern int drbd_send_protocol(struct drbd_conf *mdev);
1205extern int drbd_send_uuids(struct drbd_conf *mdev); 1205extern int drbd_send_uuids(struct drbd_conf *mdev);
1206extern int drbd_send_uuids_skip_initial_sync(struct drbd_conf *mdev); 1206extern int drbd_send_uuids_skip_initial_sync(struct drbd_conf *mdev);
1207extern int drbd_send_sync_uuid(struct drbd_conf *mdev, u64 val); 1207extern int drbd_gen_and_send_sync_uuid(struct drbd_conf *mdev);
1208extern int drbd_send_sizes(struct drbd_conf *mdev, int trigger_reply, enum dds_flags flags); 1208extern int drbd_send_sizes(struct drbd_conf *mdev, int trigger_reply, enum dds_flags flags);
1209extern int _drbd_send_state(struct drbd_conf *mdev); 1209extern int _drbd_send_state(struct drbd_conf *mdev);
1210extern int drbd_send_state(struct drbd_conf *mdev); 1210extern int drbd_send_state(struct drbd_conf *mdev);