linux/fs
Baokun Li 4530b3660d ext4: avoid allocating blocks from corrupted group in ext4_mb_try_best_found()
Determine if the group block bitmap is corrupted before using ac_b_ex in
ext4_mb_try_best_found() to avoid allocating blocks from a group with a
corrupted block bitmap in the following concurrency and making the
situation worse.

ext4_mb_regular_allocator
  ext4_lock_group(sb, group)
  ext4_mb_good_group
   // check if the group bbitmap is corrupted
  ext4_mb_complex_scan_group
   // Scan group gets ac_b_ex but doesn't use it
  ext4_unlock_group(sb, group)
                           ext4_mark_group_bitmap_corrupted(group)
                           // The block bitmap was corrupted during
                           // the group unlock gap.
  ext4_mb_try_best_found
    ext4_lock_group(ac->ac_sb, group)
    ext4_mb_use_best_found
      mb_mark_used
      // Allocating blocks in block bitmap corrupted group

Signed-off-by: Baokun Li <libaokun1@huawei.com>
Reviewed-by: Jan Kara <jack@suse.cz>
Link: https://lore.kernel.org/r/20240104142040.2835097-7-libaokun1@huawei.com
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
2024-01-18 10:50:24 -05:00
..
9p Bunch of small fixes: 2023-11-04 09:20:04 -10:00
adfs adfs: remove writepage implementation 2023-12-29 11:58:33 -08:00
affs vfs-6.7.fsid 2023-11-07 12:11:26 -08:00
afs hardening updates for v6.8-rc1 2024-01-10 11:03:52 -08:00
autofs autofs: add: new_inode check in autofs_fill_super() 2023-11-20 14:56:36 +01:00
bcachefs Many singleton patches against the MM code. The patch series which 2024-01-09 11:18:47 -08:00
befs vfs-6.7.fsid 2023-11-07 12:11:26 -08:00
bfs bfs: remove writepage implementation 2023-12-29 11:58:34 -08:00
btrfs for-6.8-tag 2024-01-10 09:27:40 -08:00
cachefiles vfs-6.8.cachefiles 2024-01-08 11:26:50 -08:00
ceph Many singleton patches against the MM code. The patch series which 2024-01-09 11:18:47 -08:00
coda fs: move file_start_write() into vfs_iter_write() 2023-11-24 10:09:51 +01:00
configfs
cramfs vfs-6.7.ctime 2023-10-30 09:47:13 -10:00
crypto fscrypt: document that CephFS supports fscrypt now 2023-12-26 22:55:42 -06:00
debugfs Merge branches 'acpi-pm', 'acpi-video', 'acpi-apei' and 'acpi-extlog' 2024-01-04 13:19:40 +01:00
devpts
dlm dlm: update format header reflect current format 2023-12-20 15:36:48 -06:00
ecryptfs unicode updates 2024-01-10 16:06:58 -08:00
efivarfs efivarfs: automatically update super block flag 2023-12-11 11:19:18 +01:00
efs vfs-6.7.fsid 2023-11-07 12:11:26 -08:00
erofs erofs: make erofs_{err,info}() support NULL sb parameter 2024-01-10 19:59:39 +08:00
exfat exfat: fix ctime is not updated 2023-11-03 22:24:11 +09:00
exportfs fs: fix build error with CONFIG_EXPORTFS=m or not defined 2023-10-28 16:16:19 +02:00
ext2 fs: convert error_remove_page to error_remove_folio 2023-12-10 16:51:42 -08:00
ext4 ext4: avoid allocating blocks from corrupted group in ext4_mb_try_best_found() 2024-01-18 10:50:24 -05:00
f2fs fscrypt updates for 6.8 2024-01-10 10:24:49 -08:00
fat vfs-6.7.fsid 2023-11-07 12:11:26 -08:00
freevxfs freevxfs: lookup: fix function params kernel-doc 2023-12-20 15:02:58 -08:00
fscache
fuse vfs-6.8.rw 2024-01-08 11:11:51 -08:00
gfs2 dlm for 6.8 2024-01-10 10:17:23 -08:00
hfs hfs: really remove hfs_writepage 2023-12-29 11:58:34 -08:00
hfsplus Many singleton patches against the MM code. The patch series which 2024-01-09 11:18:47 -08:00
hostfs
hpfs
hugetlbfs Many singleton patches against the MM code. The patch series which 2024-01-09 11:18:47 -08:00
iomap mm: add folio_fill_tail() and use it in iomap 2023-12-10 16:51:36 -08:00
isofs
jbd2 jbd2: abort journal when detecting metadata writeback error of fs dev 2024-01-04 23:42:21 -05:00
jffs2 jffs2: mark __jffs2_dbg_superblock_counts() static 2023-12-10 17:21:43 -08:00
jfs jfs: Add missing set_freezable() for freezable kthread 2024-01-02 11:06:52 -06:00
kernfs Driver core changes for 6.7-rc1 2023-11-03 15:15:47 -10:00
lockd SUNRPC: discard sv_refcnt, and svc_get/svc_put 2024-01-07 17:54:33 -05:00
minix minix: remove writepage implementation 2023-12-29 11:58:34 -08:00
netfs
nfs NFSD 6.8 Release Notes 2024-01-10 10:20:08 -08:00
nfs_common
nfsd NFSD 6.8 Release Notes 2024-01-10 10:20:08 -08:00
nilfs2 Quite a lot of kexec work this time around. Many singleton patches in 2024-01-09 11:46:20 -08:00
nls
notify fanotify: allow "weak" fsid when watching a single filesystem 2023-12-01 10:55:21 +01:00
ntfs Many singleton patches against the MM code. The patch series which 2024-01-09 11:18:47 -08:00
ntfs3 vfs-6.7.fsid 2023-11-07 12:11:26 -08:00
ocfs2 dlm for 6.8 2024-01-10 10:17:23 -08:00
omfs
openpromfs
orangefs vfs-6.7.ctime 2023-10-30 09:47:13 -10:00
overlayfs overlayfs updates for 6.8 2024-01-10 10:48:22 -08:00
proc lsm/stable-6.8 PR 20240105 2024-01-09 12:57:46 -08:00
pstore pstore: inode: Use cleanup.h for struct pstore_private 2023-12-08 14:15:44 -08:00
qnx4 qnx4: Use get_directory_fname() in qnx4_match() 2023-12-13 11:19:18 -08:00
qnx6
quota quota: convert dquot_claim_space_nodirty() to return void 2023-12-11 13:26:06 +01:00
ramfs mm, treewide: rename MAX_ORDER to MAX_PAGE_ORDER 2024-01-08 15:27:15 -08:00
reiserfs reiserfs: fix uninit-value in comp_keys 2023-12-28 11:56:52 +01:00
romfs vfs-6.7.ctime 2023-10-30 09:47:13 -10:00
smb Many singleton patches against the MM code. The patch series which 2024-01-09 11:18:47 -08:00
squashfs Squashfs: fix variable overflow triggered by sysbot 2023-12-10 17:21:26 -08:00
sysfs
sysv sysv: remove writepage implementation 2023-12-29 11:58:35 -08:00
tracefs eventfs: Fix bitwise fields for "is_events" 2024-01-02 15:20:44 -05:00
ubifs This pull request contains updates for UBI and UBIFS 2023-11-05 08:28:32 -10:00
udf \n 2023-11-02 08:19:51 -10:00
ufs Many singleton patches against the MM code. The patch series which 2024-01-09 11:18:47 -08:00
unicode
vboxsf
verity
xfs New code for 6.8: 2024-01-10 08:45:22 -08:00
zonefs fs: convert error_remove_page to error_remove_folio 2023-12-10 16:51:42 -08:00
aio.c vfs-6.8.iov_iter 2024-01-08 11:43:04 -08:00
anon_inodes.c
attr.c fs: fix doc comment typo fs tree wide 2023-12-21 13:17:54 +01:00
backing-file.c fs: factor out backing_file_mmap() helper 2023-12-23 16:35:09 +02:00
bad_inode.c
binfmt_elf_fdpic.c execve updates for v6.7-rc1 2023-10-30 19:28:19 -10:00
binfmt_elf_test.c
binfmt_elf.c
binfmt_flat.c
binfmt_misc.c execve updates for v6.7-rc1 2023-10-30 19:28:19 -10:00
binfmt_script.c
buffer.c Many singleton patches against the MM code. The patch series which 2024-01-09 11:18:47 -08:00
char_dev.c As usual, lots of singleton and doubleton patches all over the tree and 2023-11-02 20:53:31 -10:00
compat_binfmt_elf.c
coredump.c
d_path.c
dax.c fs : Fix warning using plain integer as NULL 2023-11-18 15:00:01 +01:00
dcache.c list_lru: allow explicit memcg and NUMA node selection 2023-12-12 10:57:01 -08:00
direct-io.c fs : Fix warning using plain integer as NULL 2023-11-18 15:00:01 +01:00
drop_caches.c
eventfd.c eventfd: Remove usage of the deprecated ida_simple_xx() API 2023-12-12 14:24:55 +01:00
eventpoll.c
exec.c introduce for_other_threads(p, t) 2023-12-10 17:21:25 -08:00
fcntl.c
fhandle.c exportfs: add helpers to check if filesystem can encode/decode file handles 2023-10-24 17:57:45 +02:00
file_table.c fs: replace f_rcuhead with f_task_work 2023-12-12 14:24:13 +01:00
file.c file: remove __receive_fd() 2023-12-12 14:24:14 +01:00
filesystems.c
fs_context.c
fs_parser.c
fs_pin.c
fs_struct.c
fs_types.c
fs-writeback.c vfs-6.7.misc 2023-10-30 09:14:19 -10:00
fsopen.c
init.c
inode.c Many singleton patches against the MM code. The patch series which 2024-01-09 11:18:47 -08:00
internal.h vfs-6.8.rw 2024-01-08 11:11:51 -08:00
ioctl.c lsm: new security_file_ioctl_compat() hook 2023-12-24 15:48:03 -05:00
Kconfig Many singleton patches against the MM code. The patch series which 2024-01-09 11:18:47 -08:00
Kconfig.binfmt
kernel_read_file.c
libfs.c libfs: getdents() should return 0 after reaching EOD 2023-11-20 15:34:22 +01:00
locks.c As usual, lots of singleton and doubleton patches all over the tree and 2023-11-02 20:53:31 -10:00
Makefile fs: prepare for stackable filesystems backing file helpers 2023-12-23 16:35:08 +02:00
mbcache.c
mnt_idmapping.c mnt_idmapping: decouple from namespaces 2023-11-28 14:08:47 +01:00
mount.h mounts: keep list of mounts in an rbtree 2023-11-18 14:56:16 +01:00
mpage.c fs: convert block_write_full_page to block_write_full_folio 2023-12-29 11:58:35 -08:00
namei.c Merge branch 'vfs.file' 2023-12-21 13:21:52 +01:00
namespace.c for-6.8-tag 2024-01-10 09:27:40 -08:00
nsfs.c
open.c vfs-6.8.rw 2024-01-08 11:11:51 -08:00
pipe.c pipe: wakeup wr_wait after setting max_usage 2023-12-12 14:24:54 +01:00
pnode.c mounts: keep list of mounts in an rbtree 2023-11-18 14:56:16 +01:00
pnode.h
posix_acl.c fs: fix doc comment typo fs tree wide 2023-12-21 13:17:54 +01:00
proc_namespace.c namespace: extract show_path() helper 2023-11-18 14:56:16 +01:00
read_write.c fsnotify: optionally pass access range in file permission hooks 2023-12-12 16:20:02 +01:00
readdir.c fsnotify: optionally pass access range in file permission hooks 2023-12-12 16:20:02 +01:00
remap_range.c fsnotify: optionally pass access range in file permission hooks 2023-12-12 16:20:02 +01:00
select.c
seq_file.c
signalfd.c
splice.c fs: use splice_copy_file_range() inline helper 2023-12-12 16:20:02 +01:00
stack.c
stat.c vfs-6.8.mount 2024-01-08 10:57:34 -08:00
statfs.c
super.c fscrypt updates for 6.8 2024-01-10 10:24:49 -08:00
sync.c
sysctls.c
timerfd.c
userfaultfd.c userfaultfd: UFFDIO_MOVE uABI 2023-12-29 11:58:24 -08:00
utimes.c
xattr.c