diff options
Diffstat (limited to 'fs/ext3/inode.c')
| -rw-r--r-- | fs/ext3/inode.c | 16 |
1 files changed, 1 insertions, 15 deletions
diff --git a/fs/ext3/inode.c b/fs/ext3/inode.c index 735f0190ec2a..a786db403efc 100644 --- a/fs/ext3/inode.c +++ b/fs/ext3/inode.c | |||
| @@ -1625,10 +1625,7 @@ static int ext3_writeback_writepage(struct page *page, | |||
| 1625 | goto out_fail; | 1625 | goto out_fail; |
| 1626 | } | 1626 | } |
| 1627 | 1627 | ||
| 1628 | if (test_opt(inode->i_sb, NOBH) && ext3_should_writeback_data(inode)) | 1628 | ret = block_write_full_page(page, ext3_get_block, wbc); |
| 1629 | ret = nobh_writepage(page, ext3_get_block, wbc); | ||
| 1630 | else | ||
| 1631 | ret = block_write_full_page(page, ext3_get_block, wbc); | ||
| 1632 | 1629 | ||
| 1633 | err = ext3_journal_stop(handle); | 1630 | err = ext3_journal_stop(handle); |
| 1634 | if (!ret) | 1631 | if (!ret) |
| @@ -1922,17 +1919,6 @@ static int ext3_block_truncate_page(handle_t *handle, struct page *page, | |||
| 1922 | length = blocksize - (offset & (blocksize - 1)); | 1919 | length = blocksize - (offset & (blocksize - 1)); |
| 1923 | iblock = index << (PAGE_CACHE_SHIFT - inode->i_sb->s_blocksize_bits); | 1920 | iblock = index << (PAGE_CACHE_SHIFT - inode->i_sb->s_blocksize_bits); |
| 1924 | 1921 | ||
| 1925 | /* | ||
| 1926 | * For "nobh" option, we can only work if we don't need to | ||
| 1927 | * read-in the page - otherwise we create buffers to do the IO. | ||
| 1928 | */ | ||
| 1929 | if (!page_has_buffers(page) && test_opt(inode->i_sb, NOBH) && | ||
| 1930 | ext3_should_writeback_data(inode) && PageUptodate(page)) { | ||
| 1931 | zero_user(page, offset, length); | ||
| 1932 | set_page_dirty(page); | ||
| 1933 | goto unlock; | ||
| 1934 | } | ||
| 1935 | |||
| 1936 | if (!page_has_buffers(page)) | 1922 | if (!page_has_buffers(page)) |
| 1937 | create_empty_buffers(page, blocksize, 0); | 1923 | create_empty_buffers(page, blocksize, 0); |
| 1938 | 1924 | ||
