diff options
| author | Theodore Ts'o <tytso@mit.edu> | 2015-01-22 12:26:16 -0500 |
|---|---|---|
| committer | Mister Oyster <oysterized@gmail.com> | 2017-05-27 19:39:52 +0200 |
| commit | 088cb00b882f95b49b814b0ab7413f35b14dd33f (patch) | |
| tree | 39aea3d6f7729e1d841ab10e0cfc0fe120135a0c | |
| parent | 6c3082c4a6db6b2637829feac310509d89bf98b8 (diff) | |
| download | android_kernel_m2note-088cb00b882f95b49b814b0ab7413f35b14dd33f.tar.gz | |
ext4: use old truncate_pagecache() interface for ext4 3.18 backport
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
| -rw-r--r-- | fs/ext4/extents.c | 5 | ||||
| -rw-r--r-- | fs/ext4/inode.c | 3 |
2 files changed, 5 insertions, 3 deletions
diff --git a/fs/ext4/extents.c b/fs/ext4/extents.c index 0b16fb4c0..9011cf516 100644 --- a/fs/ext4/extents.c +++ b/fs/ext4/extents.c @@ -5391,6 +5391,7 @@ int ext4_collapse_range(struct inode *inode, loff_t offset, loff_t len) handle_t *handle; unsigned int credits; loff_t new_size, ioffset; + loff_t oldsize = i_size_read(inode); int ret; /* Collapse range works only on fs block size aligned offsets. */ @@ -5432,7 +5433,7 @@ int ext4_collapse_range(struct inode *inode, loff_t offset, loff_t len) * There is no need to overlap collapse range with EOF, in which case * it is effectively a truncate operation */ - if (offset + len >= i_size_read(inode)) { + if (offset + len >= oldsize) { ret = -EINVAL; goto out_mutex; } @@ -5443,7 +5444,7 @@ int ext4_collapse_range(struct inode *inode, loff_t offset, loff_t len) goto out_mutex; } - truncate_pagecache(inode, ioffset); + truncate_pagecache(inode, oldsize, ioffset); /* Wait for existing dio to complete */ ext4_inode_block_unlocked_dio(inode); diff --git a/fs/ext4/inode.c b/fs/ext4/inode.c index 869fccf38..b0e8ba546 100644 --- a/fs/ext4/inode.c +++ b/fs/ext4/inode.c @@ -4487,6 +4487,7 @@ int ext4_setattr(struct dentry *dentry, struct iattr *attr) if (attr->ia_valid & ATTR_SIZE && attr->ia_size != inode->i_size) { handle_t *handle; + loff_t oldsize = i_size_read(inode); if (!(ext4_test_inode_flag(inode, EXT4_INODE_EXTENTS))) { struct ext4_sb_info *sbi = EXT4_SB(inode->i_sb); @@ -4557,7 +4558,7 @@ int ext4_setattr(struct dentry *dentry, struct iattr *attr) * Truncate pagecache after we've waited for commit * in data=journal mode to make pages freeable. */ - truncate_pagecache(inode, inode->i_size); + truncate_pagecache(inode, oldsize, inode->i_size); } /* * We want to call ext4_truncate() even if attr->ia_size == |
