On Tue, Sep 15, 2026 at 9:02 AM Linus Torvalds <[email protected]> wrote: > > On Tue, 15 Sept 2026 at 04:31, Christian Brauner <[email protected]> wrote: > > > > TL;DR, this lets arch code handle fd install and cleanup. fd_prepare() > > allocates a descriptor like get_unused_fd_flags() does and records it in > > a slot on the task. fd_stage() attaches the file to that slot and > > returns the number. > > Honestly, I am *not* a fan. At all. > > I think this adds complexity rather than removing it. > > The diffstat tells a story: > > > 106 files changed, 962 insertions(+), 861 deletions(-) > > in how this adds a hundred lines more than it deletes. > > But to make things worse, it adds them in bad places: low-level > architecture assembly code. > > Those extra lines are *not* making complicated code simpler. Quite the > reverse. They are taking fairly straightforward "just deal with errors > with normal cleanup in the place where it makes sense" and makes the > *straightforward* case simpler, while making the big picture more > complicated and subtle, and adding new code to places that are not > simple and just blindly do somethign that makes no sense in that > context.
With fd's it is more than just about error rollback.. exposing an fd to userspace mid-way thru an ioctl is an easy security bug to write.. OTOH, "just use FD_PREPARE() / fd_publish()".. BR, -R
