linux-sg2042/drivers/block/drbd
Lars Ellenberg 70f17b6bd1 drbd: differentiate early and later "postponing" of requests
We use the RQ_POSTPONED flag to mark a request for several reasons.

It may be a conflicting request in a dual-primary setup,
where conflict detection and resolution on the peer decided that
this request needs to be re-submitted, it needs to re-enter
drbd_make_request() to fix the data divergence caused by these
conflicting, partially overlapping, quasi-simultaneous requests.

In this case we need to mark the corresponding area as out-of-sync,
before we call drbd_al_complete_io().

We also use the RQ_POSTPONED flag to just "push back" a request,
before even processing it, if IO is suspended for some reason.
In this case, as this request was neither submitted nor sent yet,
we must not touch the bitmap.

Signed-off-by: Philipp Reisner <philipp.reisner@linbit.com>
Signed-off-by: Lars Ellenberg <lars.ellenberg@linbit.com>
2012-11-09 14:11:37 +01:00
..
Kconfig drbd: Kconfig fix 2009-12-29 17:38:28 +01:00
Makefile drbd: Split off netlink mandatory attribute handling into separate file 2012-11-08 16:57:45 +01:00
drbd_actlog.c drbd: announce FLUSH/FUA capability to upper layers 2012-11-09 14:05:44 +01:00
drbd_bitmap.c drbd: Write all pages of the bitmap after an online resize 2012-11-09 14:05:51 +01:00
drbd_int.h drbd: Call drbd_md_sync() explicitly after a state change on the connection 2012-11-09 14:11:08 +01:00
drbd_interval.c drbd: Iterate over all overlapping intervals in a tree 2011-10-14 16:47:37 +02:00
drbd_interval.h drbd: Iterate over all overlapping intervals in a tree 2011-10-14 16:47:37 +02:00
drbd_main.c drbd: Call drbd_md_sync() explicitly after a state change on the connection 2012-11-09 14:11:08 +01:00
drbd_nl.c drbd: Call drbd_md_sync() explicitly after a state change on the connection 2012-11-09 14:11:08 +01:00
drbd_nla.c drbd: Split off netlink mandatory attribute handling into separate file 2012-11-08 16:57:45 +01:00
drbd_nla.h drbd: Split off netlink mandatory attribute handling into separate file 2012-11-08 16:57:45 +01:00
drbd_proc.c drbd: introduce stop-sector to online verify 2012-11-09 14:05:32 +01:00
drbd_receiver.c drbd: Call drbd_md_sync() explicitly after a state change on the connection 2012-11-09 14:11:08 +01:00
drbd_req.c drbd: differentiate early and later "postponing" of requests 2012-11-09 14:11:37 +01:00
drbd_req.h drbd: disambiguation, s/P_DISCARD_WRITE/P_SUPERSEDED/ 2012-11-09 14:05:49 +01:00
drbd_state.c drbd: Call drbd_md_sync() explicitly after a state change on the connection 2012-11-09 14:11:08 +01:00
drbd_state.h drbd: Improved logging of state changes 2012-11-08 16:45:06 +01:00
drbd_strings.c drbd: Allow volumes to become primary only on one side 2012-11-04 00:16:31 +01:00
drbd_vli.h Fix common misspellings 2011-03-31 11:26:23 -03:00
drbd_worker.c drbd: dequeue single work items in wait_for_work() 2012-11-09 14:08:21 +01:00
drbd_wrappers.h drbd: Split off netlink mandatory attribute handling into separate file 2012-11-08 16:57:45 +01:00