dm: add missing memory barrier to dm_suspend
authorMilan Broz <mbroz@redhat.com>
Fri, 8 Feb 2008 02:09:49 +0000 (02:09 +0000)
committerAlasdair G Kergon <agk@redhat.com>
Fri, 8 Feb 2008 02:09:49 +0000 (02:09 +0000)
Add memory barrier to fix atomic_read of pending value.

Signed-off-by: Milan Broz <mbroz@redhat.com>
Signed-off-by: Alasdair G Kergon <agk@redhat.com>
drivers/md/dm.c

index f2d24eb3208c97e79bdf33b9d8c396f855f55566..466a6bf0742f98c51337735aeae732d7cac122c5 100644 (file)
@@ -1410,6 +1410,7 @@ int dm_suspend(struct mapped_device *md, unsigned suspend_flags)
        while (1) {
                set_current_state(TASK_INTERRUPTIBLE);
 
+               smp_mb();
                if (!atomic_read(&md->pending) || signal_pending(current))
                        break;