I am running current freebsd (Jan 4st - git commit 6fceb757ffd5b050eca4c75ecbd350710b11db5e) on a powerpc64 machine and I am facing a file system lock order reversal. lock order reversal: 1st 0xc0000000008ac748 bufwait (bufwait) @ /root/kernel/freebsd/sys/kern/vfs_bio.c:3564 2nd 0x4985200 dirhash (dirhash) @ /root/kernel/freebsd/sys/ufs/ufs/ufs_dirhash.c:289 stack backtrace: #0 0x5ec138 at ??+0 #1 0x5ee360 at ??+0 #2 0x576c2c at ??+0 #3 0x870e50 at ??+0 #4 0x871314 at ??+0 #5 0x875008 at ??+0 #6 0x87f6b4 at ??+0 #7 0x923d0c at ??+0 #8 0x66ede4 at ??+0 #9 0x66ef2c at ??+0 #10 0x908890 at ??+0 #11 0x8fd938 at ??+0 $ awk 'NR >= 3560 && NR <= 3570' /root/kernel/freebsd/sys/kern/vfs_bio.c if (flags & GB_LOCK_NOWAIT) lockflags |= LK_NOWAIT; error = BUF_TIMELOCK(bp, lockflags, BO_LOCKPTR(bo), "getblk", slpflag, slptimeo); /* * If we slept and got the lock we have to restart in case * the buffer changed identities. */ if (error == ENOLCK) $ awk 'NR >= 285 && NR <= 295' /root/kernel/freebsd/sys/ufs/ufs/ufs_dirhash.c dh = ip->i_dirhash; if (dh == NULL) return (NULL); sx_xlock(&dh->dh_lock); if (dh->dh_hash != NULL) return (dh); ufsdirhash_free_locked(ip); return (NULL); }
An old false positive: http://sources.zabbadoz.net/freebsd/lor/261.html
More on WITNESS and why it reports false positives: https://blog.delphij.net/2004/05/freebsd-lor-pag.html
(In reply to Breno Leitao from comment #0) Please re-open this bug if you actually experience any technical problem.