aboutsummaryrefslogtreecommitdiffstats
path: root/fs
diff options
context:
space:
mode:
Diffstat (limited to 'fs')
-rw-r--r--fs/btrfs/btrfs_inode.h2
-rw-r--r--fs/btrfs/extent_io.c2
-rw-r--r--fs/btrfs/inode.c6
-rw-r--r--fs/btrfs/ioctl.c2
-rw-r--r--fs/buffer.c2
-rw-r--r--fs/ext4/resize.c2
-rw-r--r--fs/gfs2/glock.c8
-rw-r--r--fs/gfs2/glops.c2
-rw-r--r--fs/gfs2/lock_dlm.c4
-rw-r--r--fs/gfs2/recovery.c2
-rw-r--r--fs/gfs2/sys.c4
-rw-r--r--fs/jbd2/commit.c6
-rw-r--r--fs/nfs/dir.c12
-rw-r--r--fs/nfs/inode.c2
-rw-r--r--fs/nfs/nfs4filelayoutdev.c4
-rw-r--r--fs/nfs/nfs4state.c4
-rw-r--r--fs/nfs/pagelist.c6
-rw-r--r--fs/nfs/pnfs.c2
-rw-r--r--fs/nfs/pnfs.h2
-rw-r--r--fs/nfs/write.c4
-rw-r--r--fs/ubifs/lpt_commit.c4
-rw-r--r--fs/ubifs/tnc_commit.c4
22 files changed, 43 insertions, 43 deletions
diff --git a/fs/btrfs/btrfs_inode.h b/fs/btrfs/btrfs_inode.h
index c9a24444ec9a..2256e9cceec5 100644
--- a/fs/btrfs/btrfs_inode.h
+++ b/fs/btrfs/btrfs_inode.h
@@ -279,7 +279,7 @@ static inline void btrfs_inode_block_unlocked_dio(struct inode *inode)
279 279
280static inline void btrfs_inode_resume_unlocked_dio(struct inode *inode) 280static inline void btrfs_inode_resume_unlocked_dio(struct inode *inode)
281{ 281{
282 smp_mb__before_clear_bit(); 282 smp_mb__before_atomic();
283 clear_bit(BTRFS_INODE_READDIO_NEED_LOCK, 283 clear_bit(BTRFS_INODE_READDIO_NEED_LOCK,
284 &BTRFS_I(inode)->runtime_flags); 284 &BTRFS_I(inode)->runtime_flags);
285} 285}
diff --git a/fs/btrfs/extent_io.c b/fs/btrfs/extent_io.c
index 3955e475ceec..f29a54e454d4 100644
--- a/fs/btrfs/extent_io.c
+++ b/fs/btrfs/extent_io.c
@@ -3458,7 +3458,7 @@ static int lock_extent_buffer_for_io(struct extent_buffer *eb,
3458static void end_extent_buffer_writeback(struct extent_buffer *eb) 3458static void end_extent_buffer_writeback(struct extent_buffer *eb)
3459{ 3459{
3460 clear_bit(EXTENT_BUFFER_WRITEBACK, &eb->bflags); 3460 clear_bit(EXTENT_BUFFER_WRITEBACK, &eb->bflags);
3461 smp_mb__after_clear_bit(); 3461 smp_mb__after_atomic();
3462 wake_up_bit(&eb->bflags, EXTENT_BUFFER_WRITEBACK); 3462 wake_up_bit(&eb->bflags, EXTENT_BUFFER_WRITEBACK);
3463} 3463}
3464 3464
diff --git a/fs/btrfs/inode.c b/fs/btrfs/inode.c
index 5f805bc944fa..5a3b8371772e 100644
--- a/fs/btrfs/inode.c
+++ b/fs/btrfs/inode.c
@@ -7126,7 +7126,7 @@ static void btrfs_end_dio_bio(struct bio *bio, int err)
7126 * before atomic variable goto zero, we must make sure 7126 * before atomic variable goto zero, we must make sure
7127 * dip->errors is perceived to be set. 7127 * dip->errors is perceived to be set.
7128 */ 7128 */
7129 smp_mb__before_atomic_dec(); 7129 smp_mb__before_atomic();
7130 } 7130 }
7131 7131
7132 /* if there are more bios still pending for this dio, just exit */ 7132 /* if there are more bios still pending for this dio, just exit */
@@ -7306,7 +7306,7 @@ out_err:
7306 * before atomic variable goto zero, we must 7306 * before atomic variable goto zero, we must
7307 * make sure dip->errors is perceived to be set. 7307 * make sure dip->errors is perceived to be set.
7308 */ 7308 */
7309 smp_mb__before_atomic_dec(); 7309 smp_mb__before_atomic();
7310 if (atomic_dec_and_test(&dip->pending_bios)) 7310 if (atomic_dec_and_test(&dip->pending_bios))
7311 bio_io_error(dip->orig_bio); 7311 bio_io_error(dip->orig_bio);
7312 7312
@@ -7449,7 +7449,7 @@ static ssize_t btrfs_direct_IO(int rw, struct kiocb *iocb,
7449 return 0; 7449 return 0;
7450 7450
7451 atomic_inc(&inode->i_dio_count); 7451 atomic_inc(&inode->i_dio_count);
7452 smp_mb__after_atomic_inc(); 7452 smp_mb__after_atomic();
7453 7453
7454 /* 7454 /*
7455 * The generic stuff only does filemap_write_and_wait_range, which 7455 * The generic stuff only does filemap_write_and_wait_range, which
diff --git a/fs/btrfs/ioctl.c b/fs/btrfs/ioctl.c
index e79ff6b90cb7..f45040a4bb76 100644
--- a/fs/btrfs/ioctl.c
+++ b/fs/btrfs/ioctl.c
@@ -642,7 +642,7 @@ static int create_snapshot(struct btrfs_root *root, struct inode *dir,
642 return -EINVAL; 642 return -EINVAL;
643 643
644 atomic_inc(&root->will_be_snapshoted); 644 atomic_inc(&root->will_be_snapshoted);
645 smp_mb__after_atomic_inc(); 645 smp_mb__after_atomic();
646 btrfs_wait_nocow_write(root); 646 btrfs_wait_nocow_write(root);
647 647
648 ret = btrfs_start_delalloc_inodes(root, 0); 648 ret = btrfs_start_delalloc_inodes(root, 0);
diff --git a/fs/buffer.c b/fs/buffer.c
index 9ddb9fc7d923..6a8110c03a47 100644
--- a/fs/buffer.c
+++ b/fs/buffer.c
@@ -77,7 +77,7 @@ EXPORT_SYMBOL(__lock_buffer);
77void unlock_buffer(struct buffer_head *bh) 77void unlock_buffer(struct buffer_head *bh)
78{ 78{
79 clear_bit_unlock(BH_Lock, &bh->b_state); 79 clear_bit_unlock(BH_Lock, &bh->b_state);
80 smp_mb__after_clear_bit(); 80 smp_mb__after_atomic();
81 wake_up_bit(&bh->b_state, BH_Lock); 81 wake_up_bit(&bh->b_state, BH_Lock);
82} 82}
83EXPORT_SYMBOL(unlock_buffer); 83EXPORT_SYMBOL(unlock_buffer);
diff --git a/fs/ext4/resize.c b/fs/ext4/resize.c
index f3b84cd9de56..08b3c116915b 100644
--- a/fs/ext4/resize.c
+++ b/fs/ext4/resize.c
@@ -42,7 +42,7 @@ int ext4_resize_begin(struct super_block *sb)
42void ext4_resize_end(struct super_block *sb) 42void ext4_resize_end(struct super_block *sb)
43{ 43{
44 clear_bit_unlock(EXT4_RESIZING, &EXT4_SB(sb)->s_resize_flags); 44 clear_bit_unlock(EXT4_RESIZING, &EXT4_SB(sb)->s_resize_flags);
45 smp_mb__after_clear_bit(); 45 smp_mb__after_atomic();
46} 46}
47 47
48static ext4_group_t ext4_meta_bg_first_group(struct super_block *sb, 48static ext4_group_t ext4_meta_bg_first_group(struct super_block *sb,
diff --git a/fs/gfs2/glock.c b/fs/gfs2/glock.c
index aec7f73832f0..c355f7320e44 100644
--- a/fs/gfs2/glock.c
+++ b/fs/gfs2/glock.c
@@ -277,7 +277,7 @@ static inline int may_grant(const struct gfs2_glock *gl, const struct gfs2_holde
277static void gfs2_holder_wake(struct gfs2_holder *gh) 277static void gfs2_holder_wake(struct gfs2_holder *gh)
278{ 278{
279 clear_bit(HIF_WAIT, &gh->gh_iflags); 279 clear_bit(HIF_WAIT, &gh->gh_iflags);
280 smp_mb__after_clear_bit(); 280 smp_mb__after_atomic();
281 wake_up_bit(&gh->gh_iflags, HIF_WAIT); 281 wake_up_bit(&gh->gh_iflags, HIF_WAIT);
282} 282}
283 283
@@ -411,7 +411,7 @@ static void gfs2_demote_wake(struct gfs2_glock *gl)
411{ 411{
412 gl->gl_demote_state = LM_ST_EXCLUSIVE; 412 gl->gl_demote_state = LM_ST_EXCLUSIVE;
413 clear_bit(GLF_DEMOTE, &gl->gl_flags); 413 clear_bit(GLF_DEMOTE, &gl->gl_flags);
414 smp_mb__after_clear_bit(); 414 smp_mb__after_atomic();
415 wake_up_bit(&gl->gl_flags, GLF_DEMOTE); 415 wake_up_bit(&gl->gl_flags, GLF_DEMOTE);
416} 416}
417 417
@@ -620,7 +620,7 @@ out:
620 620
621out_sched: 621out_sched:
622 clear_bit(GLF_LOCK, &gl->gl_flags); 622 clear_bit(GLF_LOCK, &gl->gl_flags);
623 smp_mb__after_clear_bit(); 623 smp_mb__after_atomic();
624 gl->gl_lockref.count++; 624 gl->gl_lockref.count++;
625 if (queue_delayed_work(glock_workqueue, &gl->gl_work, 0) == 0) 625 if (queue_delayed_work(glock_workqueue, &gl->gl_work, 0) == 0)
626 gl->gl_lockref.count--; 626 gl->gl_lockref.count--;
@@ -628,7 +628,7 @@ out_sched:
628 628
629out_unlock: 629out_unlock:
630 clear_bit(GLF_LOCK, &gl->gl_flags); 630 clear_bit(GLF_LOCK, &gl->gl_flags);
631 smp_mb__after_clear_bit(); 631 smp_mb__after_atomic();
632 return; 632 return;
633} 633}
634 634
diff --git a/fs/gfs2/glops.c b/fs/gfs2/glops.c
index 54b66809e818..74d9a3dbf16f 100644
--- a/fs/gfs2/glops.c
+++ b/fs/gfs2/glops.c
@@ -221,7 +221,7 @@ static void inode_go_sync(struct gfs2_glock *gl)
221 * Writeback of the data mapping may cause the dirty flag to be set 221 * Writeback of the data mapping may cause the dirty flag to be set
222 * so we have to clear it again here. 222 * so we have to clear it again here.
223 */ 223 */
224 smp_mb__before_clear_bit(); 224 smp_mb__before_atomic();
225 clear_bit(GLF_DIRTY, &gl->gl_flags); 225 clear_bit(GLF_DIRTY, &gl->gl_flags);
226} 226}
227 227
diff --git a/fs/gfs2/lock_dlm.c b/fs/gfs2/lock_dlm.c
index c1eb555dc588..91f274de1246 100644
--- a/fs/gfs2/lock_dlm.c
+++ b/fs/gfs2/lock_dlm.c
@@ -1134,7 +1134,7 @@ static void gdlm_recover_done(void *arg, struct dlm_slot *slots, int num_slots,
1134 queue_delayed_work(gfs2_control_wq, &sdp->sd_control_work, 0); 1134 queue_delayed_work(gfs2_control_wq, &sdp->sd_control_work, 0);
1135 1135
1136 clear_bit(DFL_DLM_RECOVERY, &ls->ls_recover_flags); 1136 clear_bit(DFL_DLM_RECOVERY, &ls->ls_recover_flags);
1137 smp_mb__after_clear_bit(); 1137 smp_mb__after_atomic();
1138 wake_up_bit(&ls->ls_recover_flags, DFL_DLM_RECOVERY); 1138 wake_up_bit(&ls->ls_recover_flags, DFL_DLM_RECOVERY);
1139 spin_unlock(&ls->ls_recover_spin); 1139 spin_unlock(&ls->ls_recover_spin);
1140} 1140}
@@ -1271,7 +1271,7 @@ static int gdlm_mount(struct gfs2_sbd *sdp, const char *table)
1271 1271
1272 ls->ls_first = !!test_bit(DFL_FIRST_MOUNT, &ls->ls_recover_flags); 1272 ls->ls_first = !!test_bit(DFL_FIRST_MOUNT, &ls->ls_recover_flags);
1273 clear_bit(SDF_NOJOURNALID, &sdp->sd_flags); 1273 clear_bit(SDF_NOJOURNALID, &sdp->sd_flags);
1274 smp_mb__after_clear_bit(); 1274 smp_mb__after_atomic();
1275 wake_up_bit(&sdp->sd_flags, SDF_NOJOURNALID); 1275 wake_up_bit(&sdp->sd_flags, SDF_NOJOURNALID);
1276 return 0; 1276 return 0;
1277 1277
diff --git a/fs/gfs2/recovery.c b/fs/gfs2/recovery.c
index 7ad4094d68c0..fe7a56fb6084 100644
--- a/fs/gfs2/recovery.c
+++ b/fs/gfs2/recovery.c
@@ -587,7 +587,7 @@ fail:
587 gfs2_recovery_done(sdp, jd->jd_jid, LM_RD_GAVEUP); 587 gfs2_recovery_done(sdp, jd->jd_jid, LM_RD_GAVEUP);
588done: 588done:
589 clear_bit(JDF_RECOVERY, &jd->jd_flags); 589 clear_bit(JDF_RECOVERY, &jd->jd_flags);
590 smp_mb__after_clear_bit(); 590 smp_mb__after_atomic();
591 wake_up_bit(&jd->jd_flags, JDF_RECOVERY); 591 wake_up_bit(&jd->jd_flags, JDF_RECOVERY);
592} 592}
593 593
diff --git a/fs/gfs2/sys.c b/fs/gfs2/sys.c
index de25d5577e5d..529d9a9eb897 100644
--- a/fs/gfs2/sys.c
+++ b/fs/gfs2/sys.c
@@ -333,7 +333,7 @@ static ssize_t block_store(struct gfs2_sbd *sdp, const char *buf, size_t len)
333 set_bit(DFL_BLOCK_LOCKS, &ls->ls_recover_flags); 333 set_bit(DFL_BLOCK_LOCKS, &ls->ls_recover_flags);
334 else if (val == 0) { 334 else if (val == 0) {
335 clear_bit(DFL_BLOCK_LOCKS, &ls->ls_recover_flags); 335 clear_bit(DFL_BLOCK_LOCKS, &ls->ls_recover_flags);
336 smp_mb__after_clear_bit(); 336 smp_mb__after_atomic();
337 gfs2_glock_thaw(sdp); 337 gfs2_glock_thaw(sdp);
338 } else { 338 } else {
339 ret = -EINVAL; 339 ret = -EINVAL;
@@ -482,7 +482,7 @@ static ssize_t jid_store(struct gfs2_sbd *sdp, const char *buf, size_t len)
482 rv = jid = -EINVAL; 482 rv = jid = -EINVAL;
483 sdp->sd_lockstruct.ls_jid = jid; 483 sdp->sd_lockstruct.ls_jid = jid;
484 clear_bit(SDF_NOJOURNALID, &sdp->sd_flags); 484 clear_bit(SDF_NOJOURNALID, &sdp->sd_flags);
485 smp_mb__after_clear_bit(); 485 smp_mb__after_atomic();
486 wake_up_bit(&sdp->sd_flags, SDF_NOJOURNALID); 486 wake_up_bit(&sdp->sd_flags, SDF_NOJOURNALID);
487out: 487out:
488 spin_unlock(&sdp->sd_jindex_spin); 488 spin_unlock(&sdp->sd_jindex_spin);
diff --git a/fs/jbd2/commit.c b/fs/jbd2/commit.c
index 5f26139a165a..6fac74349856 100644
--- a/fs/jbd2/commit.c
+++ b/fs/jbd2/commit.c
@@ -43,7 +43,7 @@ static void journal_end_buffer_io_sync(struct buffer_head *bh, int uptodate)
43 clear_buffer_uptodate(bh); 43 clear_buffer_uptodate(bh);
44 if (orig_bh) { 44 if (orig_bh) {
45 clear_bit_unlock(BH_Shadow, &orig_bh->b_state); 45 clear_bit_unlock(BH_Shadow, &orig_bh->b_state);
46 smp_mb__after_clear_bit(); 46 smp_mb__after_atomic();
47 wake_up_bit(&orig_bh->b_state, BH_Shadow); 47 wake_up_bit(&orig_bh->b_state, BH_Shadow);
48 } 48 }
49 unlock_buffer(bh); 49 unlock_buffer(bh);
@@ -239,7 +239,7 @@ static int journal_submit_data_buffers(journal_t *journal,
239 spin_lock(&journal->j_list_lock); 239 spin_lock(&journal->j_list_lock);
240 J_ASSERT(jinode->i_transaction == commit_transaction); 240 J_ASSERT(jinode->i_transaction == commit_transaction);
241 clear_bit(__JI_COMMIT_RUNNING, &jinode->i_flags); 241 clear_bit(__JI_COMMIT_RUNNING, &jinode->i_flags);
242 smp_mb__after_clear_bit(); 242 smp_mb__after_atomic();
243 wake_up_bit(&jinode->i_flags, __JI_COMMIT_RUNNING); 243 wake_up_bit(&jinode->i_flags, __JI_COMMIT_RUNNING);
244 } 244 }
245 spin_unlock(&journal->j_list_lock); 245 spin_unlock(&journal->j_list_lock);
@@ -277,7 +277,7 @@ static int journal_finish_inode_data_buffers(journal_t *journal,
277 } 277 }
278 spin_lock(&journal->j_list_lock); 278 spin_lock(&journal->j_list_lock);
279 clear_bit(__JI_COMMIT_RUNNING, &jinode->i_flags); 279 clear_bit(__JI_COMMIT_RUNNING, &jinode->i_flags);
280 smp_mb__after_clear_bit(); 280 smp_mb__after_atomic();
281 wake_up_bit(&jinode->i_flags, __JI_COMMIT_RUNNING); 281 wake_up_bit(&jinode->i_flags, __JI_COMMIT_RUNNING);
282 } 282 }
283 283
diff --git a/fs/nfs/dir.c b/fs/nfs/dir.c
index d9f3d067cd15..4a3d4ef76127 100644
--- a/fs/nfs/dir.c
+++ b/fs/nfs/dir.c
@@ -2032,9 +2032,9 @@ static void nfs_access_free_entry(struct nfs_access_entry *entry)
2032{ 2032{
2033 put_rpccred(entry->cred); 2033 put_rpccred(entry->cred);
2034 kfree(entry); 2034 kfree(entry);
2035 smp_mb__before_atomic_dec(); 2035 smp_mb__before_atomic();
2036 atomic_long_dec(&nfs_access_nr_entries); 2036 atomic_long_dec(&nfs_access_nr_entries);
2037 smp_mb__after_atomic_dec(); 2037 smp_mb__after_atomic();
2038} 2038}
2039 2039
2040static void nfs_access_free_list(struct list_head *head) 2040static void nfs_access_free_list(struct list_head *head)
@@ -2082,9 +2082,9 @@ nfs_access_cache_scan(struct shrinker *shrink, struct shrink_control *sc)
2082 else { 2082 else {
2083remove_lru_entry: 2083remove_lru_entry:
2084 list_del_init(&nfsi->access_cache_inode_lru); 2084 list_del_init(&nfsi->access_cache_inode_lru);
2085 smp_mb__before_clear_bit(); 2085 smp_mb__before_atomic();
2086 clear_bit(NFS_INO_ACL_LRU_SET, &nfsi->flags); 2086 clear_bit(NFS_INO_ACL_LRU_SET, &nfsi->flags);
2087 smp_mb__after_clear_bit(); 2087 smp_mb__after_atomic();
2088 } 2088 }
2089 spin_unlock(&inode->i_lock); 2089 spin_unlock(&inode->i_lock);
2090 } 2090 }
@@ -2232,9 +2232,9 @@ void nfs_access_add_cache(struct inode *inode, struct nfs_access_entry *set)
2232 nfs_access_add_rbtree(inode, cache); 2232 nfs_access_add_rbtree(inode, cache);
2233 2233
2234 /* Update accounting */ 2234 /* Update accounting */
2235 smp_mb__before_atomic_inc(); 2235 smp_mb__before_atomic();
2236 atomic_long_inc(&nfs_access_nr_entries); 2236 atomic_long_inc(&nfs_access_nr_entries);
2237 smp_mb__after_atomic_inc(); 2237 smp_mb__after_atomic();
2238 2238
2239 /* Add inode to global LRU list */ 2239 /* Add inode to global LRU list */
2240 if (!test_bit(NFS_INO_ACL_LRU_SET, &NFS_I(inode)->flags)) { 2240 if (!test_bit(NFS_INO_ACL_LRU_SET, &NFS_I(inode)->flags)) {
diff --git a/fs/nfs/inode.c b/fs/nfs/inode.c
index 0c438973f3c8..e6f7398d2b3c 100644
--- a/fs/nfs/inode.c
+++ b/fs/nfs/inode.c
@@ -1085,7 +1085,7 @@ int nfs_revalidate_mapping(struct inode *inode, struct address_space *mapping)
1085 trace_nfs_invalidate_mapping_exit(inode, ret); 1085 trace_nfs_invalidate_mapping_exit(inode, ret);
1086 1086
1087 clear_bit_unlock(NFS_INO_INVALIDATING, bitlock); 1087 clear_bit_unlock(NFS_INO_INVALIDATING, bitlock);
1088 smp_mb__after_clear_bit(); 1088 smp_mb__after_atomic();
1089 wake_up_bit(bitlock, NFS_INO_INVALIDATING); 1089 wake_up_bit(bitlock, NFS_INO_INVALIDATING);
1090out: 1090out:
1091 return ret; 1091 return ret;
diff --git a/fs/nfs/nfs4filelayoutdev.c b/fs/nfs/nfs4filelayoutdev.c
index efac602edb37..b9c61efe9660 100644
--- a/fs/nfs/nfs4filelayoutdev.c
+++ b/fs/nfs/nfs4filelayoutdev.c
@@ -789,9 +789,9 @@ static void nfs4_wait_ds_connect(struct nfs4_pnfs_ds *ds)
789 789
790static void nfs4_clear_ds_conn_bit(struct nfs4_pnfs_ds *ds) 790static void nfs4_clear_ds_conn_bit(struct nfs4_pnfs_ds *ds)
791{ 791{
792 smp_mb__before_clear_bit(); 792 smp_mb__before_atomic();
793 clear_bit(NFS4DS_CONNECTING, &ds->ds_state); 793 clear_bit(NFS4DS_CONNECTING, &ds->ds_state);
794 smp_mb__after_clear_bit(); 794 smp_mb__after_atomic();
795 wake_up_bit(&ds->ds_state, NFS4DS_CONNECTING); 795 wake_up_bit(&ds->ds_state, NFS4DS_CONNECTING);
796} 796}
797 797
diff --git a/fs/nfs/nfs4state.c b/fs/nfs/nfs4state.c
index 2349518eef2c..c0583b9bef71 100644
--- a/fs/nfs/nfs4state.c
+++ b/fs/nfs/nfs4state.c
@@ -1140,9 +1140,9 @@ static int nfs4_run_state_manager(void *);
1140 1140
1141static void nfs4_clear_state_manager_bit(struct nfs_client *clp) 1141static void nfs4_clear_state_manager_bit(struct nfs_client *clp)
1142{ 1142{
1143 smp_mb__before_clear_bit(); 1143 smp_mb__before_atomic();
1144 clear_bit(NFS4CLNT_MANAGER_RUNNING, &clp->cl_state); 1144 clear_bit(NFS4CLNT_MANAGER_RUNNING, &clp->cl_state);
1145 smp_mb__after_clear_bit(); 1145 smp_mb__after_atomic();
1146 wake_up_bit(&clp->cl_state, NFS4CLNT_MANAGER_RUNNING); 1146 wake_up_bit(&clp->cl_state, NFS4CLNT_MANAGER_RUNNING);
1147 rpc_wake_up(&clp->cl_rpcwaitq); 1147 rpc_wake_up(&clp->cl_rpcwaitq);
1148} 1148}
diff --git a/fs/nfs/pagelist.c b/fs/nfs/pagelist.c
index 2ffebf2081ce..03ed984ab4d8 100644
--- a/fs/nfs/pagelist.c
+++ b/fs/nfs/pagelist.c
@@ -95,7 +95,7 @@ nfs_iocounter_dec(struct nfs_io_counter *c)
95{ 95{
96 if (atomic_dec_and_test(&c->io_count)) { 96 if (atomic_dec_and_test(&c->io_count)) {
97 clear_bit(NFS_IO_INPROGRESS, &c->flags); 97 clear_bit(NFS_IO_INPROGRESS, &c->flags);
98 smp_mb__after_clear_bit(); 98 smp_mb__after_atomic();
99 wake_up_bit(&c->flags, NFS_IO_INPROGRESS); 99 wake_up_bit(&c->flags, NFS_IO_INPROGRESS);
100 } 100 }
101} 101}
@@ -193,9 +193,9 @@ void nfs_unlock_request(struct nfs_page *req)
193 printk(KERN_ERR "NFS: Invalid unlock attempted\n"); 193 printk(KERN_ERR "NFS: Invalid unlock attempted\n");
194 BUG(); 194 BUG();
195 } 195 }
196 smp_mb__before_clear_bit(); 196 smp_mb__before_atomic();
197 clear_bit(PG_BUSY, &req->wb_flags); 197 clear_bit(PG_BUSY, &req->wb_flags);
198 smp_mb__after_clear_bit(); 198 smp_mb__after_atomic();
199 wake_up_bit(&req->wb_flags, PG_BUSY); 199 wake_up_bit(&req->wb_flags, PG_BUSY);
200} 200}
201 201
diff --git a/fs/nfs/pnfs.c b/fs/nfs/pnfs.c
index cb53d450ae32..fd9536e494bc 100644
--- a/fs/nfs/pnfs.c
+++ b/fs/nfs/pnfs.c
@@ -1810,7 +1810,7 @@ static void pnfs_clear_layoutcommitting(struct inode *inode)
1810 unsigned long *bitlock = &NFS_I(inode)->flags; 1810 unsigned long *bitlock = &NFS_I(inode)->flags;
1811 1811
1812 clear_bit_unlock(NFS_INO_LAYOUTCOMMITTING, bitlock); 1812 clear_bit_unlock(NFS_INO_LAYOUTCOMMITTING, bitlock);
1813 smp_mb__after_clear_bit(); 1813 smp_mb__after_atomic();
1814 wake_up_bit(bitlock, NFS_INO_LAYOUTCOMMITTING); 1814 wake_up_bit(bitlock, NFS_INO_LAYOUTCOMMITTING);
1815} 1815}
1816 1816
diff --git a/fs/nfs/pnfs.h b/fs/nfs/pnfs.h
index 023793909778..c3058a076596 100644
--- a/fs/nfs/pnfs.h
+++ b/fs/nfs/pnfs.h
@@ -275,7 +275,7 @@ pnfs_get_lseg(struct pnfs_layout_segment *lseg)
275{ 275{
276 if (lseg) { 276 if (lseg) {
277 atomic_inc(&lseg->pls_refcount); 277 atomic_inc(&lseg->pls_refcount);
278 smp_mb__after_atomic_inc(); 278 smp_mb__after_atomic();
279 } 279 }
280 return lseg; 280 return lseg;
281} 281}
diff --git a/fs/nfs/write.c b/fs/nfs/write.c
index 9a3b6a4cd6b9..ffb9459f180b 100644
--- a/fs/nfs/write.c
+++ b/fs/nfs/write.c
@@ -405,7 +405,7 @@ int nfs_writepages(struct address_space *mapping, struct writeback_control *wbc)
405 nfs_pageio_complete(&pgio); 405 nfs_pageio_complete(&pgio);
406 406
407 clear_bit_unlock(NFS_INO_FLUSHING, bitlock); 407 clear_bit_unlock(NFS_INO_FLUSHING, bitlock);
408 smp_mb__after_clear_bit(); 408 smp_mb__after_atomic();
409 wake_up_bit(bitlock, NFS_INO_FLUSHING); 409 wake_up_bit(bitlock, NFS_INO_FLUSHING);
410 410
411 if (err < 0) 411 if (err < 0)
@@ -1458,7 +1458,7 @@ static int nfs_commit_set_lock(struct nfs_inode *nfsi, int may_wait)
1458static void nfs_commit_clear_lock(struct nfs_inode *nfsi) 1458static void nfs_commit_clear_lock(struct nfs_inode *nfsi)
1459{ 1459{
1460 clear_bit(NFS_INO_COMMIT, &nfsi->flags); 1460 clear_bit(NFS_INO_COMMIT, &nfsi->flags);
1461 smp_mb__after_clear_bit(); 1461 smp_mb__after_atomic();
1462 wake_up_bit(&nfsi->flags, NFS_INO_COMMIT); 1462 wake_up_bit(&nfsi->flags, NFS_INO_COMMIT);
1463} 1463}
1464 1464
diff --git a/fs/ubifs/lpt_commit.c b/fs/ubifs/lpt_commit.c
index 4b826abb1528..45d4e96a6bac 100644
--- a/fs/ubifs/lpt_commit.c
+++ b/fs/ubifs/lpt_commit.c
@@ -460,9 +460,9 @@ static int write_cnodes(struct ubifs_info *c)
460 * important. 460 * important.
461 */ 461 */
462 clear_bit(DIRTY_CNODE, &cnode->flags); 462 clear_bit(DIRTY_CNODE, &cnode->flags);
463 smp_mb__before_clear_bit(); 463 smp_mb__before_atomic();
464 clear_bit(COW_CNODE, &cnode->flags); 464 clear_bit(COW_CNODE, &cnode->flags);
465 smp_mb__after_clear_bit(); 465 smp_mb__after_atomic();
466 offs += len; 466 offs += len;
467 dbg_chk_lpt_sz(c, 1, len); 467 dbg_chk_lpt_sz(c, 1, len);
468 cnode = cnode->cnext; 468 cnode = cnode->cnext;
diff --git a/fs/ubifs/tnc_commit.c b/fs/ubifs/tnc_commit.c
index 52a6559275c4..3600994f8411 100644
--- a/fs/ubifs/tnc_commit.c
+++ b/fs/ubifs/tnc_commit.c
@@ -895,9 +895,9 @@ static int write_index(struct ubifs_info *c)
895 * the reason for the second barrier. 895 * the reason for the second barrier.
896 */ 896 */
897 clear_bit(DIRTY_ZNODE, &znode->flags); 897 clear_bit(DIRTY_ZNODE, &znode->flags);
898 smp_mb__before_clear_bit(); 898 smp_mb__before_atomic();
899 clear_bit(COW_ZNODE, &znode->flags); 899 clear_bit(COW_ZNODE, &znode->flags);
900 smp_mb__after_clear_bit(); 900 smp_mb__after_atomic();
901 901
902 /* 902 /*
903 * We have marked the znode as clean but have not updated the 903 * We have marked the znode as clean but have not updated the