*/
        set_bit(BCACHE_DEV_RATE_DW_RUNNING, &dc->disk.flags);
        /* paired with where BCACHE_DEV_RATE_DW_RUNNING is tested */
-       smp_mb();
+       smp_mb__after_atomic();
 
        /*
         * CACHE_SET_IO_DISABLE might be set via sysfs interface,
            test_bit(CACHE_SET_IO_DISABLE, &c->flags)) {
                clear_bit(BCACHE_DEV_RATE_DW_RUNNING, &dc->disk.flags);
                /* paired with where BCACHE_DEV_RATE_DW_RUNNING is tested */
-               smp_mb();
+               smp_mb__after_atomic();
                return;
        }
 
         */
        clear_bit(BCACHE_DEV_RATE_DW_RUNNING, &dc->disk.flags);
        /* paired with where BCACHE_DEV_RATE_DW_RUNNING is tested */
-       smp_mb();
+       smp_mb__after_atomic();
 }
 
 static unsigned int writeback_delay(struct cached_dev *dc,