> 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?


Reply via email to