From: Jan Kara We must be sure that the current data in buffer are sent to disk. Hence we have to call ll_rw_block() with SWRITE. Signed-off-by: Jan Kara Signed-off-by: Andrew Morton --- fs/jbd/checkpoint.c | 2 +- fs/jbd/commit.c | 4 ++-- fs/jbd/journal.c | 2 +- fs/jbd/revoke.c | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) diff -puN fs/jbd/checkpoint.c~change-ll_rw_block-calls-in-jbd fs/jbd/checkpoint.c --- 25/fs/jbd/checkpoint.c~change-ll_rw_block-calls-in-jbd Mon Jul 11 16:31:52 2005 +++ 25-akpm/fs/jbd/checkpoint.c Mon Jul 11 16:31:52 2005 @@ -204,7 +204,7 @@ __flush_batch(journal_t *journal, struct int i; spin_unlock(&journal->j_list_lock); - ll_rw_block(WRITE, *batch_count, bhs); + ll_rw_block(SWRITE, *batch_count, bhs); spin_lock(&journal->j_list_lock); for (i = 0; i < *batch_count; i++) { struct buffer_head *bh = bhs[i]; diff -puN fs/jbd/commit.c~change-ll_rw_block-calls-in-jbd fs/jbd/commit.c --- 25/fs/jbd/commit.c~change-ll_rw_block-calls-in-jbd Mon Jul 11 16:31:52 2005 +++ 25-akpm/fs/jbd/commit.c Mon Jul 11 16:31:52 2005 @@ -358,7 +358,7 @@ write_out_data: jbd_debug(2, "submit %d writes\n", bufs); spin_unlock(&journal->j_list_lock); - ll_rw_block(WRITE, bufs, wbuf); + ll_rw_block(SWRITE, bufs, wbuf); journal_brelse_array(wbuf, bufs); bufs = 0; goto write_out_data; @@ -381,7 +381,7 @@ write_out_data: if (bufs) { spin_unlock(&journal->j_list_lock); - ll_rw_block(WRITE, bufs, wbuf); + ll_rw_block(SWRITE, bufs, wbuf); journal_brelse_array(wbuf, bufs); spin_lock(&journal->j_list_lock); } diff -puN fs/jbd/journal.c~change-ll_rw_block-calls-in-jbd fs/jbd/journal.c --- 25/fs/jbd/journal.c~change-ll_rw_block-calls-in-jbd Mon Jul 11 16:31:52 2005 +++ 25-akpm/fs/jbd/journal.c Mon Jul 11 16:31:52 2005 @@ -969,7 +969,7 @@ void journal_update_superblock(journal_t if (wait) sync_dirty_buffer(bh); else - ll_rw_block(WRITE, 1, &bh); + ll_rw_block(SWRITE, 1, &bh); out: /* If we have just flushed the log (by marking s_start==0), then diff -puN fs/jbd/revoke.c~change-ll_rw_block-calls-in-jbd fs/jbd/revoke.c --- 25/fs/jbd/revoke.c~change-ll_rw_block-calls-in-jbd Mon Jul 11 16:31:52 2005 +++ 25-akpm/fs/jbd/revoke.c Mon Jul 11 16:31:52 2005 @@ -613,7 +613,7 @@ static void flush_descriptor(journal_t * set_buffer_jwrite(bh); BUFFER_TRACE(bh, "write"); set_buffer_dirty(bh); - ll_rw_block(WRITE, 1, &bh); + ll_rw_block(SWRITE, 1, &bh); } #endif _