linux-sg2042/drivers/block/drbd
Lars Ellenberg 53ea433145 drbd: fix potential distributed deadlock
We limit ourselves to a configurable maximum number of pages used as
temporary bio pages.

If the configured "max_buffers" is not big enough to match the bandwidth
of the respective deployment, a distributed deadlock could be triggered
by e.g. fast online verify and heavy application IO.

TCP connections would block on congestion, because both receivers
would wait on pages to become available.

Fortunately the respective senders in this case would be able to give
back some pages already. So do that.

Signed-off-by: Philipp Reisner <philipp.reisner@linbit.com>
Signed-off-by: Lars Ellenberg <lars.ellenberg@linbit.com>
2011-05-24 10:02:41 +02: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
drbd_actlog.c Fix common misspellings 2011-03-31 11:26:23 -03:00
drbd_bitmap.c drbd: fix up merge error 2011-03-28 07:42:58 -07:00
drbd_int.h drbd: Fix for application IO with the on-io-error=pass-on policy 2011-05-24 09:59:49 +02:00
drbd_main.c drbd: Fix for application IO with the on-io-error=pass-on policy 2011-05-24 09:59:49 +02:00
drbd_nl.c Merge branch 'for-2.6.39/drivers' of git://git.kernel.dk/linux-2.6-block 2011-03-27 20:02:07 -07:00
drbd_proc.c drbd: allow petabyte storage on 64bit arch 2011-03-10 11:43:24 +01:00
drbd_receiver.c Fix common misspellings 2011-03-31 11:26:23 -03:00
drbd_req.c drbd: drop code present under #ifdef which is relevant to 2.6.28 and below 2011-03-10 11:48:21 +01:00
drbd_req.h drbd: Implemented real timeout checking for request processing time 2011-03-10 11:48:16 +01: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 potential distributed deadlock 2011-05-24 10:02:41 +02:00
drbd_wrappers.h drbd: Get rid of unnecessary macros (2) 2011-03-10 11:36:15 +01:00