summaryrefslogtreecommitdiffstats
path: root/fs/ext4/extents.c
diff options
context:
space:
mode:
authorJan Kara <jack@suse.com>2015-12-07 15:09:35 -0500
committerTheodore Ts'o <tytso@mit.edu>2015-12-07 15:09:35 -0500
commit53085fac02d12fcd29a9cb074ec480ff0f77ae5c (patch)
tree52b3a182a397ee36470e44b5deb4633f67c1478b /fs/ext4/extents.c
parent2dcba4781fa3842e28f47ab23056d58cd283fca6 (diff)
ext4: provide ext4_issue_zeroout()
Create new function ext4_issue_zeroout() to zeroout contiguous (both logically and physically) part of inode data. We will need to issue zeroout when extent structure is not readily available and this function will allow us to do it without making up fake extent structures. Signed-off-by: Jan Kara <jack@suse.com> Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Diffstat (limited to 'fs/ext4/extents.c')
-rw-r--r--fs/ext4/extents.c12
1 files changed, 2 insertions, 10 deletions
diff --git a/fs/ext4/extents.c b/fs/ext4/extents.c
index 3578b25fccfd..867e98b6bc6c 100644
--- a/fs/ext4/extents.c
+++ b/fs/ext4/extents.c
@@ -3119,19 +3119,11 @@ static int ext4_ext_zeroout(struct inode *inode, struct ext4_extent *ex)
3119{ 3119{
3120 ext4_fsblk_t ee_pblock; 3120 ext4_fsblk_t ee_pblock;
3121 unsigned int ee_len; 3121 unsigned int ee_len;
3122 int ret;
3123 3122
3124 ee_len = ext4_ext_get_actual_len(ex); 3123 ee_len = ext4_ext_get_actual_len(ex);
3125 ee_pblock = ext4_ext_pblock(ex); 3124 ee_pblock = ext4_ext_pblock(ex);
3126 3125 return ext4_issue_zeroout(inode, le32_to_cpu(ex->ee_block), ee_pblock,
3127 if (ext4_encrypted_inode(inode)) 3126 ee_len);
3128 return ext4_encrypted_zeroout(inode, ex);
3129
3130 ret = sb_issue_zeroout(inode->i_sb, ee_pblock, ee_len, GFP_NOFS);
3131 if (ret > 0)
3132 ret = 0;
3133
3134 return ret;
3135} 3127}
3136 3128
3137/* 3129/*