drbd: fix potential deadlock during bitmap (re-)allocation
authorLars Ellenberg <lars.ellenberg@linbit.com>
Wed, 26 Sep 2012 12:18:51 +0000 (14:18 +0200)
committerPhilipp Reisner <philipp.reisner@linbit.com>
Fri, 9 Nov 2012 13:11:39 +0000 (14:11 +0100)
commitbc891c9ae3fb2848922e0f0da22fd7de0d58dc1b
tree58353dfe6fb1257533959a56346b5d5a0a15ad4f
parenta506c13a4d1ec5e1f2f9bc0123dacb5d123004d3
drbd: fix potential deadlock during bitmap (re-)allocation

The former comment arguing that GFP_KERNEL was good enough was wrong: it
did not take resize into account at all, and assumed the only path
leading here was the normal attach on a still secondary device, so no
deadlock would be possible.

Both resize on a Primary, or attach on a diskless Primary,
could potentially deadlock.

drbd_bm_resize() is called while IO to the respective device is
suspended, so we must use GFP_NOIO to avoid potential deadlock.

Signed-off-by: Philipp Reisner <philipp.reisner@linbit.com>
Signed-off-by: Lars Ellenberg <lars.ellenberg@linbit.com>
drivers/block/drbd/drbd_bitmap.c