WSL2-Linux-Kernel/fs/ext4
Jan Kara 6b6c088c38 ext4: do not let fstrim block system suspend
[ Upstream commit 5229a658f6 ]

Len Brown has reported that system suspend sometimes fail due to
inability to freeze a task working in ext4_trim_fs() for one minute.
Trimming a large filesystem on a disk that slowly processes discard
requests can indeed take a long time. Since discard is just an advisory
call, it is perfectly fine to interrupt it at any time and the return
number of discarded blocks until that moment. Do that when we detect the
task is being frozen.

Cc: stable@kernel.org
Reported-by: Len Brown <lenb@kernel.org>
Suggested-by: Dave Chinner <david@fromorbit.com>
References: https://bugzilla.kernel.org/show_bug.cgi?id=216322
Signed-off-by: Jan Kara <jack@suse.cz>
Link: https://lore.kernel.org/r/20230913150504.9054-2-jack@suse.cz
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2023-10-06 13:18:01 +02:00
..
.kunitconfig ext4: add .kunitconfig fragment to enable ext4-specific tests 2021-02-11 23:16:30 -05:00
Kconfig ext: EXT4_KUNIT_TESTS should depend on EXT4_FS instead of selecting it 2021-02-11 23:12:59 -05:00
Makefile ext4: Move orphan inode handling into a separate file 2021-08-30 23:36:51 -04:00
acl.c ext4: use ext4_journal_start/stop for fast commit transactions 2023-05-11 23:00:16 +09:00
acl.h vfs: add rcu argument to ->get_acl() callback 2021-08-18 22:08:24 +02:00
balloc.c ext4: add correct group descriptors and reserved GDT blocks to system zone 2023-09-19 12:23:01 +02:00
bitmap.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
block_validity.c ext4: add correct group descriptors and reserved GDT blocks to system zone 2023-09-19 12:23:01 +02:00
dir.c ext4: fix potential infinite loop in ext4_dx_readdir() 2021-10-01 00:05:09 -04:00
ext4.h ext4: change s_last_trim_minblks type to unsigned long 2023-10-06 13:18:01 +02:00
ext4_extents.h ext4: fix sparse warnings 2021-08-30 23:36:50 -04:00
ext4_jbd2.c ext4: use ext4_debug() instead of jbd_debug() 2023-01-12 11:59:04 +01:00
ext4_jbd2.h ext4: Support for checksumming from journal triggers 2021-08-30 23:36:50 -04:00
extents.c ext4: fix use-after-free read in ext4_find_extent for bigalloc + inline 2023-05-11 23:00:37 +09:00
extents_status.c ext4: fix data races when using cached status extents 2023-05-17 11:50:29 +02:00
extents_status.h ext4: fix extent_status trace points 2020-01-25 02:03:03 -05:00
fast_commit.c ext4: use ext4_fc_tl_mem in fast-commit replay path 2023-03-11 13:57:26 +01:00
fast_commit.h ext4: add missing validation of fast-commit record lengths 2023-01-12 11:59:05 +01:00
file.c ext4: use ext4_journal_start/stop for fast commit transactions 2023-05-11 23:00:16 +09:00
fsmap.c ext4: fix another off-by-one fsmap error on 1k block filesystems 2023-03-17 08:48:48 +01:00
fsmap.h ext4: fsmap: fix the block/inode bitmap comment 2021-06-24 09:48:29 -04:00
fsync.c block: use an on-stack bio in blkdev_issue_flush 2021-01-27 09:51:48 -07:00
hash.c ext4: improve error handling from ext4_dirhash() 2023-05-17 11:50:30 +02:00
ialloc.c ext4: allow ext4_get_group_info() to fail 2023-05-24 17:36:43 +01:00
indirect.c ext4: only update i_reserved_data_blocks on successful block allocation 2023-07-23 13:47:49 +02:00
inline.c ext4: bail out of ext4_xattr_ibody_get() fails for any reason 2023-05-17 11:50:30 +02:00
inode-test.c fs: ext4: Modify inode-test.c to use KUnit parameterized testing feature 2020-12-02 16:07:25 -07:00
inode.c ext4: only update i_reserved_data_blocks on successful block allocation 2023-07-23 13:47:49 +02:00
ioctl.c ext4: fix to check return value of freeze_bdev() in ext4_shutdown() 2023-07-23 13:47:49 +02:00
mballoc.c ext4: do not let fstrim block system suspend 2023-10-06 13:18:01 +02:00
mballoc.h ext4: fix various seppling typos 2021-04-09 23:14:59 -04:00
migrate.c ext4: fix warning in 'ext4_da_release_space' 2022-11-10 18:15:40 +01:00
mmp.c ext4: fix lockdep warning when enabling MMP 2023-05-24 17:36:43 +01:00
move_extent.c ext4: use common helpers in all places reading metadata buffers 2020-10-18 10:37:14 -04:00
namei.c ext4: fix rec_len verify error 2023-09-23 11:10:03 +02:00
orphan.c ext4: use ext4_debug() instead of jbd_debug() 2023-01-12 11:59:04 +01:00
page-io.c ext4: fix cgroup writeback accounting with fs-layer encryption 2023-03-17 08:48:48 +01:00
readpage.c block: Add bio_max_segs 2021-02-26 15:49:51 -07:00
resize.c ext4: fix bad checksum after online resize 2023-02-06 07:59:01 +01:00
super.c ext4: turn quotas off if mount failed after enabling quotas 2023-07-23 13:47:49 +02:00
symlink.c ext4: report correct st_size for encrypted symlinks 2021-07-25 20:01:06 -07:00
sysfs.c ext4: Fix function prototype mismatch for ext4_feat_ktype 2023-02-25 12:06:45 +01:00
truncate.h ext4: Convert to use mapping->invalidate_lock 2021-07-13 14:29:00 +02:00
verity.c fs: ext4: initialize fsdata in pagecache_write() 2023-01-12 11:59:00 +01:00
xattr.c ext4: correct inline offset when handling xattrs in inode body 2023-07-27 08:46:57 +02:00
xattr.h ext4: remove EA inode entry from mbcache on inode eviction 2022-08-17 14:24:27 +02:00
xattr_hurd.c acl: handle idmapped mounts 2021-01-24 14:27:17 +01:00
xattr_security.c acl: handle idmapped mounts 2021-01-24 14:27:17 +01:00
xattr_trusted.c acl: handle idmapped mounts 2021-01-24 14:27:17 +01:00
xattr_user.c acl: handle idmapped mounts 2021-01-24 14:27:17 +01:00