mirror of
https://github.com/torvalds/linux.git
synced 2026-03-08 01:04:41 +01:00
vfs-7.0-rc1.rust
Please consider pulling these changes from the signed vfs-7.0-rc1.rust tag. Thanks! Christian -----BEGIN PGP SIGNATURE----- iHUEABYKAB0WIQRAhzRXHqcMeLMyaSiRxhvAZXjcogUCaYX49gAKCRCRxhvAZXjc oheVAQCQdJGRfbo13G4Z8UJg239TRTkCckEpXJaPMyunpdeSNwD/YQctuOS3vW6b TbTBY4vlpSmdWYwZUH+P6zZaeSMgsQE= =R6mK -----END PGP SIGNATURE----- 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
This commit is contained in:
commit
4b6c6bc6fa
3 changed files with 9 additions and 6 deletions
|
|
@ -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);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue