X-Git-Url: http://git.lttng.org./?a=blobdiff_plain;f=include%2Fwrapper%2Ffdtable.h;h=46fc3f33dddef766d7dfea8e71f7a8711b956b74;hb=1158b2706e58c2f94e6bd746e0504b989320c0a1;hp=fa5f720775577a11c6693903d29840d3dc2efc53;hpb=1cbe11ed929855ce83efb9ce89447af305efa075;p=lttng-modules.git diff --git a/include/wrapper/fdtable.h b/include/wrapper/fdtable.h index fa5f7207..46fc3f33 100644 --- a/include/wrapper/fdtable.h +++ b/include/wrapper/fdtable.h @@ -12,17 +12,32 @@ #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); +} + +#elif (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,11,0)) +static inline +struct file *lttng_lookup_fdget_rcu(unsigned int fd) +{ + struct file* file = lookup_fd_rcu(fd); + + if (unlikely(!file || !get_file_rcu(file))) + return NULL; + return file; } #else static inline -struct file *lttng_lookup_fd_rcu(unsigned int fd) +struct file *lttng_lookup_fdget_rcu(unsigned int fd) { - return fcheck(fd); + struct file* file = fcheck(fd); + + if (unlikely(!file || !get_file_rcu(file))) + return NULL; + return file; } #endif