Greetings, 0day kernel testing robot got the below dmesg and the first bad commit is git://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-fs file-pin-devel commit 692ddb6c6808db7b70678b4cc3332781625c65f8 Author: David Howells AuthorDate: Thu Mar 5 14:09:22 2015 +0000 Commit: David Howells CommitDate: Fri Mar 6 15:25:07 2015 +0000 VFS: Impose ordering on accesses of d_inode and d_flags Impose ordering on accesses of d_inode and d_flags to avoid the need to do this: if (!dentry->d_inode || d_is_negative(dentry)) { when this: if (d_is_negative(dentry)) { should suffice. This check is especially problematic if a dentry can have its type field set to something other than DENTRY_MISS_TYPE when d_inode is NULL (as in unionmount). What we really need to do is stick a write barrier between setting d_inode and setting d_flags and a read barrier between reading d_flags and reading d_inode. Signed-off-by: David Howells +----------------------------------------------+------------+------------+------------+ | | 1dc0c0acc4 | 692ddb6c68 | 448291320b | +----------------------------------------------+------------+------------+------------+ | boot_successes | 60 | 0 | 0 | | boot_failures | 0 | 20 | 12 | | WARNING:at_fs/dcache.c:#dput() | 0 | 20 | 12 | | WARNING:at_fs/dcache.c:#d_lru_shrink_move() | 0 | 20 | 9 | | WARNING:at_fs/dcache.c:#shrink_dentry_list() | 0 | 20 | 9 | | BUG:unable_to_handle_kernel | 0 | 20 | 9 | | Oops | 0 | 20 | 9 | | Kernel_panic-not_syncing:Fatal_exception | 0 | 20 | 9 | | backtrace:do_unlinkat | 0 | 20 | 9 | | backtrace:SyS_unlink | 0 | 20 | 9 | | backtrace:do_mount | 0 | 20 | 9 | | backtrace:SyS_mount | 0 | 20 | 9 | | backtrace:do_rmdir | 0 | 0 | 3 | | backtrace:SyS_rmdir | 0 | 0 | 3 | +----------------------------------------------+------------+------------+------------+ /bin/sh: /proc/self/fd/9: No such file or directory [ 37.852881] sock: process `trinity-main' is using obsolete setsockopt SO_BSDCOMPAT [ 86.942666] ------------[ cut here ]------------ [ 86.947109] WARNING: CPU: 0 PID: 151 at fs/dcache.c:406 dput+0x1af/0x23d() [ 86.948285] CPU: 0 PID: 151 Comm: shutdown Not tainted 4.0.0-rc1-00164-g692ddb6 #6 [ 86.949278] 0000000000000009 ffff880013be7de8 ffffffff81527be5 ffffffff810e02e9 [ 86.954376] 0000000000000000 ffff880013be7e28 ffffffff810a558a ffff880013be7e18 [ 86.955433] ffffffff8118d3dc ffff8800113a4d50 ffff8800113a4dd0 0000000000000000 [ 86.956428] Call Trace: [ 86.956766] [] dump_stack+0x4f/0x7b [ 86.957441] [] ? console_unlock+0x398/0x3c7 [ 86.958234] [] warn_slowpath_common+0x9c/0xb6 [ 86.959054] [] ? dput+0x1af/0x23d [ 86.959739] [] warn_slowpath_null+0x1a/0x1c [ 86.960506] [] dput+0x1af/0x23d [ 86.961110] [] do_unlinkat+0x137/0x269 [ 86.961835] [] ? ret_from_sys_call+0x24/0x5f [ 86.962664] [] ? trace_hardirqs_on_caller+0x191/0x1ad [ 86.963499] [] ? trace_hardirqs_on_thunk+0x3a/0x3f [ 86.964320] [] SyS_unlink+0x16/0x18 [ 86.965104] [] system_call_fastpath+0x16/0x1b [ 86.966067] ---[ end trace ec83e162d3687f78 ]--- [ 86.999251] rc.local (128) used greatest stack depth: 13728 bytes left git bisect start 448291320bc651867eee7513873ccad4f6d4aa08 13a7a6ac0a11197edcd0f756a035f472b42cdf8b -- git bisect good 791b19cb9cca1266c1ad4a63e521e9f76f7825b9 # 00:29 20+ 0 Merge 'block/blk-polled-io' into devel-cairo-rand-201503062346 git bisect bad 4cb456361b7b19e93abfcdbecf519c7366aec44d # 00:35 0- 2 Merge 'dhowells-fs/file-pin' into devel-cairo-rand-201503062346 git bisect bad f0386755652a0bef81e2980e0ba7147094383d7b # 00:40 0- 7 VFS: (Scripted) Convert ->d_inode to d_inode() in fs/ncpfs/ git bisect bad eed88f7305fd820023b18f62275b5a9d072ce81c # 00:54 0- 20 VFS: (Scripted) Convert ->d_inode to d_inode() in fs/coda/ git bisect bad 692ddb6c6808db7b70678b4cc3332781625c65f8 # 01:09 0- 10 VFS: Impose ordering on accesses of d_inode and d_flags git bisect good ab14d7bf58701a71e4d5fa4a35ae1be314815507 # 01:14 20+ 0 VFS: Fix up missed bits of reiserfs to use d_inode() git bisect good abd729c4342d698950473b6be359e73111982c02 # 01:24 20+ 0 VFS: Fix up some ->d_inode accesses in the chelsio driver git bisect good dabd8775d19de85a0eeacc08804608100056755f # 01:26 20+ 0 NFS: Don't use d_inode as a variable name git bisect good 1dc0c0acc45f01542179009e73e3965870917bd2 # 01:34 20+ 0 VFS: Add owner-filesystem positive/negative dentry checks # first bad commit: [692ddb6c6808db7b70678b4cc3332781625c65f8] VFS: Impose ordering on accesses of d_inode and d_flags git bisect good 1dc0c0acc45f01542179009e73e3965870917bd2 # 01:36 60+ 0 VFS: Add owner-filesystem positive/negative dentry checks # extra tests with DEBUG_INFO git bisect bad 692ddb6c6808db7b70678b4cc3332781625c65f8 # 01:41 0- 1 VFS: Impose ordering on accesses of d_inode and d_flags # extra tests on HEAD of linux-devel/devel-cairo-rand-201503062346 git bisect bad 448291320bc651867eee7513873ccad4f6d4aa08 # 01:41 0- 12 0day head guard for 'devel-cairo-rand-201503062346' # extra tests on tree/branch dhowells-fs/file-pin-devel git bisect bad 692ddb6c6808db7b70678b4cc3332781625c65f8 # 01:47 0- 20 VFS: Impose ordering on accesses of d_inode and d_flags # extra tests with first bad commit reverted # extra tests on tree/branch linus/master git bisect good 99aedde0869ce194539166ac5a4d2e1a20995348 # 01:59 60+ 0 Merge branch 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip # extra tests on tree/branch next/master git bisect good 28855005be1d6a0a041de46fd2e61da2b796abff # 02:05 60+ 0 Add linux-next specific files for 20150306 This script may reproduce the error. ---------------------------------------------------------------------------- #!/bin/bash kernel=$1 initrd=quantal-core-x86_64.cgz wget --no-clobber https://github.com/fengguang/reproduce-kernel-bug/raw/master/initrd/$initrd kvm=( qemu-system-x86_64 -cpu kvm64 -enable-kvm -kernel $kernel -initrd $initrd -m 320 -smp 2 -net nic,vlan=1,model=e1000 -net user,vlan=1 -boot order=nc -no-reboot -watchdog i6300esb -rtc base=localtime -serial stdio -display none -monitor null ) append=( hung_task_panic=1 earlyprintk=ttyS0,115200 rd.udev.log-priority=err systemd.log_target=journal systemd.log_level=warning debug apic=debug sysrq_always_enabled rcupdate.rcu_cpu_stall_timeout=100 panic=-1 softlockup_panic=1 nmi_watchdog=panic oops=panic load_ramdisk=2 prompt_ramdisk=0 console=ttyS0,115200 console=tty0 vga=normal root=/dev/ram0 rw drbd.minor_count=8 ) "${kvm[@]}" --append "${append[*]}" ---------------------------------------------------------------------------- Thanks, Fengguang