A lock order reversal that I've not seen before (zfs and tmpfs during poudriere bulk using USE_TMPFS=all)

From: Mark Millard <marklmi_at_yahoo.com>
Date: Thu, 14 Sep 2023 15:11:02 UTC
I've never figured out how to tell important lock order reversal
notices from unimportant ones. So I mostly report only unfamiliar
ones. (But I normally do not do poudriere bulk builds with a
debug kernel in use.)

During a poudriere bulk that is using USE_TMPFS=all it reported:

lock order reversal:
 1st 0xffffa0027b7e83f0 zfs (zfs, lockmgr) @ /usr/src/sys/kern/vfs_mount.c:2240
 2nd 0xffffa0023db44070 tmpfs (tmpfs, lockmgr) @ /usr/src/sys/kern/vfs_subr.c:3886
lock order tmpfs -> zfs established at:
#0 0xffff0000004d7824 at witness_checkorder+0x304
#1 0xffff000000435bfc at lockmgr_xlock+0x50
#2 0xffff00015d0ce814 at null_lock+0xb0
#3 0xffff00000056cdf0 at _vn_lock+0x54
#4 0xffff000000557170 at vflush+0x12c
#5 0xffff00015d0cd6b0 at nullfs_unmount+0x40
#6 0xffff00000054c318 at dounmount+0x714
#7 0xffff00000054bb94 at kern_unmount+0x298
#8 0xffff0000007fe6ac at do_el0_sync+0x520
#9 0xffff0000007da110 at handle_el0_sync+0x44
lock order zfs -> tmpfs attempted at:
#0 0xffff0000004d7fb8 at witness_checkorder+0xa98
#1 0xffff000000434140 at lockmgr_lock_flags+0x1ec
#2 0xffff00000056cdf0 at _vn_lock+0x54
#3 0xffff000000557170 at vflush+0x12c
#4 0xffff0000003964d0 at tmpfs_unmount+0x60
#5 0xffff00000054c318 at dounmount+0x714
#6 0xffff00000054bb94 at kern_unmount+0x298
#7 0xffff0000007fe6ac at do_el0_sync+0x520
#8 0xffff0000007da110 at handle_el0_sync+0x44

It happens to be on aarch64, in case that matters for some
odd reason.

===
Mark Millard
marklmi at yahoo.com