[GIT PULL] Ext4 updates for 6.6

From: Theodore Ts'o
Date: Thu Aug 31 2023 - 11:02:14 EST


Hi Linus,

The following changes since commit 6eaae198076080886b9e7d57f4ae06fa782f90ef:

Linux 6.5-rc3 (2023-07-23 15:24:10 -0700)

are available in the Git repository at:

https://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4.git tags/ext4_for_linus-6.6-rc1

for you to fetch changes up to 768d612f79822d30a1e7d132a4d4b05337ce42ec:

ext4: fix slab-use-after-free in ext4_es_insert_extent() (2023-08-27 11:27:13 -0400)

Note that there are a merge conflict with Cristoph's fs_holder_ops
patches. The resolution is a bit complicated, but can be seen here:

https://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4.git tags/ext4_merge_resolution

The merge resolution can also be seen in the linux-next tree.

These changes were fully tested using "gce-xfstests -c ext4/all -g
auto", and there were no regressions.

----------------------------------------------------------------
Many ext4 and jbd2 cleanups and bug fixes for v6.6-rc1.

* Cleanups in the ext4 remount code when going to and from read-only
* Cleanups in ext4's multiblock allocator
* Cleanups in the jbd2 setup/mounting code paths
* Performance improvements when appending to a delayed allocation file
* Miscenallenous syzbot and other bug fixes

----------------------------------------------------------------
Baokun Li (4):
ext4: add two helper functions extent_logical_end() and pa_logical_end()
ext4: fix BUG in ext4_mb_new_inode_pa() due to overflow
ext4: avoid overlapping preallocations due to overflow
ext4: fix slab-use-after-free in ext4_es_insert_extent()

Brian Foster (1):
ext4: drop dio overwrite only flag and associated warning

Cai Xinchen (1):
ext4: remove unused function declaration

Eric Biggers (3):
ext4: reject casefold inode flag without casefold feature
ext4: remove redundant checks of s_encoding
libfs: remove redundant checks of s_encoding

Guoqing Cai (1):
fs: jbd2: fix an incorrect warn log

Jan Kara (11):
ext4: remove pointless sb_rdonly() checks from freezing code
ext4: use sb_rdonly() helper for checking read-only flag
ext4: make ext4_forced_shutdown() take struct super_block
ext4: make 'abort' mount option handling standard
ext4: drop EXT4_MF_FS_ABORTED flag
ext4: avoid starting transaction on read-only fs in ext4_quota_off()
ext4: warn on read-only filesystem in ext4_journal_check_start()
ext4: drop read-only check in ext4_init_inode_table()
ext4: drop read-only check in ext4_write_inode()
ext4: drop read-only check from ext4_force_commit()
ext4: replace read-only check for shutdown check in mmp code

Kemeng Shi (10):
ext4: correct grp validation in ext4_mb_good_group
ext4: avoid potential data overflow in next_linear_group
ext4: return found group directly in ext4_mb_choose_next_group_p2_aligned
ext4: use is_power_of_2 helper in ext4_mb_regular_allocator
ext4: remove unnecessary return for void function
ext4: replace the traditional ternary conditional operator with with max()/min()
ext4: remove unused ext4_{set}/{clear}_bit_atomic
ext4: return found group directly in ext4_mb_choose_next_group_goal_fast
ext4: return found group directly in ext4_mb_choose_next_group_best_avail
ext4: correct some stale comment of criteria

Liu Song (1):
ext4: do not mark inode dirty every time when appending using delalloc

Lu Hongfei (2):
ext4: change the type of blocksize in ext4_mb_init_cache()
ext4: use sbi instead of EXT4_SB(sb) in ext4_mb_new_blocks_simple()

Luís Henriques (1):
ext4: fix memory leaks in ext4_fname_{setup_filename,prepare_lookup}

Ojaswin Mujoo (1):
ext4: replace CR_FAST macro with inline function for readability

Ritesh Harjani (1):
ext4: don't use CR_BEST_AVAIL_LEN for non-regular files

Ruan Jinjie (1):
ext4: use LIST_HEAD() to initialize the list_head in mballoc.c

Su Hui (1):
ext4: mballoc: avoid garbage value from err

Theodore Ts'o (1):
ext4: rename s_error_work to s_sb_upd_work

Vitaliy Kuznetsov (1):
ext4: add periodic superblock update check

Wang Jianjian (2):
jbd2: remove unused t_handle_lock
ext4: add correct group descriptors and reserved GDT blocks to system zone

Yang Li (1):
jbd2: remove unused function '__cp_buffer_busy'

Zhang Yi (14):
jbd2: fix checkpoint cleanup performance regression
jbd2: move load_superblock() dependent functions
jbd2: move load_superblock() into journal_init_common()
jbd2: don't load superblock in jbd2_journal_check_used_features()
jbd2: checking valid features early in journal_get_superblock()
jbd2: open code jbd2_verify_csum_type() helper
jbd2: cleanup load_superblock()
jbd2: add fast_commit space check
jbd2: cleanup journal_init_common()
jbd2: drop useless error tag in jbd2_journal_wipe()
jbd2: jbd2_journal_init_{dev,inode} return proper error return value
ext4: cleanup ext4_get_dev_journal() and ext4_get_journal()
ext4: ext4_get_{dev}_journal return proper error value
jbd2: correct the end of the journal recovery scan range

Zhihao Cheng (2):
jbd2: check 'jh->b_transaction' before removing it from checkpoint
ext4: fix unttached inode after power cut with orphan file feature enabled

fs/ext4/balloc.c | 15 ++-
fs/ext4/block_validity.c | 8 +-
fs/ext4/crypto.c | 4 +
fs/ext4/ext4.h | 32 +++--
fs/ext4/ext4_jbd2.c | 5 +-
fs/ext4/extents_status.c | 44 +++++--
fs/ext4/file.c | 38 +++---
fs/ext4/fsync.c | 9 +-
fs/ext4/hash.c | 2 +-
fs/ext4/ialloc.c | 8 +-
fs/ext4/inline.c | 2 +-
fs/ext4/inode.c | 124 +++++++++++-------
fs/ext4/ioctl.c | 2 +-
fs/ext4/mballoc.c | 200 +++++++++++++----------------
fs/ext4/mballoc.h | 14 ++
fs/ext4/mmp.c | 2 +-
fs/ext4/namei.c | 17 ++-
fs/ext4/page-io.c | 2 +-
fs/ext4/super.c | 308 +++++++++++++++++++++++++-------------------
fs/ext4/xattr.c | 2 +-
fs/jbd2/checkpoint.c | 34 +++--
fs/jbd2/journal.c | 484 +++++++++++++++++++++++++++++++++-------------------------------------
fs/jbd2/recovery.c | 12 +-
fs/libfs.c | 14 +-
fs/ocfs2/journal.c | 8 +-
include/linux/jbd2.h | 5 -
26 files changed, 717 insertions(+), 678 deletions(-)