]> err.no Git - linux-2.6/commitdiff
jbd2: Fix barrier fallback code to re-lock the buffer head
authorTheodore Ts'o <tytso@mit.edu>
Wed, 4 Jun 2008 02:31:11 +0000 (22:31 -0400)
committerTheodore Ts'o <tytso@mit.edu>
Wed, 4 Jun 2008 02:31:11 +0000 (22:31 -0400)
If the device doesn't support write barriers, the write is retried
without ordered mode.  But the buffer head needs to be re-locked or
submit_bh will fail with on BUG(!buffer_locked(bh)).

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
fs/jbd2/commit.c

index 4d99685fdce43b5ebb1c5ccbcab5a89c2443747a..a2ed72f7ceee78f529d9fbebb6a89b02cbd86f15 100644 (file)
@@ -168,6 +168,7 @@ static int journal_submit_commit_record(journal_t *journal,
                spin_unlock(&journal->j_state_lock);
 
                /* And try again, without the barrier */
+               lock_buffer(bh);
                set_buffer_uptodate(bh);
                set_buffer_dirty(bh);
                ret = submit_bh(WRITE, bh);