[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <20260108074201.435280-1-viro@zeniv.linux.org.uk>
Date: Thu, 8 Jan 2026 07:41:53 +0000
From: Al Viro <viro@...iv.linux.org.uk>
To: linux-fsdevel@...r.kernel.org
Cc: torvalds@...ux-foundation.org,
brauner@...nel.org,
jack@...e.cz,
mjguzik@...il.com,
paul@...l-moore.com,
axboe@...nel.dk,
audit@...r.kernel.org,
io-uring@...r.kernel.org,
linux-kernel@...r.kernel.org
Subject: [RFC PATCH 0/8] experimental struct filename followups
This series switches the filename-consuming primitives to variants
that leave dropping the reference(s) to caller. These days it's
fairly painless, and results look simpler wrt lifetime rules:
* with 3 exceptions, all instances have constructors and destructors
happen in the same scope (via CLASS(filename...), at that)
* CLASS(filename_consume) has no users left, could be dropped.
* exceptions are:
* audit dropping the references it stashed in audit_names
* fsconfig(2) creating and dropping references in two subcommands
* fs_lookup_param() playing silly buggers.
That's it.
If we go that way, this will certainly get reordered back into the main series
and have several commits in there ripped apart and folded into these ones.
E.g. no sense to convert do_renameat2() et.al. to filename_consume, only to
have that followed by the first 6 commits here, etc.
For now I've put those into #experimental.filename, on top of #work.filename.
Comments would be very welcome...
Al Viro (8):
non-consuming variant of do_renameat2()
non-consuming variant of do_linkat()
non-consuming variant of do_symlinkat()
non-consuming variant of do_mkdirat()
non-consuming variant of do_mknodat()
non-consuming variants of do_{unlinkat,rmdir}()
execve: fold {compat_,}do_execve{,at}() into their sole callers
do_execveat_common(): don't consume filename reference
Documentation/filesystems/porting.rst | 8 +++
fs/coredump.c | 3 +-
fs/exec.c | 87 ++++++++-------------------
fs/init.c | 22 ++++---
fs/internal.h | 14 ++---
fs/namei.c | 87 +++++++++++++++------------
io_uring/fs.c | 25 +++++---
7 files changed, 117 insertions(+), 129 deletions(-)
Powered by blists - more mailing lists