Index: head/sys/compat/linuxkpi/common/include/linux/kref.h =================================================================== --- head/sys/compat/linuxkpi/common/include/linux/kref.h +++ head/sys/compat/linuxkpi/common/include/linux/kref.h @@ -38,6 +38,7 @@ #include #include #include +#include #include @@ -76,6 +77,20 @@ } return 0; } + +static inline int +kref_put_lock(struct kref *kref, void (*rel)(struct kref *kref), + spinlock_t *lock) +{ + + if (refcount_release(&kref->refcount.counter)) { + spin_lock(lock); + rel(kref); + return (1); + } + return (0); +} + static inline int kref_sub(struct kref *kref, unsigned int count,