loop0: detected capacity change from 0 to 262144
JBD2: Ignoring recovery information on journal
ocfs2: Mounting device (7,0) on (node local, slot 0) with ordered data mode.
loop0: detected capacity change from 262144 to 0
syz.0.0: attempt to access beyond end of device
loop0: rw=0, sector=143760, nr_sectors = 8 limit=0
(syz.0.0,5315,0):__ocfs2_xattr_set_value_outside:1385 ERROR: status = -5
(syz.0.0,5315,0):ocfs2_xa_set:2260 ERROR: status = -5
(syz.0.0,5315,0):ocfs2_xattr_ibody_set:2798 ERROR: status = -5
syz.0.0: attempt to access beyond end of device
loop0: rw=0, sector=143768, nr_sectors = 8 limit=0
(syz.0.0,5315,0):__ocfs2_xattr_set_value_outside:1385 ERROR: status = -5
(syz.0.0,5315,0):ocfs2_xa_set:2260 ERROR: status = -5
(syz.0.0,5315,0):ocfs2_xattr_ibody_set:2798 ERROR: status = -5
======================================================
WARNING: possible circular locking dependency detected
6.13.0-rc7-syzkaller-00191-gfda5e3f28400 #0 Not tainted
------------------------------------------------------
syz.0.0/5315 is trying to acquire lock:
ffff888032ef0958 (jbd2_handle){++++}-{0:0}, at: start_this_handle+0x1e94/0x2110 fs/jbd2/transaction.c:448
but task is already holding lock:
ffff888058c114a0 (&oi->ip_alloc_sem){++++}-{4:4}, at: ocfs2_xattr_ibody_set+0x12c/0xd00 fs/ocfs2/xattr.c:2783
which lock already depends on the new lock.
the existing dependency chain (in reverse order) is:
-> #1 (&oi->ip_alloc_sem){++++}-{4:4}:
lock_acquire+0x1ed/0x550 kernel/locking/lockdep.c:5849
down_write+0x99/0x220 kernel/locking/rwsem.c:1577
ocfs2_xattr_ibody_set+0x12c/0xd00 fs/ocfs2/xattr.c:2783
__ocfs2_xattr_set_handle+0x128/0x10a0 fs/ocfs2/xattr.c:3322
ocfs2_xattr_set+0x128c/0x1930 fs/ocfs2/xattr.c:3650
__vfs_setxattr+0x468/0x4a0 fs/xattr.c:200
__vfs_setxattr_noperm+0x12e/0x660 fs/xattr.c:234
vfs_setxattr+0x221/0x430 fs/xattr.c:321
do_setxattr fs/xattr.c:636 [inline]
file_setxattr+0x1e2/0x2b0 fs/xattr.c:646
path_setxattrat+0x483/0x510 fs/xattr.c:711
__do_sys_fsetxattr fs/xattr.c:761 [inline]
__se_sys_fsetxattr fs/xattr.c:758 [inline]
__x64_sys_fsetxattr+0xbc/0xe0 fs/xattr.c:758
do_syscall_x64 arch/x86/entry/common.c:52 [inline]
do_syscall_64+0xf3/0x230 arch/x86/entry/common.c:83
entry_SYSCALL_64_after_hwframe+0x77/0x7f
-> #0 (jbd2_handle){++++}-{0:0}:
check_prev_add kernel/locking/lockdep.c:3161 [inline]
check_prevs_add kernel/locking/lockdep.c:3280 [inline]
validate_chain+0x18ef/0x5920 kernel/locking/lockdep.c:3904
__lock_acquire+0x1397/0x2100 kernel/locking/lockdep.c:5226
lock_acquire+0x1ed/0x550 kernel/locking/lockdep.c:5849
start_this_handle+0x1eb4/0x2110 fs/jbd2/transaction.c:448
jbd2__journal_restart+0x243/0x690 fs/jbd2/transaction.c:800
ocfs2_extend_trans+0x2d7/0x750 fs/ocfs2/journal.c:435
ocfs2_extend_rotate_transaction fs/ocfs2/alloc.c:2296 [inline]
ocfs2_truncate_rec+0x91f/0x1c90 fs/ocfs2/alloc.c:5433
ocfs2_remove_extent+0x1033/0x25f0 fs/ocfs2/alloc.c:5581
__ocfs2_remove_xattr_range fs/ocfs2/xattr.c:779 [inline]
ocfs2_xattr_shrink_size fs/ocfs2/xattr.c:832 [inline]
ocfs2_xattr_value_truncate+0xec5/0x1960 fs/ocfs2/xattr.c:868
ocfs2_xa_value_truncate fs/ocfs2/xattr.c:1915 [inline]
ocfs2_xa_reuse_entry fs/ocfs2/xattr.c:2088 [inline]
ocfs2_xa_prepare_entry fs/ocfs2/xattr.c:2141 [inline]
ocfs2_xa_set+0x1284/0x2c60 fs/ocfs2/xattr.c:2251
ocfs2_xattr_ibody_set+0x534/0xd00 fs/ocfs2/xattr.c:2795
__ocfs2_xattr_set_handle+0x128/0x10a0 fs/ocfs2/xattr.c:3322
ocfs2_xattr_set+0x128c/0x1930 fs/ocfs2/xattr.c:3650
__vfs_setxattr+0x468/0x4a0 fs/xattr.c:200
__vfs_setxattr_noperm+0x12e/0x660 fs/xattr.c:234
vfs_setxattr+0x221/0x430 fs/xattr.c:321
do_setxattr fs/xattr.c:636 [inline]
filename_setxattr+0x2af/0x430 fs/xattr.c:665
path_setxattrat+0x440/0x510 fs/xattr.c:713
__do_sys_setxattr fs/xattr.c:747 [inline]
__se_sys_setxattr fs/xattr.c:743 [inline]
__x64_sys_setxattr+0xbc/0xe0 fs/xattr.c:743
do_syscall_x64 arch/x86/entry/common.c:52 [inline]
do_syscall_64+0xf3/0x230 arch/x86/entry/common.c:83
entry_SYSCALL_64_after_hwframe+0x77/0x7f
other info that might help us debug this:
Possible unsafe locking scenario:
CPU0 CPU1
---- ----
lock(&oi->ip_alloc_sem);
lock(jbd2_handle);
lock(&oi->ip_alloc_sem);
rlock(jbd2_handle);
*** DEADLOCK ***
6 locks held by syz.0.0/5315:
#0: ffff888039e1e420 (sb_writers#13){.+.+}-{0:0}, at: mnt_want_write+0x3f/0x90 fs/namespace.c:516
#1: ffff888058c11800 (&sb->s_type->i_mutex_key#21){+.+.}-{4:4}, at: inode_lock include/linux/fs.h:818 [inline]
#1: ffff888058c11800 (&sb->s_type->i_mutex_key#21){+.+.}-{4:4}, at: vfs_setxattr+0x1e1/0x430 fs/xattr.c:320
#2: ffff888058c11538 (&oi->ip_xattr_sem){++++}-{4:4}, at: ocfs2_xattr_set+0x633/0x1930 fs/ocfs2/xattr.c:3583
#3: ffff888039e1e610 (sb_internal#2){.+.+}-{0:0}, at: ocfs2_xattr_set+0x1192/0x1930 fs/ocfs2/xattr.c:3643
#4: ffff8880123e0ce8 (&journal->j_trans_barrier){.+.+}-{4:4}, at: ocfs2_start_trans+0x3be/0x700 fs/ocfs2/journal.c:350
#5: ffff888058c114a0 (&oi->ip_alloc_sem){++++}-{4:4}, at: ocfs2_xattr_ibody_set+0x12c/0xd00 fs/ocfs2/xattr.c:2783
stack backtrace:
CPU: 0 UID: 0 PID: 5315 Comm: syz.0.0 Not tainted 6.13.0-rc7-syzkaller-00191-gfda5e3f28400 #0
Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.16.3-debian-1.16.3-2~bpo12+1 04/01/2014
Call Trace:
__dump_stack lib/dump_stack.c:94 [inline]
dump_stack_lvl+0x241/0x360 lib/dump_stack.c:120
print_circular_bug+0x13a/0x1b0 kernel/locking/lockdep.c:2074
check_noncircular+0x36a/0x4a0 kernel/locking/lockdep.c:2206
check_prev_add kernel/locking/lockdep.c:3161 [inline]
check_prevs_add kernel/locking/lockdep.c:3280 [inline]
validate_chain+0x18ef/0x5920 kernel/locking/lockdep.c:3904
__lock_acquire+0x1397/0x2100 kernel/locking/lockdep.c:5226
lock_acquire+0x1ed/0x550 kernel/locking/lockdep.c:5849
start_this_handle+0x1eb4/0x2110 fs/jbd2/transaction.c:448
jbd2__journal_restart+0x243/0x690 fs/jbd2/transaction.c:800
ocfs2_extend_trans+0x2d7/0x750 fs/ocfs2/journal.c:435
ocfs2_extend_rotate_transaction fs/ocfs2/alloc.c:2296 [inline]
ocfs2_truncate_rec+0x91f/0x1c90 fs/ocfs2/alloc.c:5433
ocfs2_remove_extent+0x1033/0x25f0 fs/ocfs2/alloc.c:5581
__ocfs2_remove_xattr_range fs/ocfs2/xattr.c:779 [inline]
ocfs2_xattr_shrink_size fs/ocfs2/xattr.c:832 [inline]
ocfs2_xattr_value_truncate+0xec5/0x1960 fs/ocfs2/xattr.c:868
ocfs2_xa_value_truncate fs/ocfs2/xattr.c:1915 [inline]
ocfs2_xa_reuse_entry fs/ocfs2/xattr.c:2088 [inline]
ocfs2_xa_prepare_entry fs/ocfs2/xattr.c:2141 [inline]
ocfs2_xa_set+0x1284/0x2c60 fs/ocfs2/xattr.c:2251
ocfs2_xattr_ibody_set+0x534/0xd00 fs/ocfs2/xattr.c:2795
__ocfs2_xattr_set_handle+0x128/0x10a0 fs/ocfs2/xattr.c:3322
ocfs2_xattr_set+0x128c/0x1930 fs/ocfs2/xattr.c:3650
__vfs_setxattr+0x468/0x4a0 fs/xattr.c:200
__vfs_setxattr_noperm+0x12e/0x660 fs/xattr.c:234
vfs_setxattr+0x221/0x430 fs/xattr.c:321
do_setxattr fs/xattr.c:636 [inline]
filename_setxattr+0x2af/0x430 fs/xattr.c:665
path_setxattrat+0x440/0x510 fs/xattr.c:713
__do_sys_setxattr fs/xattr.c:747 [inline]
__se_sys_setxattr fs/xattr.c:743 [inline]
__x64_sys_setxattr+0xbc/0xe0 fs/xattr.c:743
do_syscall_x64 arch/x86/entry/common.c:52 [inline]
do_syscall_64+0xf3/0x230 arch/x86/entry/common.c:83
entry_SYSCALL_64_after_hwframe+0x77/0x7f
RIP: 0033:0x7fc649d85d29
Code: ff ff c3 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 40 00 48 89 f8 48 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 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:00007fc64ac79038 EFLAGS: 00000246 ORIG_RAX: 00000000000000bc
RAX: ffffffffffffffda RBX: 00007fc649f75fa0 RCX: 00007fc649d85d29
RDX: 0000000020000200 RSI: 0000000020000140 RDI: 0000000020000080
RBP: 00007fc649e01b08 R08: 0000000000000002 R09: 0000000000000000
R10: 000000000000002d R11: 0000000000000246 R12: 0000000000000000
R13: 0000000000000000 R14: 00007fc649f75fa0 R15: 00007fff928710c8
(syz.0.0,5315,0):__ocfs2_journal_access:705 ERROR: Error -30 getting 1 access to buffer!
(syz.0.0,5315,0):ocfs2_journal_access_path:751 ERROR: status = -30
(syz.0.0,5315,0):ocfs2_truncate_rec:5443 ERROR: status = -30
(syz.0.0,5315,0):ocfs2_remove_extent:5584 ERROR: status = -30
(syz.0.0,5315,0):__ocfs2_remove_xattr_range:782 ERROR: status = -30
(syz.0.0,5315,0):ocfs2_xattr_shrink_size:836 ERROR: status = -30
(syz.0.0,5315,0):__ocfs2_journal_access:705 ERROR: Error -30 getting 1 access to buffer!
(syz.0.0,5315,0):ocfs2_xa_reuse_entry:2090 ERROR: status = -30
(syz.0.0,5315,0):ocfs2_xa_set:2254 ERROR: status = -30
------------[ cut here ]------------
kernel BUG at fs/jbd2/transaction.c:1513!
Oops: invalid opcode: 0000 [#1] PREEMPT SMP KASAN NOPTI
CPU: 0 UID: 0 PID: 5315 Comm: syz.0.0 Not tainted 6.13.0-rc7-syzkaller-00191-gfda5e3f28400 #0
Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.16.3-debian-1.16.3-2~bpo12+1 04/01/2014
RIP: 0010:jbd2_journal_dirty_metadata+0xbab/0xc00 fs/jbd2/transaction.c:1512
Code: ff e9 74 fc ff ff 44 89 e9 80 e1 07 80 c1 03 38 c1 0f 8c af fc ff ff 4c 89 ef e8 80 c4 96 ff e9 a2 fc ff ff e8 e6 59 30 ff 90 <0f> 0b 89 d9 80 e1 07 80 c1 03 38 c1 0f 8c 95 fd ff ff 48 89 df e8
RSP: 0018:ffffc9000d496b38 EFLAGS: 00010283
RAX: ffffffff826f288a RBX: ffff88801a892bb0 RCX: 0000000000100000
RDX: ffffc9000e97a000 RSI: 000000000006387f RDI: 0000000000063880
RBP: 1ffff11003512576 R08: 0000000000000003 R09: fffff52001a92d58
R10: dffffc0000000000 R11: fffff52001a92d58 R12: ffff88801a892ba8
R13: 1ffff11007e10cbb R14: ffff88801a8918c0 R15: ffff88801a892b48
FS: 00007fc64ac796c0(0000) GS:ffff88801fc00000(0000) knlGS:0000000000000000
CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 00007fc64ac57fe0 CR3: 00000000422da000 CR4: 0000000000352ef0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
Call Trace:
ocfs2_journal_dirty+0x156/0x7b0 fs/ocfs2/journal.c:812
ocfs2_xa_journal_dirty fs/ocfs2/xattr.c:1453 [inline]
ocfs2_xa_set+0x2363/0x2c60 fs/ocfs2/xattr.c:2263
ocfs2_xattr_ibody_set+0x534/0xd00 fs/ocfs2/xattr.c:2795
__ocfs2_xattr_set_handle+0x128/0x10a0 fs/ocfs2/xattr.c:3322
ocfs2_xattr_set+0x128c/0x1930 fs/ocfs2/xattr.c:3650
__vfs_setxattr+0x468/0x4a0 fs/xattr.c:200
__vfs_setxattr_noperm+0x12e/0x660 fs/xattr.c:234
vfs_setxattr+0x221/0x430 fs/xattr.c:321
do_setxattr fs/xattr.c:636 [inline]
filename_setxattr+0x2af/0x430 fs/xattr.c:665
path_setxattrat+0x440/0x510 fs/xattr.c:713
__do_sys_setxattr fs/xattr.c:747 [inline]
__se_sys_setxattr fs/xattr.c:743 [inline]
__x64_sys_setxattr+0xbc/0xe0 fs/xattr.c:743
do_syscall_x64 arch/x86/entry/common.c:52 [inline]
do_syscall_64+0xf3/0x230 arch/x86/entry/common.c:83
entry_SYSCALL_64_after_hwframe+0x77/0x7f
RIP: 0033:0x7fc649d85d29
Code: ff ff c3 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 40 00 48 89 f8 48 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 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:00007fc64ac79038 EFLAGS: 00000246 ORIG_RAX: 00000000000000bc
RAX: ffffffffffffffda RBX: 00007fc649f75fa0 RCX: 00007fc649d85d29
RDX: 0000000020000200 RSI: 0000000020000140 RDI: 0000000020000080
RBP: 00007fc649e01b08 R08: 0000000000000002 R09: 0000000000000000
R10: 000000000000002d R11: 0000000000000246 R12: 0000000000000000
R13: 0000000000000000 R14: 00007fc649f75fa0 R15: 00007fff928710c8
Modules linked in:
---[ end trace 0000000000000000 ]---
RIP: 0010:jbd2_journal_dirty_metadata+0xbab/0xc00 fs/jbd2/transaction.c:1512
Code: ff e9 74 fc ff ff 44 89 e9 80 e1 07 80 c1 03 38 c1 0f 8c af fc ff ff 4c 89 ef e8 80 c4 96 ff e9 a2 fc ff ff e8 e6 59 30 ff 90 <0f> 0b 89 d9 80 e1 07 80 c1 03 38 c1 0f 8c 95 fd ff ff 48 89 df e8
RSP: 0018:ffffc9000d496b38 EFLAGS: 00010283
RAX: ffffffff826f288a RBX: ffff88801a892bb0 RCX: 0000000000100000
RDX: ffffc9000e97a000 RSI: 000000000006387f RDI: 0000000000063880
RBP: 1ffff11003512576 R08: 0000000000000003 R09: fffff52001a92d58
R10: dffffc0000000000 R11: fffff52001a92d58 R12: ffff88801a892ba8
R13: 1ffff11007e10cbb R14: ffff88801a8918c0 R15: ffff88801a892b48
FS: 00007fc64ac796c0(0000) GS:ffff88801fc00000(0000) knlGS:0000000000000000
CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 00007fc64ac57fe0 CR3: 00000000422da000 CR4: 0000000000352ef0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400