aboutsummaryrefslogtreecommitdiffstats
path: root/fs/ext4/extents.c
diff options
context:
space:
mode:
authorDmitry Monakhov <dmonakhov@openvz.org>2014-08-23 17:48:28 -0400
committerTheodore Ts'o <tytso@mit.edu>2014-08-23 17:48:28 -0400
commit4631dbf677ded0419fee35ca7408285dabfaef1a (patch)
tree80976bb3bff717dbe00fb3d916deab9e237d1c37 /fs/ext4/extents.c
parentext4: fix BUG_ON in mb_free_blocks() (diff)
downloadlinux-dev-4631dbf677ded0419fee35ca7408285dabfaef1a.tar.xz
linux-dev-4631dbf677ded0419fee35ca7408285dabfaef1a.zip
ext4: move i_size,i_disksize update routines to helper function
Cc: stable@vger.kernel.org # needed for bug fix patches Signed-off-by: Dmitry Monakhov <dmonakhov@openvz.org> Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Diffstat (limited to 'fs/ext4/extents.c')
-rw-r--r--fs/ext4/extents.c17
1 files changed, 4 insertions, 13 deletions
diff --git a/fs/ext4/extents.c b/fs/ext4/extents.c
index 76c2df382b7d..f0e6934291dd 100644
--- a/fs/ext4/extents.c
+++ b/fs/ext4/extents.c
@@ -4839,12 +4839,8 @@ static long ext4_zero_range(struct file *file, loff_t offset,
}
inode->i_mtime = inode->i_ctime = ext4_current_time(inode);
-
if (new_size) {
- if (new_size > i_size_read(inode))
- i_size_write(inode, new_size);
- if (new_size > EXT4_I(inode)->i_disksize)
- ext4_update_i_disksize(inode, new_size);
+ ext4_update_inode_size(inode, new_size);
} else {
/*
* Mark that we allocate beyond EOF so the subsequent truncate
@@ -4886,7 +4882,6 @@ long ext4_fallocate(struct file *file, int mode, loff_t offset, loff_t len)
int ret = 0;
int flags;
ext4_lblk_t lblk;
- struct timespec tv;
unsigned int blkbits = inode->i_blkbits;
/* Return error if mode is not supported */
@@ -4945,15 +4940,11 @@ long ext4_fallocate(struct file *file, int mode, loff_t offset, loff_t len)
if (IS_ERR(handle))
goto out;
- tv = inode->i_ctime = ext4_current_time(inode);
+ inode->i_ctime = ext4_current_time(inode);
if (new_size) {
- if (new_size > i_size_read(inode)) {
- i_size_write(inode, new_size);
- inode->i_mtime = tv;
- }
- if (new_size > EXT4_I(inode)->i_disksize)
- ext4_update_i_disksize(inode, new_size);
+ if (ext4_update_inode_size(inode, new_size) & 0x1)
+ inode->i_mtime = inode->i_ctime;
} else {
/*
* Mark that we allocate beyond EOF so the subsequent truncate