Page MenuHomeFreeBSD

D25942.id75359.diff
No OneTemporary

D25942.id75359.diff

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 <linux/compiler.h>
#include <linux/kernel.h>
#include <linux/mutex.h>
+#include <linux/refcount.h>
#include <asm/atomic.h>
@@ -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))

File Metadata

Mime Type
text/plain
Expires
Tue, Aug 25, 5:07 AM (1 h, 37 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
37221574
Default Alt Text
D25942.id75359.diff (764 B)

Event Timeline