linux/fs/f2fs
Yongpeng Yang 19ec1d31fa f2fs: Add error handling for negative returns from do_garbage_collect
The function do_garbage_collect can return a value less than 0 due
to f2fs_cp_error being true or page allocation failure, as a result
of calling f2fs_get_sum_page. However, f2fs_gc does not account for
such cases, which could potentially lead to an abnormal total_freed
and thus cause subsequent code to behave unexpectedly. Given that
an f2fs_cp_error is irrecoverable, and considering that
do_garbage_collect already retries page allocation errors through
its call to f2fs_get_sum_page->f2fs_get_meta_page_retry, any error
reported by do_garbage_collect should immediately terminate the
current GC.

Signed-off-by: Yongpeng Yang <yangyongpeng1@oppo.com>
Reviewed-by: Chao Yu <chao@kernel.org>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
2023-12-26 13:06:40 -08:00
..
acl.c fs: port i_{g,u}id_into_vfs{g,u}id() to mnt_idmap 2023-01-19 09:24:29 +01:00
acl.h fs: port ->set_acl() to pass mnt_idmap 2023-01-19 09:24:27 +01:00
checkpoint.c f2fs: fix to account cp stats correctly 2023-08-14 13:42:05 -07:00
compress.c f2fs: fix to tag gcing flag on page during block migration 2023-12-11 13:38:40 -08:00
data.c f2fs: fix to wait on block writeback for post_read case 2023-12-11 14:04:08 -08:00
debug.c f2fs: fix to account cp stats correctly 2023-08-14 13:42:05 -07:00
dir.c f2fs: convert to new timestamp accessors 2023-10-18 13:26:22 +02:00
extent_cache.c f2fs: split initial and dynamic conditions for extent_cache 2023-09-12 13:49:33 -07:00
f2fs.h f2fs: introduce f2fs_invalidate_internal_cache() for cleanup 2023-12-11 13:34:55 -08:00
file.c f2fs: don't set FI_PREALLOCATED_ALL for partial write 2023-12-11 17:46:35 -08:00
gc.c f2fs: Add error handling for negative returns from do_garbage_collect 2023-12-26 13:06:40 -08:00
gc.h f2fs: Fix system crash due to lack of free space in LFS 2023-04-10 10:58:45 -07:00
hash.c f2fs: don't use casefolded comparison for "." and ".." 2022-05-17 11:19:23 -07:00
inline.c f2fs: convert to new timestamp accessors 2023-10-18 13:26:22 +02:00
inode.c f2fs: introduce get_dnode_addr() to clean up codes 2023-12-11 13:32:01 -08:00
iostat.c f2fs: add async reset zone command support 2023-06-12 13:04:09 -07:00
iostat.h f2fs: use iostat_lat_type directly as a parameter in the iostat_update_and_unbind_ctx() 2023-02-07 10:39:28 -08:00
Kconfig fs: add CONFIG_BUFFER_HEAD 2023-08-02 09:13:09 -06:00
Makefile f2fs: separate out iostat feature 2021-08-23 10:25:51 -07:00
namei.c f2fs: introduce tracepoint for f2fs_rename() 2023-11-28 10:52:44 -08:00
node.c f2fs: fix to check return value of f2fs_recover_xattr_data 2023-12-15 15:09:17 -08:00
node.h f2fs: fix compile warning in f2fs_destroy_node_manager() 2023-06-30 16:38:27 -07:00
recovery.c f2fs: fix write pointers on zoned device after roll forward 2023-12-04 17:18:00 -08:00
segment.c f2fs: Use wait_event_freezable_timeout() for freezable kthread 2023-12-26 13:05:56 -08:00
segment.h f2fs: Clean up errors in segment.h 2023-10-16 12:51:37 -07:00
shrinker.c f2fs: add block_age-based extent cache 2022-12-12 14:53:56 -08:00
super.c f2fs: Restrict max filesize for 16K f2fs 2023-12-08 12:31:08 -08:00
sysfs.c f2fs: Constrain the modification range of dir_level in the sysfs 2023-12-26 13:06:32 -08:00
verity.c f2fs-for-6.3-rc1 2023-02-27 16:18:51 -08:00
xattr.c f2fs: fix to check return value of f2fs_recover_xattr_data 2023-12-15 15:09:17 -08:00
xattr.h f2fs: move f2fs_xattr_handlers and f2fs_xattr_handler_map to .rodata 2023-10-09 16:24:18 +02:00