linux_dsm_epyc7002/drivers/block/drbd
Andreas Gruenbacher 7be8da0798 drbd: Improve how conflicting writes are handled
The previous algorithm for dealing with overlapping concurrent writes
was generating unnecessary warnings for scenarios which could be
legitimate, and did not always handle partially overlapping requests
correctly.  Improve it algorithm as follows:

* While local or remote write requests are in progress, conflicting new
  local write requests will be delayed (commit 82172f7).

* When a conflict between a local and remote write request is detected,
  the node with the discard flag decides how to resolve the conflict: It
  will ask its peer to discard conflicting requests which are fully
  contained in the local request and retry requests which overlap only
  partially.  This involves a protocol change.

Signed-off-by: Philipp Reisner <philipp.reisner@linbit.com>
Signed-off-by: Lars Ellenberg <lars.ellenberg@linbit.com>
2011-10-14 16:47:51 +02:00
..
drbd_actlog.c drbd: new on-disk activity log transaction format 2011-10-14 16:47:46 +02:00
drbd_bitmap.c drbd: silence some log messages on bitmap IO 2011-10-14 16:47:47 +02:00
drbd_int.h drbd: Improve how conflicting writes are handled 2011-10-14 16:47:51 +02: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: Improve how conflicting writes are handled 2011-10-14 16:47:51 +02:00
drbd_nl.c drbd: Replace atomic_add_return with atomic_inc_return 2011-10-14 16:47:50 +02:00
drbd_proc.c drbd: moved net_conf from mdev to tconn 2011-08-29 11:27:03 +02:00
drbd_receiver.c drbd: Improve how conflicting writes are handled 2011-10-14 16:47:51 +02:00
drbd_req.c drbd: Improve how conflicting writes are handled 2011-10-14 16:47:51 +02:00
drbd_req.h drbd: Improve how conflicting writes are handled 2011-10-14 16:47:51 +02:00
drbd_state.c drbd: Implemented connection wide state changes 2011-10-14 16:47:32 +02:00
drbd_state.h drbd: implemented receiving of P_CONN_ST_CHG_REQ 2011-10-14 16:45:05 +02:00
drbd_strings.c drbd: Rename enum drbd_state_ret_codes to enum drbd_state_rv 2011-03-10 11:36:18 +01:00
drbd_vli.h Fix common misspellings 2011-03-31 11:26:23 -03:00
drbd_worker.c drbd: fix a wrong likely(), updated comments 2011-10-14 16:47:47 +02:00
drbd_wrappers.h drbd: Rename drbd_endio_{pri,sec} -> drbd_{,peer_}request_endio 2011-10-14 16:47:36 +02:00
Kconfig drbd: Kconfig fix 2009-12-29 17:38:28 +01:00
Makefile drbd: Moved the state functions into its own source file 2011-09-28 10:26:43 +02:00