[PATCH] Change ll_rw_block() calls in Reiser

From: Jan Kara
Date: Mon Jul 11 2005 - 11:01:15 EST


Hello,

attached patch changes ll_rw_block() calls in Reiserfs to make sure
that submitted data really reach the disk (the patch relies on the
previous ll_rw_block() patch).

Honza

--
Jan Kara <jack@xxxxxxx>
SuSE CR Labs
We need to be sure that current data in buffer are sent to disk.
Hence we need to call ll_rw_block() with SWRITE.

Signed-off-by: Jan Kara <jack@xxxxxxx>

diff -rupX /home/jack/.kerndiffexclude linux-2.6.12-1-forgetfix/fs/reiserfs/journal.c linux-2.6.12-2-ll_rw_block-fix/fs/reiserfs/journal.c
--- linux-2.6.12-1-forgetfix/fs/reiserfs/journal.c 2005-06-28 13:26:20.000000000 +0200
+++ linux-2.6.12-2-ll_rw_block-fix/fs/reiserfs/journal.c 2005-07-07 07:20:19.000000000 +0200
@@ -966,7 +966,7 @@ static int flush_commit_list(struct supe
SB_ONDISK_JOURNAL_SIZE(s);
tbh = journal_find_get_block(s, bn) ;
if (buffer_dirty(tbh)) /* redundant, ll_rw_block() checks */
- ll_rw_block(WRITE, 1, &tbh) ;
+ ll_rw_block(SWRITE, 1, &tbh) ;
put_bh(tbh) ;
}
atomic_dec(&journal->j_async_throttle);
@@ -1977,7 +1977,7 @@ abort_replay:
/* flush out the real blocks */
for (i = 0 ; i < get_desc_trans_len(desc) ; i++) {
set_buffer_dirty(real_blocks[i]) ;
- ll_rw_block(WRITE, 1, real_blocks + i) ;
+ ll_rw_block(SWRITE, 1, real_blocks + i) ;
}
for (i = 0 ; i < get_desc_trans_len(desc) ; i++) {
wait_on_buffer(real_blocks[i]) ;