aboutsummaryrefslogtreecommitdiffstats
path: root/fs/gfs2/glock.c
diff options
context:
space:
mode:
Diffstat (limited to 'fs/gfs2/glock.c')
-rw-r--r--fs/gfs2/glock.c8
1 files changed, 4 insertions, 4 deletions
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