All of lore.kernel.org
 help / color / mirror / Atom feed
[parent not found: <20250923061138.1081531-1-kartikey406@gmail.com>]
* [PATCH] ext4: skip inode expansion on  readonly filesystems
@ 2025-09-23  5:02 Deepanshu Kartikey
  2025-09-23  5:43 ` [syzbot] [ext4?] WARNING in ext4_xattr_block_set (3) syzbot
  0 siblings, 1 reply; 5+ messages in thread
From: Deepanshu Kartikey @ 2025-09-23  5:02 UTC (permalink / raw)
  To: syzbot+4c9d23743a2409b80293; +Cc: linux-ext4, Deepanshu Kartikey

#syz test: git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master


Fix WARNING in ext4_xattr_block_set() during orphan cleanup on readonly
filesystems when debug_want_extra_isize mount option is used.
The issue occurs when ext4_try_to_expand_extra_isize() attempts to modify
inodes on readonly filesystems during orphan cleanup, leading to warnings
when encountering invalid xattr entries. Add a readonly check to skip
expansion in this case.

Reported-by: syzbot+4c9d23743a2409b80293@syzkaller.appspotmail.com
Link: https://syzkaller.appspot.com/bug?extid=4c9d23743a2409b80293
Signed-off-by: Deepanshu Kartikey <kartikey406@gmail.com>
---
 fs/ext4/inode.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/fs/ext4/inode.c b/fs/ext4/inode.c
index 5b7a15db4953..ff51a4567c4f 100644
--- a/fs/ext4/inode.c
+++ b/fs/ext4/inode.c
@@ -6345,7 +6345,8 @@ static int __ext4_expand_extra_isize(struct inode *inode,
 	unsigned int inode_size = EXT4_INODE_SIZE(inode->i_sb);
 	struct ext4_inode_info *ei = EXT4_I(inode);
 	int error;
-
+	if (sb_rdonly(inode->i_sb))
+		return 0;
 	/* this was checked at iget time, but double check for good measure */
 	if ((EXT4_GOOD_OLD_INODE_SIZE + ei->i_extra_isize > inode_size) ||
 	    (ei->i_extra_isize & 3)) {
@@ -6403,6 +6404,8 @@ static int ext4_try_to_expand_extra_isize(struct inode *inode,
 					  struct ext4_iloc iloc,
 					  handle_t *handle)
 {
+	if (sb_rdonly(inode->i_sb))
+		return 0;
 	int no_expand;
 	int error;
 
-- 
2.43.0


^ permalink raw reply related	[flat|nested] 5+ messages in thread
* [PATCH] ext4: skip inode expansion on readonly filesystems
@ 2025-09-23  2:31 Deepanshu Kartikey
  2025-09-23  3:22 ` [syzbot] [ext4?] WARNING in ext4_xattr_block_set (3) syzbot
  0 siblings, 1 reply; 5+ messages in thread
From: Deepanshu Kartikey @ 2025-09-23  2:31 UTC (permalink / raw)
  To: syzbot+4c9d23743a2409b80293; +Cc: linux-kernel, Deepanshu Kartikey

#syz test: git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master


Fix WARNING in ext4_xattr_block_set() during orphan cleanup on readonly
filesystems when debug_want_extra_isize mount option is used.
The issue occurs when ext4_try_to_expand_extra_isize() attempts to modify
inodes on readonly filesystems during orphan cleanup, leading to warnings
when encountering invalid xattr entries. Add a readonly check to skip
expansion in this case.

Reported-by: syzbot+4c9d23743a2409b80293@syzkaller.appspotmail.com
Link: https://syzkaller.appspot.com/bug?extid=4c9d23743a2409b80293
Signed-off-by: Deepanshu Kartikey <kartikey406@gmail.com>
---
 fs/ext4/inode.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/fs/ext4/inode.c b/fs/ext4/inode.c
index 5b7a15db4953..480f1f616e7b 100644
--- a/fs/ext4/inode.c
+++ b/fs/ext4/inode.c
@@ -6403,6 +6403,8 @@ static int ext4_try_to_expand_extra_isize(struct inode *inode,
 					  struct ext4_iloc iloc,
 					  handle_t *handle)
 {
+	if (sb_rdonly(inode->i_sb))
+		return 0;
 	int no_expand;
 	int error;
 
-- 
2.43.0


^ permalink raw reply related	[flat|nested] 5+ messages in thread
* [syzbot] [ext4?] WARNING in ext4_xattr_block_set (3)
@ 2025-09-16 20:09 syzbot
  0 siblings, 0 replies; 5+ messages in thread
From: syzbot @ 2025-09-16 20:09 UTC (permalink / raw)
  To: adilger.kernel, linux-ext4, linux-kernel, syzkaller-bugs, tytso

Hello,

syzbot found the following issue on:

HEAD commit:    46a51f4f5eda Merge tag 'for-v6.17-rc' of git://git.kernel...
git tree:       upstream
console output: https://syzkaller.appspot.com/x/log.txt?x=1709747c580000
kernel config:  https://syzkaller.appspot.com/x/.config?x=f5b21423ca3f0a96
dashboard link: https://syzkaller.appspot.com/bug?extid=4c9d23743a2409b80293
compiler:       Debian clang version 20.1.8 (++20250708063551+0c9f909b7976-1~exp1~20250708183702.136), Debian LLD 20.1.8
syz repro:      https://syzkaller.appspot.com/x/repro.syz?x=1089747c580000
C reproducer:   https://syzkaller.appspot.com/x/repro.c?x=100fcf62580000

Downloadable assets:
disk image: https://storage.googleapis.com/syzbot-assets/230712d5bcfe/disk-46a51f4f.raw.xz
vmlinux: https://storage.googleapis.com/syzbot-assets/c02b11d16746/vmlinux-46a51f4f.xz
kernel image: https://storage.googleapis.com/syzbot-assets/c1526fd71bea/bzImage-46a51f4f.xz
mounted in repro: https://storage.googleapis.com/syzbot-assets/c8e39bedb73d/mount_0.gz
  fsck result: failed (log: https://syzkaller.appspot.com/x/fsck.log?x=17b2fb12580000)

IMPORTANT: if you fix the issue, please add the following tag to the commit:
Reported-by: syzbot+4c9d23743a2409b80293@syzkaller.appspotmail.com

loop0: detected capacity change from 0 to 512
EXT4-fs (loop0): orphan cleanup on readonly fs
------------[ cut here ]------------
WARNING: CPU: 1 PID: 6102 at fs/ext4/xattr.c:1906 ext4_xattr_block_set+0x25b5/0x2ac0 fs/ext4/xattr.c:1906
Modules linked in:
CPU: 1 UID: 0 PID: 6102 Comm: syz.0.17 Not tainted syzkaller #0 PREEMPT_{RT,(full)} 
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 08/18/2025
RIP: 0010:ext4_xattr_block_set+0x25b5/0x2ac0 fs/ext4/xattr.c:1906
Code: 00 00 00 e8 dd 71 a2 ff f0 80 63 28 fd eb 28 e8 71 34 43 ff 31 db 48 c7 44 24 20 00 00 00 00 e9 88 f1 ff ff e8 5c 34 43 ff 90 <0f> 0b 90 e9 0e dc ff ff e8 4e 34 43 ff 48 8b 5c 24 10 4c 8b 74 24
RSP: 0018:ffffc90003e77220 EFLAGS: 00010293
RAX: ffffffff827b39b4 RBX: ffffc90003e77548 RCX: ffff88802e9a8000
RDX: 0000000000000000 RSI: 0000000000000000 RDI: 0000000000000000
RBP: ffffc90003e77408 R08: 0000000000000000 R09: 0000000000000000
R10: ffff88805487c400 R11: ffff88805487c000 R12: 0000000000000000
R13: 1ffff920007ceeaa R14: 1ffff920007ceea9 R15: ffffc90003e77550
FS:  000055556e470500(0000) GS:ffff8881269bc000(0000) knlGS:0000000000000000
CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 00005624941c2138 CR3: 000000004081c000 CR4: 00000000003526f0
Call Trace:
 <TASK>
 ext4_xattr_move_to_block fs/ext4/xattr.c:2659 [inline]
 ext4_xattr_make_inode_space fs/ext4/xattr.c:2734 [inline]
 ext4_expand_extra_isize_ea+0x12d5/0x1ea0 fs/ext4/xattr.c:2822
 __ext4_expand_extra_isize+0x30d/0x400 fs/ext4/inode.c:6385
 ext4_try_to_expand_extra_isize fs/ext4/inode.c:6428 [inline]
 __ext4_mark_inode_dirty+0x46c/0x700 fs/ext4/inode.c:6506
 ext4_evict_inode+0x80d/0xee0 fs/ext4/inode.c:254
 evict+0x504/0x9c0 fs/inode.c:810
 ext4_orphan_cleanup+0xc20/0x1460 fs/ext4/orphan.c:474
 __ext4_fill_super fs/ext4/super.c:5609 [inline]
 ext4_fill_super+0x57fa/0x60b0 fs/ext4/super.c:5728
 get_tree_bdev_flags+0x40e/0x4d0 fs/super.c:1692
 vfs_get_tree+0x8f/0x2b0 fs/super.c:1815
 do_new_mount+0x2a2/0x9e0 fs/namespace.c:3808
 do_mount fs/namespace.c:4136 [inline]
 __do_sys_mount fs/namespace.c:4347 [inline]
 __se_sys_mount+0x317/0x410 fs/namespace.c:4324
 do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]
 do_syscall_64+0xfa/0x3b0 arch/x86/entry/syscall_64.c:94
 entry_SYSCALL_64_after_hwframe+0x77/0x7f
RIP: 0033:0x7f976e92034a
Code: d8 64 89 02 48 c7 c0 ff ff ff ff eb a6 e8 de 1a 00 00 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 40 00 49 89 ca b8 a5 00 00 00 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 c7 c1 a8 ff ff ff f7 d8 64 89 01 48
RSP: 002b:00007ffc3b5e27e8 EFLAGS: 00000246 ORIG_RAX: 00000000000000a5
RAX: ffffffffffffffda RBX: 00007ffc3b5e2870 RCX: 00007f976e92034a
RDX: 0000200000000180 RSI: 00002000000001c0 RDI: 00007ffc3b5e2830
RBP: 0000200000000180 R08: 00007ffc3b5e2870 R09: 000000000080078b
R10: 000000000080078b R11: 0000000000000246 R12: 00002000000001c0
R13: 00007ffc3b5e2830 R14: 0000000000000473 R15: 0000200000000680
 </TASK>


---
This report is generated by a bot. It may contain errors.
See https://goo.gl/tpsmEJ for more information about syzbot.
syzbot engineers can be reached at syzkaller@googlegroups.com.

syzbot will keep track of this issue. See:
https://goo.gl/tpsmEJ#status for how to communicate with syzbot.

If the report is already addressed, let syzbot know by replying with:
#syz fix: exact-commit-title

If you want syzbot to run the reproducer, reply with:
#syz test: git://repo/address.git branch-or-commit-hash
If you attach or paste a git patch, syzbot will apply it before testing.

If you want to overwrite report's subsystems, reply with:
#syz set subsystems: new-subsystem
(See the list of subsystem names on the web dashboard)

If the report is a duplicate of another one, reply with:
#syz dup: exact-subject-of-another-report

If you want to undo deduplication, reply with:
#syz undup

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2025-09-23  8:55 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
     [not found] <20250923083522.1086124-1-kartikey406@gmail.com>
2025-09-23  8:55 ` [syzbot] [ext4?] WARNING in ext4_xattr_block_set (3) syzbot
     [not found] <20250923061138.1081531-1-kartikey406@gmail.com>
2025-09-23  6:29 ` syzbot
2025-09-23  5:02 [PATCH] ext4: skip inode expansion on readonly filesystems Deepanshu Kartikey
2025-09-23  5:43 ` [syzbot] [ext4?] WARNING in ext4_xattr_block_set (3) syzbot
  -- strict thread matches above, loose matches on Subject: below --
2025-09-23  2:31 [PATCH] ext4: skip inode expansion on readonly filesystems Deepanshu Kartikey
2025-09-23  3:22 ` [syzbot] [ext4?] WARNING in ext4_xattr_block_set (3) syzbot
2025-09-16 20:09 syzbot

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.