linux/drivers/block/drbd
Philipp Reisner 3719094ec2 drbd: Starting with protocol 96 we can allow app-IO while receiving the bitmap
* C_STARTING_SYNC_S, C_STARTING_SYNC_T In these states the bitmap gets
  written to disk. Locking out of app-IO is done by using the
  drbd_queue_bitmap_io() and drbd_bitmap_io() functions these days.
  It is no longer necessary to lock out app-IO based on the connection
  state.
  App-IO that may come in after the BITMAP_IO flag got cleared before the
  state transition to C_SYNC_(SOURCE|TARGET) does not get mirrored, sets
  a bit in the local bitmap, that is already set, therefore changes nothing.

* C_WF_BITMAP_S In this state we send updates (P_OUT_OF_SYNC packets).
  With that we make sure they have the same number of bits when going
  into the C_SYNC_(SOURCE|TARGET) connection state.

* C_UNCONNECTED: The receiver starts, no need to lock out IO.

* C_DISCONNECTING: in drbd_disconnect() we had a wait_event()
  to wait until ap_bio_cnt reaches 0. Removed that.

* C_TIMEOUT, C_BROKEN_PIPE, C_NETWORK_FAILURE
  C_PROTOCOL_ERROR, C_TEAR_DOWN: Same as C_DISCONNECTING

* C_WF_REPORT_PARAMS: IO still possible since that is still
  like C_WF_CONNECTION.

And we do not need to send barriers in C_WF_BITMAP_S connection state.

Allow concurrent accesses to the bitmap when receiving the bitmap.
Everything gets ORed anyways.

A drbd_free_tl_hash() is in after_state_chg_work(). At that point
all the work items of the last connections must have been processed.

Introduced a call to drbd_free_tl_hash() into drbd_free_mdev()
for paranoia reasons.

Signed-off-by: Philipp Reisner <philipp.reisner@linbit.com>
Signed-off-by: Lars Ellenberg <lars.ellenberg@linbit.com>
2011-03-10 11:35:06 +01:00
..
drbd_actlog.c drbd: Implemented side-stepping in drbd_res_begin_io() 2011-03-10 11:34:56 +01:00
drbd_bitmap.c block: remove per-queue plugging 2011-03-10 08:52:07 +01:00
drbd_int.h drbd: Starting with protocol 96 we can allow app-IO while receiving the bitmap 2011-03-10 11:35:06 +01:00
drbd_main.c drbd: Starting with protocol 96 we can allow app-IO while receiving the bitmap 2011-03-10 11:35:06 +01:00
drbd_nl.c drbd: New configuration parameters for dealing with network congestion 2011-03-10 11:34:45 +01:00
drbd_proc.c drbd: restore compatibility with 32bit kernels 2011-03-10 11:19:13 +01:00
drbd_receiver.c drbd: Starting with protocol 96 we can allow app-IO while receiving the bitmap 2011-03-10 11:35:06 +01:00
drbd_req.c drbd: Starting with protocol 96 we can allow app-IO while receiving the bitmap 2011-03-10 11:35:06 +01:00
drbd_req.h drbd: Begin to account BIO processing time before inc_ap_bio() 2011-03-10 11:34:57 +01:00
drbd_strings.c drbd: Implemented two new connection states Ahead/Behind 2011-03-10 11:34:46 +01:00
drbd_vli.h The DRBD driver 2009-10-01 21:17:49 +02:00
drbd_worker.c drbd: Make some functions static 2011-03-10 11:34:54 +01:00
drbd_wrappers.h block: remove per-queue plugging 2011-03-10 08:52:07 +01:00
Kconfig drbd: Kconfig fix 2009-12-29 17:38:28 +01:00
Makefile drbd: remove tracing bits 2009-10-01 21:17:58 +02:00