Open-code the get_file_rcu using atomic_long_inc_not_zero() for kernel
versions < 4.1.
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Change-Id: I0fa905b078165ede8b1837bb8d77891d05d0e8ed
return NULL;
return file;
}
-#else
+#elif (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,1,0))
static inline
struct file *lttng_lookup_fdget_rcu(unsigned int fd)
{
return NULL;
return file;
}
+#else
+static inline
+struct file *lttng_lookup_fdget_rcu(unsigned int fd)
+{
+ struct file* file = fcheck(fd);
+
+ if (unlikely(!file || !atomic_long_inc_not_zero(&file->f_count)))
+ return NULL;
+ return file;
+}
#endif
#if (LTTNG_LINUX_VERSION_CODE < LTTNG_KERNEL_VERSION(3,7,0))