summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2026-02-09 10:41:56 -0800
committerLinus Torvalds <torvalds@linux-foundation.org>2026-02-09 10:41:56 -0800
commit4b6c6bc6fab51684cc129f91211734f87db6b065 (patch)
treef4a30a2601ad672a813f88f8cfa79273d3b7a9fc
parent6252e917b9006dfa2f3d884fe0dbaf3e676c4108 (diff)
parent5334fc280735dcf5882511a219a99b5759e14870 (diff)
Merge tag 'vfs-7.0-rc1.rust' of git://git.kernel.org/pub/scm/linux/kernel/git/vfs/vfs
Pull vfs rust updates from Christian Brauner: "Allow inlining C helpers into Rust when using LTO: Add the __rust_helper annotation to all VFS-related Rust helper functions. Currently, C helpers cannot be inlined into Rust code even under LTO because LLVM detects slightly different codegen options between the C and Rust compilation units (differing null-pointer-check flags, builtin lists, and target feature strings). The __rust_helper macro is the first step toward fixing this: it is currently #defined to nothing, but a follow-up series will change it to __always_inline when compiling with LTO (while keeping it empty for bindgen, which ignores inline functions). This picks up the VFS portion (fs, pid_namespace, poll) of a larger tree-wide series" * tag 'vfs-7.0-rc1.rust' of git://git.kernel.org/pub/scm/linux/kernel/git/vfs/vfs: rust: poll: add __rust_helper to helpers rust: pid_namespace: add __rust_helper to helpers rust: fs: add __rust_helper to helpers
-rw-r--r--rust/helpers/fs.c2
-rw-r--r--rust/helpers/pid_namespace.c8
-rw-r--r--rust/helpers/poll.c5
3 files changed, 9 insertions, 6 deletions
diff --git a/rust/helpers/fs.c b/rust/helpers/fs.c
index a75c96763372..789d60fb8908 100644
--- a/rust/helpers/fs.c
+++ b/rust/helpers/fs.c
@@ -6,7 +6,7 @@
#include <linux/fs.h>
-struct file *rust_helper_get_file(struct file *f)
+__rust_helper struct file *rust_helper_get_file(struct file *f)
{
return get_file(f);
}
diff --git a/rust/helpers/pid_namespace.c b/rust/helpers/pid_namespace.c
index f41482bdec9a..f46ab779b527 100644
--- a/rust/helpers/pid_namespace.c
+++ b/rust/helpers/pid_namespace.c
@@ -3,18 +3,20 @@
#include <linux/pid_namespace.h>
#include <linux/cleanup.h>
-struct pid_namespace *rust_helper_get_pid_ns(struct pid_namespace *ns)
+__rust_helper struct pid_namespace *
+rust_helper_get_pid_ns(struct pid_namespace *ns)
{
return get_pid_ns(ns);
}
-void rust_helper_put_pid_ns(struct pid_namespace *ns)
+__rust_helper void rust_helper_put_pid_ns(struct pid_namespace *ns)
{
put_pid_ns(ns);
}
/* Get a reference on a task's pid namespace. */
-struct pid_namespace *rust_helper_task_get_pid_ns(struct task_struct *task)
+__rust_helper struct pid_namespace *
+rust_helper_task_get_pid_ns(struct task_struct *task)
{
struct pid_namespace *pid_ns;
diff --git a/rust/helpers/poll.c b/rust/helpers/poll.c
index 7e5b1751c2d5..78b3839b50f0 100644
--- a/rust/helpers/poll.c
+++ b/rust/helpers/poll.c
@@ -3,8 +3,9 @@
#include <linux/export.h>
#include <linux/poll.h>
-void rust_helper_poll_wait(struct file *filp, wait_queue_head_t *wait_address,
- poll_table *p)
+__rust_helper void rust_helper_poll_wait(struct file *filp,
+ wait_queue_head_t *wait_address,
+ poll_table *p)
{
poll_wait(filp, wait_address, p);
}