X-Git-Url: https://err.no/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=fs%2Fjbd%2Fcommit.c;h=8e08efcaede26c06d01271b5dbebeafd55a0183d;hb=28ae094c625a9b719c01cf5ec45b8640e6911f53;hp=31853eb65b4cb0f2bf4f365e21a0456e7362d1b1;hpb=dd430ca20c40ecccd6954a7efd13d4398f507728;p=linux-2.6 diff --git a/fs/jbd/commit.c b/fs/jbd/commit.c index 31853eb65b..8e08efcaed 100644 --- a/fs/jbd/commit.c +++ b/fs/jbd/commit.c @@ -131,6 +131,8 @@ static int journal_write_commit_record(journal_t *journal, barrier_done = 1; } ret = sync_dirty_buffer(bh); + if (barrier_done) + clear_buffer_ordered(bh); /* is it possible for another commit to fail at roughly * the same time as this one? If so, we don't want to * trust the barrier flag in the super, but instead want @@ -148,7 +150,6 @@ static int journal_write_commit_record(journal_t *journal, spin_unlock(&journal->j_state_lock); /* And try again, without the barrier */ - clear_buffer_ordered(bh); set_buffer_uptodate(bh); set_buffer_dirty(bh); ret = sync_dirty_buffer(bh);