|
@@ -1158,7 +1158,7 @@ retry:
|
|
|
ret = PTR_ERR(handle);
|
|
|
goto out;
|
|
|
}
|
|
|
- if (test_opt(inode->i_sb, NOBH))
|
|
|
+ if (test_opt(inode->i_sb, NOBH) && ext3_should_writeback_data(inode))
|
|
|
ret = nobh_prepare_write(page, from, to, ext3_get_block);
|
|
|
else
|
|
|
ret = block_prepare_write(page, from, to, ext3_get_block);
|
|
@@ -1244,7 +1244,7 @@ static int ext3_writeback_commit_write(struct file *file, struct page *page,
|
|
|
if (new_i_size > EXT3_I(inode)->i_disksize)
|
|
|
EXT3_I(inode)->i_disksize = new_i_size;
|
|
|
|
|
|
- if (test_opt(inode->i_sb, NOBH))
|
|
|
+ if (test_opt(inode->i_sb, NOBH) && ext3_should_writeback_data(inode))
|
|
|
ret = nobh_commit_write(file, page, from, to);
|
|
|
else
|
|
|
ret = generic_commit_write(file, page, from, to);
|
|
@@ -1494,7 +1494,7 @@ static int ext3_writeback_writepage(struct page *page,
|
|
|
goto out_fail;
|
|
|
}
|
|
|
|
|
|
- if (test_opt(inode->i_sb, NOBH))
|
|
|
+ if (test_opt(inode->i_sb, NOBH) && ext3_should_writeback_data(inode))
|
|
|
ret = nobh_writepage(page, ext3_get_block, wbc);
|
|
|
else
|
|
|
ret = block_write_full_page(page, ext3_get_block, wbc);
|