syzbot


possible deadlock in ocfs2_xattr_set

Status: upstream: reported on 2024/09/10 05:07
Subsystems: ocfs2
[Documentation on labels]
Reported-by: syzbot+ba9a789bd1f4d21fcefe@syzkaller.appspotmail.com
First crash: 247d, last: now
Discussions (8)
Title Replies (including bot) Last reply
[syzbot] Monthly ocfs2 report (Apr 2025) 0 (1) 2025/04/29 12:47
[syzbot] Monthly ocfs2 report (Mar 2025) 0 (1) 2025/03/31 13:08
[syzbot] Monthly ocfs2 report (Feb 2025) 0 (1) 2025/02/26 12:08
[syzbot] Monthly ocfs2 report (Dec 2024) 0 (1) 2024/12/26 08:58
[syzbot] Monthly ocfs2 report (Nov 2024) 0 (1) 2024/11/25 10:35
[syzbot] Monthly ocfs2 report (Oct 2024) 0 (1) 2024/10/24 08:02
[syzbot] Monthly ocfs2 report (Sep 2024) 0 (1) 2024/09/23 09:03
[syzbot] [ocfs2?] possible deadlock in ocfs2_xattr_set 0 (1) 2024/09/10 05:07
Similar bugs (2)
Kernel Title Repro Cause bisect Fix bisect Count Last Reported Patched Status
linux-5.15 possible deadlock in ocfs2_xattr_set 262 2h13m 240d 0/3 upstream: reported on 2024/09/14 01:11
linux-6.1 possible deadlock in ocfs2_xattr_set 265 1h13m 228d 0/3 upstream: reported on 2024/09/25 09:02

Sample crash report:
loop5: detected capacity change from 0 to 32768
ocfs2: Slot 0 on device (7,5) was already allocated to this node!
ocfs2: Mounting device (7,5) on (node local, slot 0) with ordered data mode.
======================================================
WARNING: possible circular locking dependency detected
6.15.0-rc5-syzkaller-00353-gcd802e7e5f1e #0 Not tainted
------------------------------------------------------
syz.5.563/8687 is trying to acquire lock:
ffff88803604b480 (&ocfs2_sysfile_lock_key[args->fi_sysfile_type]#6){+.+.}-{4:4}, at: inode_lock include/linux/fs.h:867 [inline]
ffff88803604b480 (&ocfs2_sysfile_lock_key[args->fi_sysfile_type]#6){+.+.}-{4:4}, at: ocfs2_xattr_set+0xd35/0x2a80 fs/ocfs2/xattr.c:3622

but task is already holding lock:
ffff88803604bff8 (&oi->ip_xattr_sem){++++}-{4:4}, at: ocfs2_xattr_set+0x429/0x2a80 fs/ocfs2/xattr.c:3583

which lock already depends on the new lock.


the existing dependency chain (in reverse order) is:

-> #2 (&oi->ip_xattr_sem){++++}-{4:4}:
       down_read+0x9b/0x480 kernel/locking/rwsem.c:1524
       ocfs2_init_acl+0x2fc/0x7d0 fs/ocfs2/acl.c:366
       ocfs2_mknod+0xd5c/0x2540 fs/ocfs2/namei.c:410
       ocfs2_mkdir+0x17c/0x490 fs/ocfs2/namei.c:656
       vfs_mkdir+0x593/0x8c0 fs/namei.c:4359
       do_mkdirat+0x304/0x3e0 fs/namei.c:4392
       __do_sys_mkdir fs/namei.c:4414 [inline]
       __se_sys_mkdir fs/namei.c:4412 [inline]
       __x64_sys_mkdir+0xef/0x140 fs/namei.c:4412
       do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]
       do_syscall_64+0xcd/0x260 arch/x86/entry/syscall_64.c:94
       entry_SYSCALL_64_after_hwframe+0x77/0x7f

-> #1 (jbd2_handle){++++}-{0:0}:
       jbd2_journal_lock_updates+0xa4/0x380 fs/jbd2/transaction.c:861
       __ocfs2_flush_truncate_log+0x281/0x1160 fs/ocfs2/alloc.c:6037
       ocfs2_flush_truncate_log+0x4a/0x70 fs/ocfs2/alloc.c:6084
       ocfs2_sync_fs+0x1c6/0x3d0 fs/ocfs2/super.c:406
       sync_filesystem+0x1d0/0x290 fs/sync.c:66
       generic_shutdown_super+0x74/0x390 fs/super.c:621
       kill_block_super+0x3b/0x90 fs/super.c:1710
       deactivate_locked_super+0xc1/0x1a0 fs/super.c:473
       deactivate_super fs/super.c:506 [inline]
       deactivate_super+0xde/0x100 fs/super.c:502
       cleanup_mnt+0x225/0x450 fs/namespace.c:1431
       task_work_run+0x150/0x240 kernel/task_work.c:227
       resume_user_mode_work include/linux/resume_user_mode.h:50 [inline]
       exit_to_user_mode_loop kernel/entry/common.c:114 [inline]
       exit_to_user_mode_prepare include/linux/entry-common.h:329 [inline]
       __syscall_exit_to_user_mode_work kernel/entry/common.c:207 [inline]
       syscall_exit_to_user_mode+0x27b/0x2a0 kernel/entry/common.c:218
       do_syscall_64+0xda/0x260 arch/x86/entry/syscall_64.c:100
       entry_SYSCALL_64_after_hwframe+0x77/0x7f

-> #0 (&ocfs2_sysfile_lock_key[args->fi_sysfile_type]#6){+.+.}-{4:4}:
       check_prev_add kernel/locking/lockdep.c:3166 [inline]
       check_prevs_add kernel/locking/lockdep.c:3285 [inline]
       validate_chain kernel/locking/lockdep.c:3909 [inline]
       __lock_acquire+0x1173/0x1ba0 kernel/locking/lockdep.c:5235
       lock_acquire kernel/locking/lockdep.c:5866 [inline]
       lock_acquire+0x179/0x350 kernel/locking/lockdep.c:5823
       down_write+0x92/0x200 kernel/locking/rwsem.c:1577
       inode_lock include/linux/fs.h:867 [inline]
       ocfs2_xattr_set+0xd35/0x2a80 fs/ocfs2/xattr.c:3622
       ocfs2_set_acl+0x46d/0x550 fs/ocfs2/acl.c:254
       ocfs2_iop_set_acl+0x224/0x2d0 fs/ocfs2/acl.c:286
       set_posix_acl+0x25f/0x320 fs/posix_acl.c:954
       vfs_set_acl+0x5a7/0x930 fs/posix_acl.c:1133
       do_set_acl+0xd9/0x1a0 fs/posix_acl.c:1278
       do_setxattr+0xeb/0x180 fs/xattr.c:633
       file_setxattr fs/xattr.c:646 [inline]
       file_setxattr+0x139/0x1b0 fs/xattr.c:640
       path_setxattrat+0x247/0x2a0 fs/xattr.c:711
       __do_sys_fsetxattr fs/xattr.c:761 [inline]
       __se_sys_fsetxattr fs/xattr.c:758 [inline]
       __x64_sys_fsetxattr+0xc5/0x140 fs/xattr.c:758
       do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]
       do_syscall_64+0xcd/0x260 arch/x86/entry/syscall_64.c:94
       entry_SYSCALL_64_after_hwframe+0x77/0x7f

other info that might help us debug this:

Chain exists of:
  &ocfs2_sysfile_lock_key[args->fi_sysfile_type]#6 --> jbd2_handle --> &oi->ip_xattr_sem

 Possible unsafe locking scenario:

       CPU0                    CPU1
       ----                    ----
  lock(&oi->ip_xattr_sem);
                               lock(jbd2_handle);
                               lock(&oi->ip_xattr_sem);
  lock(&ocfs2_sysfile_lock_key[args->fi_sysfile_type]#6);

 *** DEADLOCK ***

3 locks held by syz.5.563/8687:
 #0: ffff88807add6420 (sb_writers#18){.+.+}-{0:0}, at: file_setxattr+0x1f/0x1b0 fs/xattr.c:642
 #1: ffff88803604c2c0 (&sb->s_type->i_mutex_key#24){+.+.}-{4:4}, at: inode_lock include/linux/fs.h:867 [inline]
 #1: ffff88803604c2c0 (&sb->s_type->i_mutex_key#24){+.+.}-{4:4}, at: vfs_set_acl+0x33e/0x930 fs/posix_acl.c:1114
 #2: ffff88803604bff8 (&oi->ip_xattr_sem){++++}-{4:4}, at: ocfs2_xattr_set+0x429/0x2a80 fs/ocfs2/xattr.c:3583

stack backtrace:
CPU: 0 UID: 0 PID: 8687 Comm: syz.5.563 Not tainted 6.15.0-rc5-syzkaller-00353-gcd802e7e5f1e #0 PREEMPT(full) 
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 05/07/2025
Call Trace:
 <TASK>
 __dump_stack lib/dump_stack.c:94 [inline]
 dump_stack_lvl+0x116/0x1f0 lib/dump_stack.c:120
 print_circular_bug+0x275/0x350 kernel/locking/lockdep.c:2079
 check_noncircular+0x14c/0x170 kernel/locking/lockdep.c:2211
 check_prev_add kernel/locking/lockdep.c:3166 [inline]
 check_prevs_add kernel/locking/lockdep.c:3285 [inline]
 validate_chain kernel/locking/lockdep.c:3909 [inline]
 __lock_acquire+0x1173/0x1ba0 kernel/locking/lockdep.c:5235
 lock_acquire kernel/locking/lockdep.c:5866 [inline]
 lock_acquire+0x179/0x350 kernel/locking/lockdep.c:5823
 down_write+0x92/0x200 kernel/locking/rwsem.c:1577
 inode_lock include/linux/fs.h:867 [inline]
 ocfs2_xattr_set+0xd35/0x2a80 fs/ocfs2/xattr.c:3622
 ocfs2_set_acl+0x46d/0x550 fs/ocfs2/acl.c:254
 ocfs2_iop_set_acl+0x224/0x2d0 fs/ocfs2/acl.c:286
 set_posix_acl+0x25f/0x320 fs/posix_acl.c:954
 vfs_set_acl+0x5a7/0x930 fs/posix_acl.c:1133
 do_set_acl+0xd9/0x1a0 fs/posix_acl.c:1278
 do_setxattr+0xeb/0x180 fs/xattr.c:633
 file_setxattr fs/xattr.c:646 [inline]
 file_setxattr+0x139/0x1b0 fs/xattr.c:640
 path_setxattrat+0x247/0x2a0 fs/xattr.c:711
 __do_sys_fsetxattr fs/xattr.c:761 [inline]
 __se_sys_fsetxattr fs/xattr.c:758 [inline]
 __x64_sys_fsetxattr+0xc5/0x140 fs/xattr.c:758
 do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]
 do_syscall_64+0xcd/0x260 arch/x86/entry/syscall_64.c:94
 entry_SYSCALL_64_after_hwframe+0x77/0x7f
RIP: 0033:0x7f732878e969
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:00007f732956f038 EFLAGS: 00000246 ORIG_RAX: 00000000000000be
RAX: ffffffffffffffda RBX: 00007f73289b5fa0 RCX: 00007f732878e969
RDX: 0000200000000640 RSI: 0000200000000000 RDI: 0000000000000004
RBP: 00007f7328810ab1 R08: 0000000000000001 R09: 0000000000000000
R10: 0000000000000024 R11: 0000000000000246 R12: 0000000000000000
R13: 0000000000000000 R14: 00007f73289b5fa0 R15: 00007ffc27bd4928
 </TASK>

Crashes (2493):
Time Kernel Commit Syzkaller Config Log Report Syz repro C repro VM info Assets (help?) Manager Title
2025/05/12 04:18 upstream cd802e7e5f1e 77908e5f .config console log report info [disk image] [vmlinux] [kernel image] ci-upstream-kasan-badwrites-root possible deadlock in ocfs2_xattr_set
2025/05/11 18:26 upstream 3ce9925823c7 77908e5f .config console log report info [disk image] [vmlinux] [kernel image] ci-upstream-kasan-gce-root possible deadlock in ocfs2_xattr_set
2025/05/11 16:55 upstream 3ce9925823c7 77908e5f .config console log report info [disk image] [vmlinux] [kernel image] ci-upstream-kasan-gce-root possible deadlock in ocfs2_xattr_set
2025/05/11 15:22 upstream 3ce9925823c7 77908e5f .config console log report info [disk image] [vmlinux] [kernel image] ci2-upstream-fs possible deadlock in ocfs2_xattr_set
2025/05/11 10:25 upstream 3ce9925823c7 77908e5f .config console log report info [disk image] [vmlinux] [kernel image] ci-upstream-kasan-badwrites-root possible deadlock in ocfs2_xattr_set
2025/05/11 05:33 upstream bec6f00f120e 77908e5f .config console log report info [disk image] [vmlinux] [kernel image] ci2-upstream-fs possible deadlock in ocfs2_xattr_set
2025/05/10 22:56 upstream bec6f00f120e 77908e5f .config console log report info [disk image] [vmlinux] [kernel image] ci2-upstream-fs possible deadlock in ocfs2_xattr_set
2025/05/10 08:06 upstream 0e1329d4045c 77908e5f .config console log report info [disk image] [vmlinux] [kernel image] ci2-upstream-fs possible deadlock in ocfs2_xattr_set
2025/05/10 04:46 upstream 3013c33dcbd9 77908e5f .config console log report info [disk image] [vmlinux] [kernel image] ci-upstream-kasan-badwrites-root possible deadlock in ocfs2_xattr_set
2025/05/09 18:40 upstream 9c69f8884904 77908e5f .config console log report info [disk image] [vmlinux] [kernel image] ci2-upstream-fs possible deadlock in ocfs2_xattr_set
2025/05/09 10:50 upstream 2c89c1b655c0 bb813bcc .config console log report info [disk image] [vmlinux] [kernel image] ci2-upstream-fs possible deadlock in ocfs2_xattr_set
2025/05/09 07:48 upstream 2c89c1b655c0 bb813bcc .config console log report info [disk image] [vmlinux] [kernel image] ci2-upstream-fs possible deadlock in ocfs2_xattr_set
2025/05/08 23:13 upstream 2c89c1b655c0 dbf35fa1 .config console log report info [disk image] [vmlinux] [kernel image] ci2-upstream-fs possible deadlock in ocfs2_xattr_set
2025/05/08 01:51 upstream d76bb1ebb558 dbf35fa1 .config console log report info [disk image] [vmlinux] [kernel image] ci-upstream-kasan-badwrites-root possible deadlock in ocfs2_xattr_set
2025/05/06 23:31 upstream 0d8d44db295c 350f4ffc .config console log report info [disk image] [vmlinux] [kernel image] ci-upstream-kasan-badwrites-root possible deadlock in ocfs2_xattr_set
2025/05/06 20:25 upstream 0d8d44db295c ae98e6b9 .config console log report info [disk image] [vmlinux] [kernel image] ci-upstream-kasan-badwrites-root possible deadlock in ocfs2_xattr_set
2025/05/06 06:06 upstream 01f95500a162 ae98e6b9 .config console log report info [disk image] [vmlinux] [kernel image] ci2-upstream-fs possible deadlock in ocfs2_xattr_set
2025/05/05 17:14 upstream 92a09c47464d 6ca47dd8 .config console log report info [disk image] [vmlinux] [kernel image] ci2-upstream-fs possible deadlock in ocfs2_xattr_set
2025/05/05 10:53 upstream 92a09c47464d b0714e37 .config console log report info [disk image] [vmlinux] [kernel image] ci-upstream-kasan-gce-root possible deadlock in ocfs2_xattr_set
2025/05/05 03:34 upstream 14c55b7bb0a8 b0714e37 .config console log report info [disk image] [vmlinux] [kernel image] ci2-upstream-fs possible deadlock in ocfs2_xattr_set
2025/05/05 02:09 upstream 14c55b7bb0a8 b0714e37 .config console log report info [disk image] [vmlinux] [kernel image] ci2-upstream-fs possible deadlock in ocfs2_xattr_set
2025/05/05 00:49 upstream 14c55b7bb0a8 b0714e37 .config console log report info [disk image] [vmlinux] [kernel image] ci2-upstream-fs possible deadlock in ocfs2_xattr_set
2025/05/04 17:17 upstream e8ab83e34bdc b0714e37 .config console log report info [disk image] [vmlinux] [kernel image] ci-upstream-kasan-gce-root possible deadlock in ocfs2_xattr_set
2025/05/04 01:13 upstream 2a239ffbebb5 b0714e37 .config console log report info [disk image] [vmlinux] [kernel image] ci2-upstream-fs possible deadlock in ocfs2_xattr_set
2025/05/03 23:47 upstream 2a239ffbebb5 b0714e37 .config console log report info [disk image] [vmlinux] [kernel image] ci2-upstream-fs possible deadlock in ocfs2_xattr_set
2025/05/08 15:13 upstream d76bb1ebb558 dbf35fa1 .config console log report [disk image (non-bootable)] [vmlinux] [kernel image] ci-snapshot-upstream-root possible deadlock in ocfs2_xattr_set
2025/05/08 08:09 upstream d76bb1ebb558 dbf35fa1 .config console log report [disk image (non-bootable)] [vmlinux] [kernel image] ci-snapshot-upstream-root possible deadlock in ocfs2_xattr_set
2025/05/07 21:46 upstream 707df3375124 dbf35fa1 .config console log report [disk image (non-bootable)] [vmlinux] [kernel image] ci-snapshot-upstream-root possible deadlock in ocfs2_xattr_set
2025/05/06 21:59 upstream 0d8d44db295c 350f4ffc .config console log report [disk image (non-bootable)] [vmlinux] [kernel image] ci-snapshot-upstream-root possible deadlock in ocfs2_xattr_set
2025/05/06 08:01 upstream 01f95500a162 ae98e6b9 .config console log report [disk image (non-bootable)] [vmlinux] [kernel image] ci-snapshot-upstream-root possible deadlock in ocfs2_xattr_set
2025/05/05 22:51 upstream 01f95500a162 ae98e6b9 .config console log report [disk image (non-bootable)] [vmlinux] [kernel image] ci-snapshot-upstream-root possible deadlock in ocfs2_xattr_set
2024/09/07 01:04 upstream b831f83e40a2 ce70880a .config console log report [disk image (non-bootable)] [vmlinux] [kernel image] ci-snapshot-upstream-root possible deadlock in ocfs2_xattr_set
2024/09/06 04:58 upstream ad618736883b 464ac2ed .config console log report [disk image (non-bootable)] [vmlinux] [kernel image] ci-snapshot-upstream-root possible deadlock in ocfs2_xattr_set
2025/04/16 13:45 linux-next 01c6df60d5d4 23b969b7 .config console log report info [disk image] [vmlinux] [kernel image] ci-upstream-linux-next-kasan-gce-root possible deadlock in ocfs2_xattr_set
2025/05/11 20:12 git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux.git for-kernelci c32f8dc5aaf9 77908e5f .config console log report info [disk image] [vmlinux] [kernel image] ci-upstream-gce-arm64 possible deadlock in ocfs2_xattr_set
2025/05/11 13:46 git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux.git for-kernelci c32f8dc5aaf9 77908e5f .config console log report info [disk image] [vmlinux] [kernel image] ci-upstream-gce-arm64 possible deadlock in ocfs2_xattr_set
2025/05/11 04:28 git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux.git for-kernelci c32f8dc5aaf9 77908e5f .config console log report info [disk image] [vmlinux] [kernel image] ci-upstream-gce-arm64 possible deadlock in ocfs2_xattr_set
2025/05/09 22:13 git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux.git for-kernelci c32f8dc5aaf9 bb813bcc .config console log report info [disk image] [vmlinux] [kernel image] ci-upstream-gce-arm64 possible deadlock in ocfs2_xattr_set
2025/05/08 10:33 git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux.git for-kernelci e0f4c8dd9d2d dbf35fa1 .config console log report info [disk image] [vmlinux] [kernel image] ci-upstream-gce-arm64 possible deadlock in ocfs2_xattr_set
2025/05/07 22:05 git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux.git for-kernelci e0f4c8dd9d2d 350f4ffc .config console log report info [disk image] [vmlinux] [kernel image] ci-upstream-gce-arm64 possible deadlock in ocfs2_xattr_set
2025/05/07 13:47 git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux.git for-kernelci e0f4c8dd9d2d 350f4ffc .config console log report info [disk image] [vmlinux] [kernel image] ci-upstream-gce-arm64 possible deadlock in ocfs2_xattr_set
2025/05/07 11:50 git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux.git for-kernelci e0f4c8dd9d2d 350f4ffc .config console log report info [disk image] [vmlinux] [kernel image] ci-upstream-gce-arm64 possible deadlock in ocfs2_xattr_set
2025/05/06 16:24 git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux.git for-kernelci e0f4c8dd9d2d ae98e6b9 .config console log report info [disk image] [vmlinux] [kernel image] ci-upstream-gce-arm64 possible deadlock in ocfs2_xattr_set
2025/05/06 12:19 git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux.git for-kernelci e0f4c8dd9d2d ae98e6b9 .config console log report info [disk image] [vmlinux] [kernel image] ci-upstream-gce-arm64 possible deadlock in ocfs2_xattr_set
2025/05/06 01:23 git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux.git for-kernelci e0f4c8dd9d2d ae98e6b9 .config console log report info [disk image] [vmlinux] [kernel image] ci-upstream-gce-arm64 possible deadlock in ocfs2_xattr_set
2025/05/06 01:23 git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux.git for-kernelci e0f4c8dd9d2d ae98e6b9 .config console log report info [disk image] [vmlinux] [kernel image] ci-upstream-gce-arm64 possible deadlock in ocfs2_xattr_set
2025/05/05 04:40 git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux.git for-kernelci e0f4c8dd9d2d b0714e37 .config console log report info [disk image] [vmlinux] [kernel image] ci-upstream-gce-arm64 possible deadlock in ocfs2_xattr_set
2025/05/04 22:58 git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux.git for-kernelci e0f4c8dd9d2d b0714e37 .config console log report info [disk image] [vmlinux] [kernel image] ci-upstream-gce-arm64 possible deadlock in ocfs2_xattr_set
2025/05/04 14:00 git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux.git for-kernelci e0f4c8dd9d2d b0714e37 .config console log report info [disk image] [vmlinux] [kernel image] ci-upstream-gce-arm64 possible deadlock in ocfs2_xattr_set
2025/05/04 06:33 git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux.git for-kernelci e0f4c8dd9d2d b0714e37 .config console log report info [disk image] [vmlinux] [kernel image] ci-upstream-gce-arm64 possible deadlock in ocfs2_xattr_set
2025/05/04 03:44 git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux.git for-kernelci e0f4c8dd9d2d b0714e37 .config console log report info [disk image] [vmlinux] [kernel image] ci-upstream-gce-arm64 possible deadlock in ocfs2_xattr_set
* Struck through repros no longer work on HEAD.