> So we've spoken about this idea quite a few times over the years that > we could reserve fds and files on a task and then install or a clean > them up on syscall success or error and get rid of most of the > complicated cleanup dance that we have. > > My original approach to this had been to implement FD_PREPARE() based on > cleanup guards and use scopes to make this happen. The other idea was > what I'm illustrating here. It is overall equally robust and makes the > install fd and file pattern work even if it there's a ton of cleanup or > setup work happening in the middle. This is particular evident in the > conversions of various dma/drm code later in the series. > > So this lets the syscall path do the install. 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 > [ ... ] > fdtagble with outstanding reservations. Kernel threads never return to > userspace so nothing would commit. Anything left at exit is a bug and > gets warned about and dropped. > > Signed-off-by: Christian Brauner (Amutable) <[email protected]>
Sashiko has reviewed this patch and found no issues. It looks great! -- Sashiko AI review ยท https://sashiko.dev/#/patchset/20260915-work-fd-reserve-unify-folded-v1-0-4d5217d6b...@kernel.org?part=1
