linux/fs/ext4
Kemeng Shi d1a3924e43 ext4: call ext4_mb_mark_free_simple to free continuous bits in found chunk
In mb_mark_used, we will find free chunk and mark it inuse. For chunk
in mid of passed range, we could simply mark whole chunk inuse. For chunk
at end of range, we may need to mark a continuous bits at end of part of
chunk inuse and keep rest part of chunk free. To only mark a part of
chunk inuse, we firstly mark whole chunk inuse and then mark a continuous
range at end of chunk free.
Function mb_mark_used does several times of "mb_find_buddy; mb_clear_bit;
..." to mark a continuous range free which can be done by simply calling
ext4_mb_mark_free_simple which free continuous bits in a more effective
way.
Just call ext4_mb_mark_free_simple in mb_mark_used to use existing and
effective code to free continuous blocks in chunk at end of passed range.

Signed-off-by: Kemeng Shi <shikemeng@huaweicloud.com>
Reviewed-by: Jan Kara <jack@suse.cz>
Link: https://lore.kernel.org/r/20240424061904.987525-4-shikemeng@huaweicloud.com
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
2024-05-03 00:12:32 -04:00
..
.kunitconfig
acl.c ext4: convert to ctime accessor functions 2023-07-24 10:29:54 +02:00
acl.h Revert "ext4: apply umask if ACL support is disabled" 2024-05-02 18:25:39 -04:00
balloc.c ext4: add some kunit stub for mballoc kunit test 2023-10-05 22:32:16 -04:00
bitmap.c ext4: remove useless conditional branch code 2023-04-19 23:39:08 -04:00
block_validity.c ext4: add correct group descriptors and reserved GDT blocks to system zone 2023-08-27 11:27:12 -04:00
crypto.c fscrypt: support crypto data unit size less than filesystem block size 2023-09-25 22:34:33 -07:00
dir.c ext4: fix spelling errors in comments 2022-05-11 15:19:06 -04:00
ext4_extents.h
ext4_jbd2.c ext4: move ext4_check_bdev_write_error() into nojournal mode 2024-01-04 23:42:21 -05:00
ext4_jbd2.h ext4: split ext4_journal_start trace for debug 2022-12-01 10:46:54 -05:00
ext4.h \n 2024-03-13 14:30:58 -07:00
extents_status.c Many singleton patches against the MM code. The patch series which are 2023-11-02 19:38:47 -10:00
extents_status.h ext4: make ext4_es_insert_extent() return void 2023-06-26 19:35:12 -04:00
extents.c ext4: set the type of max_zeroout to unsigned int to avoid overflow 2024-05-02 23:48:31 -04:00
fast_commit.c ext4: make state in ext4_mb_mark_bb to be bool 2023-10-05 22:32:15 -04:00
fast_commit.h ext4: add missing validation of fast-commit record lengths 2022-12-08 21:49:24 -05:00
file.c ext4: replace deprecated strncpy with alternatives 2024-05-02 23:55:10 -04:00
fsmap.c ext4: port block device access to file 2024-02-25 12:05:26 +01:00
fsmap.h
fsync.c ext4: drop EXT4_MF_FS_ABORTED flag 2023-07-29 18:37:53 -04:00
hash.c ext4: remove redundant checks of s_encoding 2023-08-27 11:27:13 -04:00
ialloc.c ext4: convert to new timestamp accessors 2023-10-18 13:26:21 +02:00
indirect.c ext4: remove unnecessary parameter "needed" in ext4_discard_preallocations 2024-01-18 10:52:45 -05:00
inline.c mm: add folio_zero_tail() and use it in ext4 2023-12-10 16:51:36 -08:00
inode-test.c ext4: convert to ctime accessor functions 2023-07-24 10:29:54 +02:00
inode.c ext4: set FMODE_CAN_ODIRECT instead of a dummy direct_IO method 2024-05-02 10:53:32 -04:00
ioctl.c ext4: replace deprecated strncpy with alternatives 2024-05-02 23:55:10 -04:00
Kconfig fs: add CONFIG_BUFFER_HEAD 2023-08-02 09:13:09 -06:00
Makefile ext4: move ext4 crypto code to its own file crypto.c 2022-05-21 22:24:24 -04:00
mballoc-test.c ext4: add test_mb_mark_used_cost to estimate cost of mb_mark_used 2024-05-03 00:12:32 -04:00
mballoc.c ext4: call ext4_mb_mark_free_simple to free continuous bits in found chunk 2024-05-03 00:12:32 -04:00
mballoc.h ext4: set type of ac_groups_linear_remaining to __u32 to avoid overflow 2024-05-02 23:48:31 -04:00
migrate.c ext4: avoid deadlock in fs reclaim with page writeback 2023-05-13 18:05:04 -04:00
mmp.c ext4: replace read-only check for shutdown check in mmp code 2023-07-29 18:37:53 -04:00
move_extent.c ext4: remove unnecessary parameter "needed" in ext4_discard_preallocations 2024-01-18 10:52:45 -05:00
namei.c ext4: avoid excessive credit estimate in ext4_tmpfile() 2024-05-02 14:49:16 -04:00
orphan.c ext4: remove trailing newline from ext4_msg() message 2022-12-08 21:49:23 -05:00
page-io.c fs: convert block_write_full_page to block_write_full_folio 2023-12-29 11:58:35 -08:00
readpage.c ext4: use folio_end_read() 2023-10-18 14:34:16 -07:00
resize.c ext4: enable meta_bg only when new desc blocks are needed 2024-03-07 13:32:54 -05:00
super.c ext4: replace deprecated strncpy with alternatives 2024-05-02 23:55:10 -04:00
symlink.c ext4_get_link(): fix breakage in RCU mode 2024-02-25 02:10:32 -05:00
sysfs.c ext4: add positive int attr pointer to avoid sysfs variables overflow 2024-05-02 23:48:30 -04:00
truncate.h
verity.c - Nick Piggin's "shoot lazy tlbs" series, to improve the peformance of 2023-04-27 19:42:02 -07:00
xattr_hurd.c fs: port xattr to mnt_idmap 2023-01-19 09:24:28 +01:00
xattr_security.c fs: port xattr to mnt_idmap 2023-01-19 09:24:28 +01:00
xattr_trusted.c fs: port xattr to mnt_idmap 2023-01-19 09:24:28 +01:00
xattr_user.c fs: port xattr to mnt_idmap 2023-01-19 09:24:28 +01:00
xattr.c ext4: do not create EA inode under buffer lock 2024-05-03 00:02:24 -04:00
xattr.h ext4: move ext4_xattr_handlers to .rodata 2023-10-09 16:24:16 +02:00