blob: d7b6381f89e0c37a5e62d0e8e38b5dd29340749e [file] [log] [blame]
#ifndef __BACKPORT_KREF_H
#define __BACKPORT_KREF_H
#include_next <linux/kref.h>
#include <linux/version.h>
#if LINUX_VERSION_CODE < KERNEL_VERSION(3,8,0)
#include <linux/atomic.h>
/* This was backported to some kernels (e.g. 3.2.44 and 3.4.41), mask it */
#define kref_get_unless_zero LINUX_BACKPORT(kref_get_unless_zero)
/* This backports:
*
* commit 4b20db3de8dab005b07c74161cb041db8c5ff3a7
* Author: Thomas Hellstrom <thellstrom@vmware.com>
* Date: Tue Nov 6 11:31:49 2012 +0000
*
* kref: Implement kref_get_unless_zero v3
*/
static inline int __must_check kref_get_unless_zero(struct kref *kref)
{
return atomic_add_unless(&kref->refcount, 1, 0);
}
#endif
#endif /* __BACKPORT_KREF_H */