Index: sys/compat/linuxkpi/common/include/linux/kref.h =================================================================== --- sys/compat/linuxkpi/common/include/linux/kref.h +++ sys/compat/linuxkpi/common/include/linux/kref.h @@ -38,6 +38,7 @@ #include #include #include +#include #include @@ -77,6 +78,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, void (*rel)(struct kref *kref))