Skip to content

Conversation

bmastbergen
Copy link
Collaborator

Background

For CVE-2025-22121 and CVE-2025-22113 see @pvts-mat write-up in #577 The same 5 commits where backported here PLUS the additional prerequisite commit 3478c83 for CVE-2025-22121.

2b96b4a was backported to address CVE-2023-53100 which requied prerequisite commit 1dcdce5

Commits

    ext4: move where set the MAY_INLINE_DATA flag is set

    jira VULN-67318
    cve-pre CVE-2023-53100
    commit-author Ye Bin <yebin10@huawei.com>
    commit 1dcdce5919115a471bf4921a57f20050c545a236
    ext4: fix WARNING in ext4_update_inline_data

    jira VULN-67318
    cve CVE-2023-53100
    commit-author Ye Bin <yebin10@huawei.com>
    commit 2b96b4a5d9443ca4cad58b0040be455803c05a42
    ext4: improve xattr consistency checking and error reporting

    jira VULN-65380
    cve-pre CVE-2025-22121
    commit-author Theodore Ts'o <tytso@mit.edu>
    commit 3478c83cf26bbffd026ae6a56bcb1fe544f0834e
    ext4: introduce ITAIL helper

    jira VULN-65380
    cve-pre CVE-2025-22121
    commit-author Ye Bin <yebin10@huawei.com>
    commit 69f3a3039b0d0003de008659cafd5a1eaaa0a7a4
    ext4: fix out-of-bound read in ext4_xattr_inode_dec_ref_all()

    jira VULN-65380
    cve CVE-2025-22121
    commit-author Ye Bin <yebin10@huawei.com>
    commit 5701875f9609b000d91351eaa6bfd97fe2f157f4
    ext4: rename s_error_work to s_sb_upd_work

    jira VULN-65357
    cve-pre CVE-2025-22113
    commit-author Theodore Ts'o <tytso@mit.edu>
    commit bb15cea20f211e110150e528fca806f38d5789e0
    upstream-diff |
      Ignored the changes to the `ext4_maybe_update_superblock()' function
      introduced by ff0722de896eb278fca193888d22278c28f2782c which is missing
      from ciqlts9_2 history and is not functionally neutral.
    ext4: define ext4_journal_destroy wrapper

    jira VULN-65357
    cve-pre CVE-2025-22113
    commit-author Ojaswin Mujoo <ojaswin@linux.ibm.com>
    commit 5a02a6204ca37e7c22fbb55a789c503f05e8e89a
    ext4: avoid journaling sb update on error if journal is destroying

    jira VULN-65357
    cve CVE-2025-22113
    commit-author Ojaswin Mujoo <ojaswin@linux.ibm.com>
    commit ce2f26e73783b4a7c46a86e3af5b5c8de0971790

Build Log

/home/brett/kernel-src-tree
Running make mrproper...
[TIMER]{MRPROPER}: 9s
x86_64 architecture detected, copying config
'configs/kernel-x86_64-rhel.config' -> '.config'
Setting Local Version for build
CONFIG_LOCALVERSION="-bmastbergen_ciqlts9_2_many-vulns-9-26-25-0e2c8c19c76e"
Making olddefconfig
--
  HOSTCC  scripts/kconfig/util.o
  HOSTLD  scripts/kconfig/conf
#
# configuration written to .config
#
Starting Build
  SYSHDR  arch/x86/include/generated/uapi/asm/unistd_32.h
  SYSHDR  arch/x86/include/generated/uapi/asm/unistd_64.h
  SYSHDR  arch/x86/include/generated/uapi/asm/unistd_x32.h
  SYSTBL  arch/x86/include/generated/asm/syscalls_32.h
  SYSHDR  arch/x86/include/generated/asm/unistd_32_ia32.h
--
  BTF [M] sound/virtio/virtio_snd.ko
  LD [M]  sound/xen/snd_xen_front.ko
  BTF [M] sound/xen/snd_xen_front.ko
  LD [M]  virt/lib/irqbypass.ko
  BTF [M] virt/lib/irqbypass.ko
[TIMER]{BUILD}: 1049s
Making Modules
  INSTALL /lib/modules/5.14.0-bmastbergen_ciqlts9_2_many-vulns-9-26-25-0e2c8c19c76e+/kernel/arch/x86/crypto/blowfish-x86_64.ko
  INSTALL /lib/modules/5.14.0-bmastbergen_ciqlts9_2_many-vulns-9-26-25-0e2c8c19c76e+/kernel/arch/x86/crypto/blake2s-x86_64.ko
  INSTALL /lib/modules/5.14.0-bmastbergen_ciqlts9_2_many-vulns-9-26-25-0e2c8c19c76e+/kernel/arch/x86/crypto/camellia-aesni-avx-x86_64.ko
  INSTALL /lib/modules/5.14.0-bmastbergen_ciqlts9_2_many-vulns-9-26-25-0e2c8c19c76e+/kernel/arch/x86/crypto/camellia-x86_64.ko
--
  SIGN    /lib/modules/5.14.0-bmastbergen_ciqlts9_2_many-vulns-9-26-25-0e2c8c19c76e+/kernel/sound/virtio/virtio_snd.ko
  SIGN    /lib/modules/5.14.0-bmastbergen_ciqlts9_2_many-vulns-9-26-25-0e2c8c19c76e+/kernel/sound/x86/snd-hdmi-lpe-audio.ko
  SIGN    /lib/modules/5.14.0-bmastbergen_ciqlts9_2_many-vulns-9-26-25-0e2c8c19c76e+/kernel/sound/xen/snd_xen_front.ko
  SIGN    /lib/modules/5.14.0-bmastbergen_ciqlts9_2_many-vulns-9-26-25-0e2c8c19c76e+/kernel/virt/lib/irqbypass.ko
  DEPMOD  /lib/modules/5.14.0-bmastbergen_ciqlts9_2_many-vulns-9-26-25-0e2c8c19c76e+
[TIMER]{MODULES}: 7s
Making Install
sh ./arch/x86/boot/install.sh \
	5.14.0-bmastbergen_ciqlts9_2_many-vulns-9-26-25-0e2c8c19c76e+ arch/x86/boot/bzImage \
	System.map "/boot"
[TIMER]{INSTALL}: 58s
Checking kABI
kABI check passed
Setting Default Kernel to /boot/vmlinuz-5.14.0-bmastbergen_ciqlts9_2_many-vulns-9-26-25-c21a3683a705+ and Index to 3
Hopefully Grub2.0 took everything ... rebooting after time metrices
[TIMER]{MRPROPER}: 9s
[TIMER]{BUILD}: 1049s
[TIMER]{MODULES}: 7s
[TIMER]{INSTALL}: 58s
[TIMER]{TOTAL} 1143s
Rebooting in 10 seconds

Testing

selftest-5.14.0-284.30.1.el9_2.92ciq_lts.11.1.x86_64-1.log

selftest-5.14.0-bmastbergen_ciqlts9_2_many-vulns-9-26-25-0e2c8c19c76e+-1.log

brett@chewbacca ~/ciq/many-92-vulns-9-26-25
 % grep ^ok selftest-5.14.0-284.30.1.el9_2.92ciq_lts.11.1.x86_64-1.log | wc -l
343
brett@chewbacca ~/ciq/many-92-vulns-9-26-25
 % grep ^ok selftest-5.14.0-bmastbergen_ciqlts9_2_many-vulns-9-26-25-0e2c8c19c76e+-1.log | wc -l
346
brett@chewbacca ~/ciq/many-92-vulns-9-26-25
 % grep ok <(diff -adU0 <(grep ^ok selftest-5.14.0-284.30.1.el9_2.92ciq_lts.11.1.x86_64-1.log | sort -h) <(grep ^ok selftest-5.14.0-bmastbergen_ciqlts9_2_many-vulns-9-26-25-0e2c8c19c76e+-1.log | sort -h))
-ok 1 selftests: livepatch: test-livepatch.sh # SKIP
+ok 1 selftests: livepatch: test-livepatch.sh
-ok 1 selftests: zram: zram.sh # SKIP
+ok 1 selftests: zram: zram.sh
-ok 2 selftests: livepatch: test-callbacks.sh # SKIP
+ok 2 selftests: livepatch: test-callbacks.sh
+ok 32 selftests: net: l2tp.sh
-ok 3 selftests: livepatch: test-shadow-vars.sh # SKIP
+ok 3 selftests: livepatch: test-shadow-vars.sh
+ok 47 selftests: net: drop_monitor_tests.sh
-ok 4 selftests: livepatch: test-state.sh # SKIP
+ok 4 selftests: livepatch: test-state.sh
-ok 5 selftests: livepatch: test-ftrace.sh # SKIP
+ok 5 selftests: livepatch: test-ftrace.sh
+ok 9 selftests: net: test_bpf.sh
brett@chewbacca ~/ciq/many-92-vulns-9-26-25
 %

jira VULN-67318
cve-pre CVE-2023-53100
commit-author Ye Bin <yebin10@huawei.com>
commit 1dcdce5

The only caller of ext4_find_inline_data_nolock() that needs setting of
EXT4_STATE_MAY_INLINE_DATA flag is ext4_iget_extra_inode().  In
ext4_write_inline_data_end() we just need to update inode->i_inline_off.
Since we are going to add one more caller that does not need to set
EXT4_STATE_MAY_INLINE_DATA, just move setting of EXT4_STATE_MAY_INLINE_DATA
out to ext4_iget_extra_inode().

	Signed-off-by: Ye Bin <yebin10@huawei.com>
	Cc: stable@kernel.org
	Reviewed-by: Jan Kara <jack@suse.cz>
Link: https://lore.kernel.org/r/20230307015253.2232062-2-yebin@huaweicloud.com
	Signed-off-by: Theodore Ts'o <tytso@mit.edu>
(cherry picked from commit 1dcdce5)
	Signed-off-by: Brett Mastbergen <bmastbergen@ciq.com>
jira VULN-67318
cve CVE-2023-53100
commit-author Ye Bin <yebin10@huawei.com>
commit 2b96b4a

Syzbot found the following issue:
EXT4-fs (loop0): mounted filesystem 00000000-0000-0000-0000-000000000000 without journal. Quota mode: none.
fscrypt: AES-256-CTS-CBC using implementation "cts-cbc-aes-aesni"
fscrypt: AES-256-XTS using implementation "xts-aes-aesni"
------------[ cut here ]------------
WARNING: CPU: 0 PID: 5071 at mm/page_alloc.c:5525 __alloc_pages+0x30a/0x560 mm/page_alloc.c:5525
Modules linked in:
CPU: 1 PID: 5071 Comm: syz-executor263 Not tainted 6.2.0-rc1-syzkaller #0
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 10/26/2022
RIP: 0010:__alloc_pages+0x30a/0x560 mm/page_alloc.c:5525
RSP: 0018:ffffc90003c2f1c0 EFLAGS: 00010246
RAX: ffffc90003c2f220 RBX: 0000000000000014 RCX: 0000000000000000
RDX: 0000000000000028 RSI: 0000000000000000 RDI: ffffc90003c2f248
RBP: ffffc90003c2f2d8 R08: dffffc0000000000 R09: ffffc90003c2f220
R10: fffff52000785e49 R11: 1ffff92000785e44 R12: 0000000000040d40
R13: 1ffff92000785e40 R14: dffffc0000000000 R15: 1ffff92000785e3c
FS:  0000555556c0d300(0000) GS:ffff8880b9800000(0000) knlGS:0000000000000000
CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 00007f95d5e04138 CR3: 00000000793aa000 CR4: 00000000003506f0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
Call Trace:
 <TASK>
 __alloc_pages_node include/linux/gfp.h:237 [inline]
 alloc_pages_node include/linux/gfp.h:260 [inline]
 __kmalloc_large_node+0x95/0x1e0 mm/slab_common.c:1113
 __do_kmalloc_node mm/slab_common.c:956 [inline]
 __kmalloc+0xfe/0x190 mm/slab_common.c:981
 kmalloc include/linux/slab.h:584 [inline]
 kzalloc include/linux/slab.h:720 [inline]
 ext4_update_inline_data+0x236/0x6b0 fs/ext4/inline.c:346
 ext4_update_inline_dir fs/ext4/inline.c:1115 [inline]
 ext4_try_add_inline_entry+0x328/0x990 fs/ext4/inline.c:1307
 ext4_add_entry+0x5a4/0xeb0 fs/ext4/namei.c:2385
 ext4_add_nondir+0x96/0x260 fs/ext4/namei.c:2772
 ext4_create+0x36c/0x560 fs/ext4/namei.c:2817
 lookup_open fs/namei.c:3413 [inline]
 open_last_lookups fs/namei.c:3481 [inline]
 path_openat+0x12ac/0x2dd0 fs/namei.c:3711
 do_filp_open+0x264/0x4f0 fs/namei.c:3741
 do_sys_openat2+0x124/0x4e0 fs/open.c:1310
 do_sys_open fs/open.c:1326 [inline]
 __do_sys_openat fs/open.c:1342 [inline]
 __se_sys_openat fs/open.c:1337 [inline]
 __x64_sys_openat+0x243/0x290 fs/open.c:1337
 do_syscall_x64 arch/x86/entry/common.c:50 [inline]
 do_syscall_64+0x3d/0xb0 arch/x86/entry/common.c:80
 entry_SYSCALL_64_after_hwframe+0x63/0xcd

Above issue happens as follows:
ext4_iget
   ext4_find_inline_data_nolock ->i_inline_off=164 i_inline_size=60
ext4_try_add_inline_entry
   __ext4_mark_inode_dirty
      ext4_expand_extra_isize_ea ->i_extra_isize=32 s_want_extra_isize=44
         ext4_xattr_shift_entries
	 ->after shift i_inline_off is incorrect, actually is change to 176
ext4_try_add_inline_entry
  ext4_update_inline_dir
    get_max_inline_xattr_value_size
      if (EXT4_I(inode)->i_inline_off)
	entry = (struct ext4_xattr_entry *)((void *)raw_inode +
			EXT4_I(inode)->i_inline_off);
        free += EXT4_XATTR_SIZE(le32_to_cpu(entry->e_value_size));
	->As entry is incorrect, then 'free' may be negative
   ext4_update_inline_data
      value = kzalloc(len, GFP_NOFS);
      -> len is unsigned int, maybe very large, then trigger warning when
         'kzalloc()'

To resolve the above issue we need to update 'i_inline_off' after
'ext4_xattr_shift_entries()'.  We do not need to set
EXT4_STATE_MAY_INLINE_DATA flag here, since ext4_mark_inode_dirty()
already sets this flag if needed.  Setting EXT4_STATE_MAY_INLINE_DATA
when it is needed may trigger a BUG_ON in ext4_writepages().

	Reported-by: syzbot+d30838395804afc2fa6f@syzkaller.appspotmail.com
	Cc: stable@kernel.org
	Signed-off-by: Ye Bin <yebin10@huawei.com>
	Reviewed-by: Jan Kara <jack@suse.cz>
Link: https://lore.kernel.org/r/20230307015253.2232062-3-yebin@huaweicloud.com
	Signed-off-by: Theodore Ts'o <tytso@mit.edu>
(cherry picked from commit 2b96b4a)
	Signed-off-by: Brett Mastbergen <bmastbergen@ciq.com>
jira VULN-65380
cve-pre CVE-2025-22121
commit-author Theodore Ts'o <tytso@mit.edu>
commit 3478c83

Refactor the in-inode and xattr block consistency checking, and report
more fine-grained reports of the consistency problems.  Also add more
consistency checks for ea_inode number.

	Reviewed-by: Andreas Dilger <adilger@dilger.ca>
	Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Link: https://lore.kernel.org/r/20221214200818.870087-1-tytso@mit.edu
	Signed-off-by: Theodore Ts'o <tytso@mit.edu>
(cherry picked from commit 3478c83)
	Signed-off-by: Brett Mastbergen <bmastbergen@ciq.com>
jira VULN-65380
cve-pre CVE-2025-22121
commit-author Ye Bin <yebin10@huawei.com>
commit 69f3a30

Introduce ITAIL helper to get the bound of xattr in inode.

	Signed-off-by: Ye Bin <yebin10@huawei.com>
	Reviewed-by: Jan Kara <jack@suse.cz>
Link: https://patch.msgid.link/20250208063141.1539283-2-yebin@huaweicloud.com
	Signed-off-by: Theodore Ts'o <tytso@mit.edu>
(cherry picked from commit 69f3a30)
	Signed-off-by: Brett Mastbergen <bmastbergen@ciq.com>
jira VULN-65380
cve CVE-2025-22121
commit-author Ye Bin <yebin10@huawei.com>
commit 5701875

There's issue as follows:
BUG: KASAN: use-after-free in ext4_xattr_inode_dec_ref_all+0x6ff/0x790
Read of size 4 at addr ffff88807b003000 by task syz-executor.0/15172

CPU: 3 PID: 15172 Comm: syz-executor.0
Call Trace:
 __dump_stack lib/dump_stack.c:82 [inline]
 dump_stack+0xbe/0xfd lib/dump_stack.c:123
 print_address_description.constprop.0+0x1e/0x280 mm/kasan/report.c:400
 __kasan_report.cold+0x6c/0x84 mm/kasan/report.c:560
 kasan_report+0x3a/0x50 mm/kasan/report.c:585
 ext4_xattr_inode_dec_ref_all+0x6ff/0x790 fs/ext4/xattr.c:1137
 ext4_xattr_delete_inode+0x4c7/0xda0 fs/ext4/xattr.c:2896
 ext4_evict_inode+0xb3b/0x1670 fs/ext4/inode.c:323
 evict+0x39f/0x880 fs/inode.c:622
 iput_final fs/inode.c:1746 [inline]
 iput fs/inode.c:1772 [inline]
 iput+0x525/0x6c0 fs/inode.c:1758
 ext4_orphan_cleanup fs/ext4/super.c:3298 [inline]
 ext4_fill_super+0x8c57/0xba40 fs/ext4/super.c:5300
 mount_bdev+0x355/0x410 fs/super.c:1446
 legacy_get_tree+0xfe/0x220 fs/fs_context.c:611
 vfs_get_tree+0x8d/0x2f0 fs/super.c:1576
 do_new_mount fs/namespace.c:2983 [inline]
 path_mount+0x119a/0x1ad0 fs/namespace.c:3316
 do_mount+0xfc/0x110 fs/namespace.c:3329
 __do_sys_mount fs/namespace.c:3540 [inline]
 __se_sys_mount+0x219/0x2e0 fs/namespace.c:3514
 do_syscall_64+0x33/0x40 arch/x86/entry/common.c:46
 entry_SYSCALL_64_after_hwframe+0x67/0xd1

Memory state around the buggy address:
 ffff88807b002f00: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 ffff88807b002f80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>ffff88807b003000: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
                   ^
 ffff88807b003080: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
 ffff88807b003100: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff

Above issue happens as ext4_xattr_delete_inode() isn't check xattr
is valid if xattr is in inode.
To solve above issue call xattr_check_inode() check if xattr if valid
in inode. In fact, we can directly verify in ext4_iget_extra_inode(),
so that there is no divergent verification.

Fixes: e50e512 ("ext4: xattr-in-inode support")
	Signed-off-by: Ye Bin <yebin10@huawei.com>
	Reviewed-by: Jan Kara <jack@suse.cz>
Link: https://patch.msgid.link/20250208063141.1539283-3-yebin@huaweicloud.com
	Signed-off-by: Theodore Ts'o <tytso@mit.edu>
(cherry picked from commit 5701875)
	Signed-off-by: Brett Mastbergen <bmastbergen@ciq.com>
jira VULN-65357
cve-pre CVE-2025-22113
commit-author Theodore Ts'o <tytso@mit.edu>
commit bb15cea
upstream-diff |
  Ignored the changes to the `ext4_maybe_update_superblock()' function
  introduced by ff0722d which is missing
  from ciqlts9_2 history and is not functionally neutral.

The most common use that s_error_work will get scheduled is now the
periodic update of the superblock.  So rename it to s_sb_upd_work.

Also rename the function flush_stashed_error_work() to
update_super_work().

	Signed-off-by: Theodore Ts'o <tytso@mit.edu>
(cherry picked from commit bb15cea)
	Signed-off-by: Brett Mastbergen <bmastbergen@ciq.com>
jira VULN-65357
cve-pre CVE-2025-22113
commit-author Ojaswin Mujoo <ojaswin@linux.ibm.com>
commit 5a02a62

Define an ext4 wrapper over jbd2_journal_destroy to make sure we
have consistent behavior during journal destruction. This will also
come useful in the next patch where we add some ext4 specific logic
in the destroy path.

	Reviewed-by: Jan Kara <jack@suse.cz>
	Reviewed-by: Baokun Li <libaokun1@huawei.com>
	Signed-off-by: Ojaswin Mujoo <ojaswin@linux.ibm.com>
Link: https://patch.msgid.link/c3ba78c5c419757e6d5f2d8ebb4a8ce9d21da86a.1742279837.git.ojaswin@linux.ibm.com
	Signed-off-by: Theodore Ts'o <tytso@mit.edu>
(cherry picked from commit 5a02a62)
	Signed-off-by: Brett Mastbergen <bmastbergen@ciq.com>
jira VULN-65357
cve CVE-2025-22113
commit-author Ojaswin Mujoo <ojaswin@linux.ibm.com>
commit ce2f26e

Presently we always BUG_ON if trying to start a transaction on a journal marked
with JBD2_UNMOUNT, since this should never happen. However, while ltp running
stress tests, it was observed that in case of some error handling paths, it is
possible for update_super_work to start a transaction after the journal is
destroyed eg:

(umount)
ext4_kill_sb
  kill_block_super
    generic_shutdown_super
      sync_filesystem /* commits all txns */
      evict_inodes
        /* might start a new txn */
      ext4_put_super
	flush_work(&sbi->s_sb_upd_work) /* flush the workqueue */
        jbd2_journal_destroy
          journal_kill_thread
            journal->j_flags |= JBD2_UNMOUNT;
          jbd2_journal_commit_transaction
            jbd2_journal_get_descriptor_buffer
              jbd2_journal_bmap
                ext4_journal_bmap
                  ext4_map_blocks
                    ...
                    ext4_inode_error
                      ext4_handle_error
                        schedule_work(&sbi->s_sb_upd_work)

                                               /* work queue kicks in */
                                               update_super_work
                                                 jbd2_journal_start
                                                   start_this_handle
                                                     BUG_ON(journal->j_flags &
                                                            JBD2_UNMOUNT)

Hence, introduce a new mount flag to indicate journal is destroying and only do
a journaled (and deferred) update of sb if this flag is not set. Otherwise, just
fallback to an un-journaled commit.

Further, in the journal destroy path, we have the following sequence:

  1. Set mount flag indicating journal is destroying
  2. force a commit and wait for it
  3. flush pending sb updates

This sequence is important as it ensures that, after this point, there is no sb
update that might be journaled so it is safe to update the sb outside the
journal. (To avoid race discussed in 2d01ddc)

Also, we don't need a similar check in ext4_grp_locked_error since it is only
called from mballoc and AFAICT it would be always valid to schedule work here.

Fixes: 2d01ddc ("ext4: save error info to sb through journal if available")
	Reported-by: Mahesh Kumar <maheshkumar657g@gmail.com>
	Signed-off-by: Ojaswin Mujoo <ojaswin@linux.ibm.com>
	Reviewed-by: Jan Kara <jack@suse.cz>
Link: https://patch.msgid.link/9613c465d6ff00cd315602f99283d5f24018c3f7.1742279837.git.ojaswin@linux.ibm.com
	Signed-off-by: Theodore Ts'o <tytso@mit.edu>
(cherry picked from commit ce2f26e)
	Signed-off-by: Brett Mastbergen <bmastbergen@ciq.com>
Copy link
Collaborator

@PlaidCat PlaidCat left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

:shipit:

Copy link
Collaborator

@kerneltoast kerneltoast left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🚢

Using my WIP modded version of interdiff, I compared all of these backports to their upstream commits and the only differences were the enum in fs/ext4/ext4.h that needed a conflict resolution for that new addition to it, and the missing s_sb_upd_work rename in ext4_maybe_update_superblock() since this kernel doesn't have it.

The interdiff-assisted PR review future is near!

@bmastbergen bmastbergen merged commit 7a7f1c0 into ciqlts9_2 Sep 30, 2025
4 checks passed
@bmastbergen bmastbergen deleted the bmastbergen_ciqlts9_2/many-vulns-9-26-25 branch September 30, 2025 14:31
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

Successfully merging this pull request may close these issues.

3 participants