diff options
Diffstat (limited to 'fs/jbd2/commit.c')
| -rw-r--r-- | fs/jbd2/commit.c | 9 | 
1 files changed, 5 insertions, 4 deletions
| diff --git a/fs/jbd2/commit.c b/fs/jbd2/commit.c index 31f8ca046639..8c514367ba5a 100644 --- a/fs/jbd2/commit.c +++ b/fs/jbd2/commit.c @@ -155,9 +155,10 @@ static int journal_submit_commit_record(journal_t *journal,  	if (journal->j_flags & JBD2_BARRIER &&  	    !jbd2_has_feature_async_commit(journal)) -		ret = submit_bh(REQ_OP_WRITE, WRITE_SYNC | WRITE_FLUSH_FUA, bh); +		ret = submit_bh(REQ_OP_WRITE, +			REQ_SYNC | REQ_PREFLUSH | REQ_FUA, bh);  	else -		ret = submit_bh(REQ_OP_WRITE, WRITE_SYNC, bh); +		ret = submit_bh(REQ_OP_WRITE, REQ_SYNC, bh);  	*cbh = bh;  	return ret; @@ -402,7 +403,7 @@ void jbd2_journal_commit_transaction(journal_t *journal)  		jbd2_journal_update_sb_log_tail(journal,  						journal->j_tail_sequence,  						journal->j_tail, -						WRITE_SYNC); +						REQ_SYNC);  		mutex_unlock(&journal->j_checkpoint_mutex);  	} else {  		jbd_debug(3, "superblock not updated\n"); @@ -717,7 +718,7 @@ start_journal_io:  				clear_buffer_dirty(bh);  				set_buffer_uptodate(bh);  				bh->b_end_io = journal_end_buffer_io_sync; -				submit_bh(REQ_OP_WRITE, WRITE_SYNC, bh); +				submit_bh(REQ_OP_WRITE, REQ_SYNC, bh);  			}  			cond_resched();  			stats.run.rs_blocks_logged += bufs; |