Index: sys/compat/linuxkpi/common/include/linux/mutex.h =================================================================== --- sys/compat/linuxkpi/common/include/linux/mutex.h +++ sys/compat/linuxkpi/common/include/linux/mutex.h @@ -37,6 +37,7 @@ #include #include +#include typedef struct mutex { struct sx sx; @@ -125,6 +126,16 @@ return (sx_xlocked(&m->sx)); } +static inline int atomic_dec_and_mutex_lock(atomic_t *cnt, struct mutex *m) +{ + if (atomic_dec_and_test(cnt)) { + mutex_lock(m); + return (1); + } + + return (0); +} + #ifdef WITNESS_ALL /* NOTE: the maximum WITNESS name is 64 chars */ #define __mutex_name(name, file, line) \