diff options
author | Lars Ellenberg | 2011-02-21 13:20:55 +0100 |
---|---|---|
committer | Philipp Reisner | 2011-10-14 16:47:42 +0200 |
commit | 4738fa16907a933d72bbcae1b8922dc9330fde92 (patch) | |
tree | d0a48980a5269758ba01545b4200c548b30b0909 /drivers/block/drbd/drbd_main.c | |
parent | drbd: in drbd_suspend_al, set AL_SUSPENDED before unlocking the activity log (diff) | |
download | kernel-qcow2-linux-4738fa16907a933d72bbcae1b8922dc9330fde92.tar.gz kernel-qcow2-linux-4738fa16907a933d72bbcae1b8922dc9330fde92.tar.xz kernel-qcow2-linux-4738fa16907a933d72bbcae1b8922dc9330fde92.zip |
drbd: use clear_bit_unlock() where appropriate
Some open-coded clear_bit(); smp_mb__after_clear_bit();
should in fact have been smp_mb__before_clear_bit(); clear_bit();
Instead, use clear_bit_unlock() to annotate the intention,
and have it do the right thing.
Signed-off-by: Philipp Reisner <philipp.reisner@linbit.com>
Signed-off-by: Lars Ellenberg <lars.ellenberg@linbit.com>
Diffstat (limited to 'drivers/block/drbd/drbd_main.c')
-rw-r--r-- | drivers/block/drbd/drbd_main.c | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/drivers/block/drbd/drbd_main.c b/drivers/block/drbd/drbd_main.c index 592f0c949fd0..c77e51a40926 100644 --- a/drivers/block/drbd/drbd_main.c +++ b/drivers/block/drbd/drbd_main.c @@ -2818,8 +2818,7 @@ static int w_bitmap_io(struct drbd_work *w, int unused) put_ldev(mdev); } - clear_bit(BITMAP_IO, &mdev->flags); - smp_mb__after_clear_bit(); + clear_bit_unlock(BITMAP_IO, &mdev->flags); wake_up(&mdev->misc_wait); if (work->done) |