> While troubleshooting a deadlock problem I compiled the kernel with
> option VFSLCKDEBUG and found that the if statement in the assert macro
> is missing braces. The includes seem to have changed since 5.6 as well
> as it was missing the declaration for the panic function.
>
>
> Index: kern/vfs_vops.c
> ===================================================================
> RCS file: /cvs/src/sys/kern/vfs_vops.c,v
> retrieving revision 1.9
> diff -u -p -r1.9 vfs_vops.c
> --- kern/vfs_vops.c 13 Aug 2013 05:52:24 -0000 1.9
> +++ kern/vfs_vops.c 16 Jan 2015 23:30:59 -0000
> @@ -48,10 +48,12 @@
> #include <sys/unistd.h>
>
> #ifdef VFSLCKDEBUG
> +#include <sys/systm.h>
> #define ASSERT_VP_ISLOCKED(vp) do { \
> - if (((vp)->v_flag & VLOCKSWORK) && !VOP_ISLOCKED(vp)) \
> + if (((vp)->v_flag & VLOCKSWORK) && !VOP_ISLOCKED(vp)) { \
> VOP_PRINT(vp); \
> panic("vp not locked"); \
> + } \
> } while (0)
> #else
> #define ASSERT_VP_ISLOCKED(vp) /* nothing */
>
>
> --
> Helg <[email protected]>
>
Anyone?