Fix: timer_start changed in linux 6.8.0-rc1
[lttng-modules.git] / include / wrapper / fdtable.h
index e07dfebc91c5dd6e64624363a2bd791769c70c97..46fc3f33dddef766d7dfea8e71f7a8711b956b74 100644 (file)
 #include <linux/fdtable.h>
 #include <linux/sched.h>
 
-#if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,11,0))
+#if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(6,7,0))
 static inline
-struct file *lttng_lookup_fd_rcu(unsigned int fd)
+struct file *lttng_lookup_fdget_rcu(unsigned int fd)
 {
-       return lookup_fd_rcu(fd);
+       return lookup_fdget_rcu(fd);
 }
-#else
+
+#elif (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,11,0))
 static inline
-struct file *lttng_lookup_fd_rcu(unsigned int fd)
+struct file *lttng_lookup_fdget_rcu(unsigned int fd)
 {
-       return fcheck(fd);
-}
-#endif
-
-#if (LTTNG_LINUX_VERSION_CODE < LTTNG_KERNEL_VERSION(3,7,0))
-
-int lttng_iterate_fd(struct files_struct *files,
-               unsigned int first,
-               int (*cb)(const void *, struct file *, unsigned int),
-               const void *ctx);
-
-#else
-
-/*
- * iterate_fd() appeared at commit
- * c3c073f808b22dfae15ef8412b6f7b998644139a in the Linux kernel (first
- * released kernel: v3.7).
- */
-#define lttng_iterate_fd       iterate_fd
+       struct file* file = lookup_fd_rcu(fd);
 
-#endif
-
-#if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,4,0))
-
-static inline bool lttng_close_on_exec(int fd, const struct fdtable *fdt)
-{
-       return close_on_exec(fd, fdt);
+       if (unlikely(!file || !get_file_rcu(file)))
+               return NULL;
+       return file;
 }
-
 #else
-
-static inline bool lttng_close_on_exec(int fd, const struct fdtable *fdt)
+static inline
+struct file *lttng_lookup_fdget_rcu(unsigned int fd)
 {
-       return FD_ISSET(fd, fdt->close_on_exec);
-}
+       struct file* file = fcheck(fd);
 
+       if (unlikely(!file || !get_file_rcu(file)))
+               return NULL;
+       return file;
+}
 #endif
 
 #endif /* _LTTNG_WRAPPER_FDTABLE_H */
This page took 0.024549 seconds and 4 git commands to generate.