Patch from abbotti@mev.co.uk (Ian Abbott):
authorFrank Mori Hess <fmhess@speakeasy.net>
Mon, 5 Dec 2005 01:05:18 +0000 (01:05 +0000)
committerFrank Mori Hess <fmhess@speakeasy.net>
Mon, 5 Dec 2005 01:05:18 +0000 (01:05 +0000)
KREF_PUT can be simplified for 2.6.12 upwards - it just needs to call kref_put
and pass on the return value.

Also, the kref stuff first appeared in 2.6.5, not 2.6.0.

include/linux/kref.h

index 20d4aa38ac7d8686a5134e9799c7f8ed4db24f5c..35ce9ec38d4b8f683a2a3056dbe8eef334705355 100644 (file)
@@ -26,7 +26,7 @@ Copyright (C) 2002-2003 Patrick Mochel <mochel@osdl.org>
 
 #include <linux/version.h>
 
-#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,0)
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,5)
 
 #include <linux/types.h>
 #include <asm/atomic.h>
@@ -98,6 +98,7 @@ static inline void KREF_INIT(struct kref *kref, void (*release) (struct kref *kr
 
 static inline int KREF_PUT(struct kref *kref, void (*release) (struct kref *kref))
 {
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,12)
        int retval;
        if(atomic_read(&kref->refcount) == 1)
        {
@@ -108,6 +109,9 @@ static inline int KREF_PUT(struct kref *kref, void (*release) (struct kref *kref
        }
        kref_put(kref, release);
        return retval;
+#else
+       return kref_put(kref, release);
+#endif // LINUX_VERSION_CODE < KERNEL_VERSION(2,6,12)
 }
 
 #endif // LINUX_VERSION_CODE < KERNEL_VERSION(2,6,9)