summaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorLars Ellenberg <lars.ellenberg@linbit.com>2011-05-03 16:49:20 +0200
committerPhilipp Reisner <philipp.reisner@linbit.com>2012-11-08 16:55:49 +0100
commit7dc1d67f7c324e5bf23883b94508112ca7a70f62 (patch)
tree624819e978b5bef8ef1c70ba90a3d4ca04f356e9 /include
parent6139f60dc192e2c5478c1126d1aff7905dc0a98a (diff)
downloadlinux-stable-7dc1d67f7c324e5bf23883b94508112ca7a70f62.tar.gz
linux-stable-7dc1d67f7c324e5bf23883b94508112ca7a70f62.tar.bz2
linux-stable-7dc1d67f7c324e5bf23883b94508112ca7a70f62.zip
drbd: skip spurious wait_event in drbd_al_begin_io
Activity log transaction writes are serialized on a bit lock. If several CPUs race to write an AL transaction, those that did not get the lock the first time may continue as soon as there are no more pending transactions. The do not need to all grab the lock in turn, just to realize that the AL is clean already, and they have nothing to do. This also closes a potential deadlock with drbd_adm_disk_opts. Once it got the AL bit lock, it knows there are no pending transactions, the AL is clean, and it should be safe to wait for all element references to drop to zero. Signed-off-by: Philipp Reisner <philipp.reisner@linbit.com> Signed-off-by: Lars Ellenberg <lars.ellenberg@linbit.com>
Diffstat (limited to 'include')
0 files changed, 0 insertions, 0 deletions