diff options
| author | Linux Build Service Account <lnxbuild@localhost> | 2018-07-10 22:43:57 -0700 |
|---|---|---|
| committer | Gerrit - the friendly Code Review server <code-review@localhost> | 2018-07-10 22:43:57 -0700 |
| commit | 4049db73f1a32cd633827f479cb25fdcd231d7f4 (patch) | |
| tree | ae3c1d3eb12080b447d732ba37540bb9f87f3a48 /fs/ext4/inode.c | |
| parent | 62b5f32c45c31528c5228a44c59d150e8a786421 (diff) | |
| parent | e1496b74425e222e349b829e84415a380a59f178 (diff) | |
Merge "Merge android-4.4.139 (7ba5557) into msm-4.4"
Diffstat (limited to 'fs/ext4/inode.c')
| -rw-r--r-- | fs/ext4/inode.c | 36 |
1 files changed, 18 insertions, 18 deletions
diff --git a/fs/ext4/inode.c b/fs/ext4/inode.c index 760c5f40a555..52c9f46cf76b 100644 --- a/fs/ext4/inode.c +++ b/fs/ext4/inode.c @@ -3864,28 +3864,28 @@ int ext4_punch_hole(struct inode *inode, loff_t offset, loff_t length) EXT4_BLOCK_SIZE_BITS(sb); stop_block = (offset + length) >> EXT4_BLOCK_SIZE_BITS(sb); - /* If there are no blocks to remove, return now */ - if (first_block >= stop_block) - goto out_stop; + /* If there are blocks to remove, do it */ + if (stop_block > first_block) { - down_write(&EXT4_I(inode)->i_data_sem); - ext4_discard_preallocations(inode); + down_write(&EXT4_I(inode)->i_data_sem); + ext4_discard_preallocations(inode); - ret = ext4_es_remove_extent(inode, first_block, - stop_block - first_block); - if (ret) { - up_write(&EXT4_I(inode)->i_data_sem); - goto out_stop; - } + ret = ext4_es_remove_extent(inode, first_block, + stop_block - first_block); + if (ret) { + up_write(&EXT4_I(inode)->i_data_sem); + goto out_stop; + } - if (ext4_test_inode_flag(inode, EXT4_INODE_EXTENTS)) - ret = ext4_ext_remove_space(inode, first_block, - stop_block - 1); - else - ret = ext4_ind_remove_space(handle, inode, first_block, - stop_block); + if (ext4_test_inode_flag(inode, EXT4_INODE_EXTENTS)) + ret = ext4_ext_remove_space(inode, first_block, + stop_block - 1); + else + ret = ext4_ind_remove_space(handle, inode, first_block, + stop_block); - up_write(&EXT4_I(inode)->i_data_sem); + up_write(&EXT4_I(inode)->i_data_sem); + } if (IS_SYNC(inode)) ext4_handle_sync(handle); |
