https://bugzilla.kernel.org/show_bug.cgi?id=217363 Bug ID: 217363 Summary: jbd2: Data missing when reusing bh which is ready to be submitted in checkpoint Product: File System Version: 2.5 Hardware: All OS: Linux Status: NEW Severity: normal Priority: P3 Component: ext4 Assignee: fs_ext4@xxxxxxxxxxxxxxxxxxxx Reporter: chengzhihao1@xxxxxxxxxx Regression: No CONFIG_EXT4_FS=y CONFIG_JBD2=y -smp 4 1. Apply diff and compile kernel 2. ./test.sh [ 76.050388] jbd2_journal_commit_transaction --- [ 76.051528] jbd2_journal_commit_transaction ==== [ 76.179116] umount(3642): commit ffff88817a547500 [ 76.300237] ext4 filesystem being mounted at /root/temp supports timestamps until 2038 (0x7fffffff) [ 76.315293] assign g_bh, trace dir 2 buffer, add a(1036) [ 76.349959] jbd2_journal_commit_transaction --- [ 76.350915] insert ffff888173aa3340 into trans ffff888173aa4100 [ 76.352158] mark buffer dirty [ 76.352829] jbd2_journal_commit_transaction ==== [ 76.377202] chmod(3649): commit ffff888173aa4100 [ 76.378019] checkpoint: bh dirty bit should be cleared before flush [ 76.379045] commit ffff888173aa4100 done [ 76.379708] Do access to bh [ 78.415834] commit ffff888173aa4100 done [ 78.512334] Kernel panic - not syncing: DONE [ 78.513351] CPU: 0 PID: 3649 Comm: chmod Not tainted 6.3.0-00012-g8eab99f47c2b-dirty #1188 [ 78.515079] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS ?-20190727_073836-buildvm-ppc64le-16.ppc.fedoraproje4 [ 78.517776] Call Trace: [ 78.518305] <TASK> [ 78.518790] dump_stack_lvl+0x7f/0xb0 [ 78.519580] dump_stack+0x18/0x30 [ 78.520292] panic+0x4e6/0x520 [ 78.520965] jbd2_log_do_checkpoint+0x818/0x840 [ 78.521935] __jbd2_log_wait_for_space+0x187/0x3c0 [ 78.522949] add_transaction_credits+0x3fc/0x4d0 [ 78.523697] ? add_timer+0x1ca/0x350 [ 78.524020] start_this_handle+0x156/0x970 [ 78.524389] ? kmem_cache_alloc+0x4db/0xac0 [ 78.524862] jbd2__journal_start+0x130/0x300 [ 78.525288] __ext4_journal_start_sb+0x2aa/0x300 [ 78.525715] ext4_dirty_inode+0x41/0xa0 [ 78.526073] __mark_inode_dirty+0x93/0x6b0 [ 78.526472] ext4_setattr+0x16d/0x10b0 [ 78.526832] ? path_lookupat.isra.0+0xca/0x200 [ 78.527248] notify_change+0x44f/0x760 [ 78.527604] ? __call_rcu_common.constprop.0+0x116/0xa80 [ 78.528089] ? chmod_common+0x11f/0x210 [ 78.528444] chmod_common+0x11f/0x210 [ 78.528791] ? kmemleak_free+0x47/0xa0 [ 78.529145] ? putname+0x79/0xa0 [ 78.529456] do_fchmodat+0x6e/0xf0 [ 78.529788] __x64_sys_fchmodat+0x22/0x30 [ 78.530159] do_syscall_64+0x39/0x80 [ 78.530497] entry_SYSCALL_64_after_hwframe+0x63/0xcd [ 78.530970] RIP: 0033:0x7fc88a6ffdb9 [ 78.531304] Code: ff ff ff ff c3 66 2e 0f 1f 84 00 00 00 00 00 66 90 f7 c1 ff fe ff ff 75 38 80 e5 01 75 4b 48 63 ff 89 d2 b0 [ 78.532967] RSP: 002b:00007fffb4c6e0e8 EFLAGS: 00000246 ORIG_RAX: 000000000000010c [ 78.533671] RAX: ffffffffffffffda RBX: 0000000000000001 RCX: 00007fc88a6ffdb9 [ 78.534323] RDX: 00000000000001ed RSI: 000055555b1d30f0 RDI: ffffffffffffff9c [ 78.534984] RBP: 000055555b1d3060 R08: 0000000000000000 R09: 0000000000000000 [ 78.535648] R10: 0000000000000000 R11: 0000000000000246 R12: 0000555559a0a734 [ 78.536302] R13: 000055555b1d30f0 R14: 000055555b1d4320 R15: 0000000000008000 [ 78.536974] </TASK> [ 78.537345] Kernel Offset: disabled [ 78.537681] ---[ end Kernel panic - not syncing: DONE ]--- 3. reboot 4. fsck.ext4 -fa /dev/sda [root@localhost ~]# fsck.ext4 -fa /dev/sda /dev/sda: recovering journal /dev/sda: Entry 'a' in / (2) references inode 1036 found in group 0's unused inodes area. FIXED. /dev/sda: Entry 'a' in / (2) has an incorrect filetype (was 1, should be 0). /dev/sda: UNEXPECTED INCONSISTENCY; RUN fsck MANUALLY. (i.e., without -a or -p options) -- You may reply to this email to add a comment. You are receiving this mail because: You are watching the assignee of the bug.