Skip to content

Commit ed5d285

Browse files
LiBaokun96tytso
authored andcommitted
ext4: make ext4_es_remove_extent() return void
Now ext4_es_remove_extent() never fails, so make it return void. Signed-off-by: Baokun Li <libaokun1@huawei.com> Reviewed-by: Jan Kara <jack@suse.cz> Link: https://lore.kernel.org/r/20230424033846.4732-10-libaokun1@huawei.com Signed-off-by: Theodore Ts'o <tytso@mit.edu>
1 parent 2a69c45 commit ed5d285

5 files changed

Lines changed: 18 additions & 52 deletions

File tree

fs/ext4/extents.c

Lines changed: 6 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -4403,15 +4403,8 @@ int ext4_ext_truncate(handle_t *handle, struct inode *inode)
44034403

44044404
last_block = (inode->i_size + sb->s_blocksize - 1)
44054405
>> EXT4_BLOCK_SIZE_BITS(sb);
4406-
retry:
4407-
err = ext4_es_remove_extent(inode, last_block,
4408-
EXT_MAX_BLOCKS - last_block);
4409-
if (err == -ENOMEM) {
4410-
memalloc_retry_wait(GFP_ATOMIC);
4411-
goto retry;
4412-
}
4413-
if (err)
4414-
return err;
4406+
ext4_es_remove_extent(inode, last_block, EXT_MAX_BLOCKS - last_block);
4407+
44154408
retry_remove_space:
44164409
err = ext4_ext_remove_space(inode, last_block, EXT_MAX_BLOCKS - 1);
44174410
if (err == -ENOMEM) {
@@ -5363,13 +5356,7 @@ static int ext4_collapse_range(struct file *file, loff_t offset, loff_t len)
53635356

53645357
down_write(&EXT4_I(inode)->i_data_sem);
53655358
ext4_discard_preallocations(inode, 0);
5366-
5367-
ret = ext4_es_remove_extent(inode, punch_start,
5368-
EXT_MAX_BLOCKS - punch_start);
5369-
if (ret) {
5370-
up_write(&EXT4_I(inode)->i_data_sem);
5371-
goto out_stop;
5372-
}
5359+
ext4_es_remove_extent(inode, punch_start, EXT_MAX_BLOCKS - punch_start);
53735360

53745361
ret = ext4_ext_remove_space(inode, punch_start, punch_stop - 1);
53755362
if (ret) {
@@ -5547,12 +5534,7 @@ static int ext4_insert_range(struct file *file, loff_t offset, loff_t len)
55475534
ext4_free_ext_path(path);
55485535
}
55495536

5550-
ret = ext4_es_remove_extent(inode, offset_lblk,
5551-
EXT_MAX_BLOCKS - offset_lblk);
5552-
if (ret) {
5553-
up_write(&EXT4_I(inode)->i_data_sem);
5554-
goto out_stop;
5555-
}
5537+
ext4_es_remove_extent(inode, offset_lblk, EXT_MAX_BLOCKS - offset_lblk);
55565538

55575539
/*
55585540
* if offset_lblk lies in a hole which is at start of file, use
@@ -5610,12 +5592,8 @@ ext4_swap_extents(handle_t *handle, struct inode *inode1,
56105592
BUG_ON(!inode_is_locked(inode1));
56115593
BUG_ON(!inode_is_locked(inode2));
56125594

5613-
*erp = ext4_es_remove_extent(inode1, lblk1, count);
5614-
if (unlikely(*erp))
5615-
return 0;
5616-
*erp = ext4_es_remove_extent(inode2, lblk2, count);
5617-
if (unlikely(*erp))
5618-
return 0;
5595+
ext4_es_remove_extent(inode1, lblk1, count);
5596+
ext4_es_remove_extent(inode2, lblk2, count);
56195597

56205598
while (count) {
56215599
struct ext4_extent *ex1, *ex2, tmp_ex;

fs/ext4/extents_status.c

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1460,25 +1460,25 @@ static int __es_remove_extent(struct inode *inode, ext4_lblk_t lblk,
14601460
* @len - number of blocks to remove
14611461
*
14621462
* Reduces block/cluster reservation count and for bigalloc cancels pending
1463-
* reservations as needed. Returns 0 on success, error code on failure.
1463+
* reservations as needed.
14641464
*/
1465-
int ext4_es_remove_extent(struct inode *inode, ext4_lblk_t lblk,
1466-
ext4_lblk_t len)
1465+
void ext4_es_remove_extent(struct inode *inode, ext4_lblk_t lblk,
1466+
ext4_lblk_t len)
14671467
{
14681468
ext4_lblk_t end;
14691469
int err = 0;
14701470
int reserved = 0;
14711471
struct extent_status *es = NULL;
14721472

14731473
if (EXT4_SB(inode->i_sb)->s_mount_state & EXT4_FC_REPLAY)
1474-
return 0;
1474+
return;
14751475

14761476
trace_ext4_es_remove_extent(inode, lblk, len);
14771477
es_debug("remove [%u/%u) from extent status tree of inode %lu\n",
14781478
lblk, len, inode->i_ino);
14791479

14801480
if (!len)
1481-
return err;
1481+
return;
14821482

14831483
end = lblk + len - 1;
14841484
BUG_ON(end < lblk);
@@ -1501,7 +1501,7 @@ int ext4_es_remove_extent(struct inode *inode, ext4_lblk_t lblk,
15011501

15021502
ext4_es_print_tree(inode);
15031503
ext4_da_release_space(inode, reserved);
1504-
return 0;
1504+
return;
15051505
}
15061506

15071507
static int __es_shrink(struct ext4_sb_info *sbi, int nr_to_scan,

fs/ext4/extents_status.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -133,8 +133,8 @@ extern int ext4_es_insert_extent(struct inode *inode, ext4_lblk_t lblk,
133133
extern void ext4_es_cache_extent(struct inode *inode, ext4_lblk_t lblk,
134134
ext4_lblk_t len, ext4_fsblk_t pblk,
135135
unsigned int status);
136-
extern int ext4_es_remove_extent(struct inode *inode, ext4_lblk_t lblk,
137-
ext4_lblk_t len);
136+
extern void ext4_es_remove_extent(struct inode *inode, ext4_lblk_t lblk,
137+
ext4_lblk_t len);
138138
extern void ext4_es_find_extent_range(struct inode *inode,
139139
int (*match_fn)(struct extent_status *es),
140140
ext4_lblk_t lblk, ext4_lblk_t end,

fs/ext4/inline.c

Lines changed: 2 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1939,16 +1939,8 @@ int ext4_inline_data_truncate(struct inode *inode, int *has_inline)
19391939
* the extent status cache must be cleared to avoid leaving
19401940
* behind stale delayed allocated extent entries
19411941
*/
1942-
if (!ext4_test_inode_state(inode, EXT4_STATE_MAY_INLINE_DATA)) {
1943-
retry:
1944-
err = ext4_es_remove_extent(inode, 0, EXT_MAX_BLOCKS);
1945-
if (err == -ENOMEM) {
1946-
memalloc_retry_wait(GFP_ATOMIC);
1947-
goto retry;
1948-
}
1949-
if (err)
1950-
goto out_error;
1951-
}
1942+
if (!ext4_test_inode_state(inode, EXT4_STATE_MAY_INLINE_DATA))
1943+
ext4_es_remove_extent(inode, 0, EXT_MAX_BLOCKS);
19521944

19531945
/* Clear the content in the xattr space. */
19541946
if (inline_size > EXT4_MIN_INLINE_DATA_SIZE) {

fs/ext4/inode.c

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3986,12 +3986,8 @@ int ext4_punch_hole(struct file *file, loff_t offset, loff_t length)
39863986
down_write(&EXT4_I(inode)->i_data_sem);
39873987
ext4_discard_preallocations(inode, 0);
39883988

3989-
ret = ext4_es_remove_extent(inode, first_block,
3990-
stop_block - first_block);
3991-
if (ret) {
3992-
up_write(&EXT4_I(inode)->i_data_sem);
3993-
goto out_stop;
3994-
}
3989+
ext4_es_remove_extent(inode, first_block,
3990+
stop_block - first_block);
39953991

39963992
if (ext4_test_inode_flag(inode, EXT4_INODE_EXTENTS))
39973993
ret = ext4_ext_remove_space(inode, first_block,

0 commit comments

Comments
 (0)