drbd: temporarily suspend io in drbd_adm_disk_opts
authorLars Ellenberg <lars.ellenberg@linbit.com>
Mon, 20 Aug 2012 12:54:48 +0000 (14:54 +0200)
committerPhilipp Reisner <philipp.reisner@linbit.com>
Fri, 9 Nov 2012 13:08:20 +0000 (14:08 +0100)
commit0ee98e2eb0c85f27b6f24a15d59fb54f99a93840
treebc3a3a0f737c6c7fa246047d35e9b1c2337bb418
parent4eb9b3cba00471a01699cceb0f4b1f0cb8111ee2
drbd: temporarily suspend io in drbd_adm_disk_opts

drbd_adm_disk_opts() does
wait_event(mdev->al_wait, lc_try_lock(mdev->act_log));
drbd_al_shrink(mdev);

If the device is very busy, this can take a very long time to succeed.
Fix this by temporarily suspending IO,
then quickly change the settings, and resume.

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