From dedb3e10f996eba25b351bfce3c74ca4f2b99234 Mon Sep 17 00:00:00 2001 From: Badari Pulavarty Date: Sat, 11 Mar 2006 03:27:14 -0800 Subject: [PATCH] --- yaml --- r: 20971 b: refs/heads/master c: cd6ef84e6ac9454080707f2f338360f5d7e556fc h: refs/heads/master i: 20969: ff088085417c27f502bf4aac60b423a1e2913207 20967: fada3c69a41946e5272b22142c46364722f6d0ac v: v3 --- [refs] | 2 +- trunk/fs/ext3/inode.c | 17 ++++++++--------- 2 files changed, 9 insertions(+), 10 deletions(-) diff --git a/[refs] b/[refs] index cfec361a5a67..22c4b366dafb 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 0adb25d2e71ab047423d6fc63d5d184590d0a66f +refs/heads/master: cd6ef84e6ac9454080707f2f338360f5d7e556fc diff --git a/trunk/fs/ext3/inode.c b/trunk/fs/ext3/inode.c index 3fc4238e9703..0384e539b88f 100644 --- a/trunk/fs/ext3/inode.c +++ b/trunk/fs/ext3/inode.c @@ -1624,15 +1624,14 @@ static int ext3_block_truncate_page(handle_t *handle, struct page *page, * For "nobh" option, we can only work if we don't need to * read-in the page - otherwise we create buffers to do the IO. */ - if (!page_has_buffers(page) && test_opt(inode->i_sb, NOBH)) { - if (PageUptodate(page)) { - kaddr = kmap_atomic(page, KM_USER0); - memset(kaddr + offset, 0, length); - flush_dcache_page(page); - kunmap_atomic(kaddr, KM_USER0); - set_page_dirty(page); - goto unlock; - } + if (!page_has_buffers(page) && test_opt(inode->i_sb, NOBH) && + ext3_should_writeback_data(inode) && PageUptodate(page)) { + kaddr = kmap_atomic(page, KM_USER0); + memset(kaddr + offset, 0, length); + flush_dcache_page(page); + kunmap_atomic(kaddr, KM_USER0); + set_page_dirty(page); + goto unlock; } if (!page_has_buffers(page))