aboutsummaryrefslogtreecommitdiffstats
path: root/fs/ext3/inode.c
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2009-04-03 11:10:33 -0700
committerLinus Torvalds <torvalds@linux-foundation.org>2009-04-03 11:10:33 -0700
commit20bec8ab1458c24bed0d5492ee15d87807fc415a (patch)
treee5f910947dbe314b96a591e41e2cfb2d3322caad /fs/ext3/inode.c
parentMerge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/lrg/voltage-2.6 (diff)
parentext3: Add replace-on-rename hueristics for data=writeback mode (diff)
downloadlinux-dev-20bec8ab1458c24bed0d5492ee15d87807fc415a.tar.xz
linux-dev-20bec8ab1458c24bed0d5492ee15d87807fc415a.zip
Merge branch 'ext3-latency-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4
* 'ext3-latency-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4: ext3: Add replace-on-rename hueristics for data=writeback mode ext3: Add replace-on-truncate hueristics for data=writeback mode ext3: Use WRITE_SYNC for commits which are caused by fsync() block_write_full_page: Use synchronous writes for WBC_SYNC_ALL writebacks
Diffstat (limited to 'fs/ext3/inode.c')
-rw-r--r--fs/ext3/inode.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/fs/ext3/inode.c b/fs/ext3/inode.c
index d3ef6566b019..466a332e0bd1 100644
--- a/fs/ext3/inode.c
+++ b/fs/ext3/inode.c
@@ -2363,6 +2363,9 @@ void ext3_truncate(struct inode *inode)
if (!ext3_can_truncate(inode))
return;
+ if (inode->i_size == 0 && ext3_should_writeback_data(inode))
+ ei->i_state |= EXT3_STATE_FLUSH_ON_CLOSE;
+
/*
* We have to lock the EOF page here, because lock_page() nests
* outside journal_start().