projects
/
lttng-modules.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fix: get_file_rcu is missing in kernels < 4.1
[lttng-modules.git]
/
include
/
wrapper
/
fdtable.h
diff --git
a/include/wrapper/fdtable.h
b/include/wrapper/fdtable.h
index 9c11d02e9b853bae014ed9afa246541f04a45193..8b32c030cbb5b36eb42262a7b4228242756237be 100644
(file)
--- a/
include/wrapper/fdtable.h
+++ b/
include/wrapper/fdtable.h
@@
-29,7
+29,7
@@
struct file *lttng_lookup_fdget_rcu(unsigned int fd)
return NULL;
return file;
}
return NULL;
return file;
}
-#el
se
+#el
if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,1,0))
static inline
struct file *lttng_lookup_fdget_rcu(unsigned int fd)
{
static inline
struct file *lttng_lookup_fdget_rcu(unsigned int fd)
{
@@
-39,6
+39,16
@@
struct file *lttng_lookup_fdget_rcu(unsigned int fd)
return NULL;
return file;
}
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))
#endif
#if (LTTNG_LINUX_VERSION_CODE < LTTNG_KERNEL_VERSION(3,7,0))
This page took
0.024903 seconds
and
4
git commands to generate.