X-Git-Url: http://git.lttng.org./?a=blobdiff_plain;f=include%2Fwrapper%2Ffdtable.h;h=46fc3f33dddef766d7dfea8e71f7a8711b956b74;hb=93e9f463b4cc4af01a007499de4d61222668b6b7;hp=e07dfebc91c5dd6e64624363a2bd791769c70c97;hpb=5f4c791e2ad2c814101ccdb500e65543f2792c41;p=lttng-modules.git diff --git a/include/wrapper/fdtable.h b/include/wrapper/fdtable.h index e07dfebc..46fc3f33 100644 --- a/include/wrapper/fdtable.h +++ b/include/wrapper/fdtable.h @@ -12,52 +12,33 @@ #include #include -#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 */