|
@@ -131,6 +131,8 @@ static int journal_write_commit_record(journal_t *journal,
|
|
barrier_done = 1;
|
|
barrier_done = 1;
|
|
}
|
|
}
|
|
ret = sync_dirty_buffer(bh);
|
|
ret = sync_dirty_buffer(bh);
|
|
|
|
+ if (barrier_done)
|
|
|
|
+ clear_buffer_ordered(bh);
|
|
/* is it possible for another commit to fail at roughly
|
|
/* is it possible for another commit to fail at roughly
|
|
* the same time as this one? If so, we don't want to
|
|
* the same time as this one? If so, we don't want to
|
|
* trust the barrier flag in the super, but instead want
|
|
* 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);
|
|
spin_unlock(&journal->j_state_lock);
|
|
|
|
|
|
/* And try again, without the barrier */
|
|
/* And try again, without the barrier */
|
|
- clear_buffer_ordered(bh);
|
|
|
|
set_buffer_uptodate(bh);
|
|
set_buffer_uptodate(bh);
|
|
set_buffer_dirty(bh);
|
|
set_buffer_dirty(bh);
|
|
ret = sync_dirty_buffer(bh);
|
|
ret = sync_dirty_buffer(bh);
|