summaryrefslogtreecommitdiffstats
path: root/fs/gfs2/glops.c
diff options
context:
space:
mode:
authorTakashi Iwai <tiwai@suse.de>2009-05-04 16:05:23 +0200
committerTakashi Iwai <tiwai@suse.de>2009-05-04 16:05:23 +0200
commit8560b9321f9050968f393ce1ec67e47c1a0bd5cf (patch)
tree658ebb20e4fd5dee840f27103b59da367ff473b1 /fs/gfs2/glops.c
parent72e31981a4e91f84c5b5e8994f5d25b1cf22b6cf (diff)
parent6574612fbb34c63117581e68f2231ddce027e41e (diff)
downloadlinux-8560b9321f9050968f393ce1ec67e47c1a0bd5cf.tar.bz2
Merge branch 'fix/asoc' into topic/asoc
Diffstat (limited to 'fs/gfs2/glops.c')
-rw-r--r--fs/gfs2/glops.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/fs/gfs2/glops.c b/fs/gfs2/glops.c
index bf23a62aa925..70f87f43afa2 100644
--- a/fs/gfs2/glops.c
+++ b/fs/gfs2/glops.c
@@ -156,6 +156,12 @@ static void inode_go_sync(struct gfs2_glock *gl)
error = filemap_fdatawait(metamapping);
mapping_set_error(metamapping, error);
gfs2_ail_empty_gl(gl);
+ /*
+ * Writeback of the data mapping may cause the dirty flag to be set
+ * so we have to clear it again here.
+ */
+ smp_mb__before_clear_bit();
+ clear_bit(GLF_DIRTY, &gl->gl_flags);
}
/**