X-Git-Url: http://git.liburcu.org/?a=blobdiff_plain;f=include%2Fwrapper%2Ffdtable.h;h=46fc3f33dddef766d7dfea8e71f7a8711b956b74;hb=c35f268c4169db55bd65c95472442cd4d00eb53f;hp=fa5f720775577a11c6693903d29840d3dc2efc53;hpb=aee34d916bdae79abcf103ef098cbb2e0c20bf83;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