From: Alice Ryhl <aliceryhl@google.com>
To: Lorenzo Stoakes <lorenzo.stoakes@oracle.com>
Cc: "Greg Kroah-Hartman" <gregkh@linuxfoundation.org>,
"Carlos Llamas" <cmllamas@google.com>,
"Alexander Viro" <viro@zeniv.linux.org.uk>,
"Christian Brauner" <brauner@kernel.org>,
"Jan Kara" <jack@suse.cz>, "Paul Moore" <paul@paul-moore.com>,
"James Morris" <jmorris@namei.org>,
"Serge E. Hallyn" <serge@hallyn.com>,
"Andrew Morton" <akpm@linux-foundation.org>,
"Dave Chinner" <david@fromorbit.com>,
"Qi Zheng" <zhengqi.arch@bytedance.com>,
"Roman Gushchin" <roman.gushchin@linux.dev>,
"Muchun Song" <muchun.song@linux.dev>,
"David Hildenbrand" <david@kernel.org>,
"Liam R. Howlett" <Liam.Howlett@oracle.com>,
"Vlastimil Babka" <vbabka@suse.cz>,
"Mike Rapoport" <rppt@kernel.org>,
"Suren Baghdasaryan" <surenb@google.com>,
"Michal Hocko" <mhocko@suse.com>,
"Miguel Ojeda" <ojeda@kernel.org>,
"Boqun Feng" <boqun.feng@gmail.com>,
"Gary Guo" <gary@garyguo.net>,
"Björn Roy Baron" <bjorn3_gh@protonmail.com>,
"Benno Lossin" <lossin@kernel.org>,
"Andreas Hindborg" <a.hindborg@kernel.org>,
"Trevor Gross" <tmgross@umich.edu>,
"Danilo Krummrich" <dakr@kernel.org>,
kernel-team@android.com, linux-fsdevel@vger.kernel.org,
linux-kernel@vger.kernel.org,
linux-security-module@vger.kernel.org, linux-mm@kvack.org,
rust-for-linux@vger.kernel.org
Subject: Re: [PATCH 1/5] export file_close_fd and task_work_add
Date: Tue, 10 Feb 2026 08:47:52 +0000 [thread overview]
Message-ID: <aYrwuPus_cOyumGo@google.com> (raw)
In-Reply-To: <df876a6e-013c-4566-890d-7c1d662fced3@lucifer.local>
On Mon, Feb 09, 2026 at 03:21:58PM +0000, Lorenzo Stoakes wrote:
> On Thu, Feb 05, 2026 at 01:45:40PM +0000, Alice Ryhl wrote:
> > +/**
> > + * close_fd_safe - close the given fd
> > + * @fd: file descriptor to close
> > + * @flags: gfp flags for allocation of task work
> > + *
> > + * This closes an fd. Unlike close_fd(), this may be used even if the fd is
> > + * currently held with fdget().
> > + *
> > + * Returns: 0 or an error code
> > + */
> > +int close_fd_safe(unsigned int fd, gfp_t flags)
> > +{
> > + struct close_fd_safe_task_work *twcb;
> > +
> > + twcb = kzalloc(sizeof(*twcb), flags);
> > + if (!twcb)
> > + return -ENOMEM;
> > + init_task_work(&twcb->twork, close_fd_safe_callback);
> > + twcb->file = file_close_fd(fd);
> > + if (!twcb->file) {
> > + kfree(twcb);
> > + return -EBADF;
> > + }
> > +
> > + get_file(twcb->file);
> > + filp_close(twcb->file, current->files);
> > + task_work_add(current, &twcb->twork, TWA_RESUME);
> > + return 0;
> > +}
>
> Would need an EXPORT_SYMBOL_FOR_MODULES(...) here right?
Ah yeah, for Binder to become a module it would need to be exported.
(Though maybe it's worth moving this logic even if Binder is not made
into a module?)
> > diff --git a/include/linux/fdtable.h b/include/linux/fdtable.h
> > index c45306a9f007..1c99a56c0cdf 100644
> > --- a/include/linux/fdtable.h
> > +++ b/include/linux/fdtable.h
> > @@ -111,6 +111,7 @@ int iterate_fd(struct files_struct *, unsigned,
> > const void *);
> >
> > extern int close_fd(unsigned int fd);
> > +extern int close_fd_safe(unsigned int fd, gfp_t flags);
>
> One nit, generally well in mm anyway we avoid the 'extern' and remove them as we
> go. Not sure about vfs actually though?
Right. Not sure about this.
> > extern struct file *file_close_fd(unsigned int fd);
> >
> > extern struct kmem_cache *files_cachep;
>
> I mean this is essentially taking what's in binder and making it a general
> thing, so needs Christian's input on whether this is sensible I think :)
Yeah.
Alice
next prev parent reply other threads:[~2026-02-10 8:47 UTC|newest]
Thread overview: 43+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-02-05 10:51 [PATCH 0/5] Make Rust Binder build as a module Alice Ryhl
2026-02-05 10:51 ` [PATCH 1/5] export file_close_fd and task_work_add Alice Ryhl
2026-02-05 11:20 ` Lorenzo Stoakes
2026-02-05 11:42 ` Alice Ryhl
2026-02-05 11:53 ` Lorenzo Stoakes
2026-02-05 13:45 ` Alice Ryhl
2026-02-09 15:21 ` Lorenzo Stoakes
2026-02-10 8:47 ` Alice Ryhl [this message]
2026-02-05 11:38 ` Christian Brauner
2026-02-05 11:52 ` Jan Kara
2026-02-05 12:07 ` Alice Ryhl
2026-02-05 10:51 ` [PATCH 2/5] security: export binder symbols Alice Ryhl
2026-02-20 0:00 ` Paul Moore
2026-02-05 10:51 ` [PATCH 3/5] mm: export zap_page_range_single and list_lru_add/del Alice Ryhl
2026-02-05 10:59 ` David Hildenbrand (arm)
2026-02-05 11:04 ` Alice Ryhl
2026-02-05 11:12 ` David Hildenbrand (arm)
2026-02-05 11:18 ` Alice Ryhl
2026-02-05 11:30 ` David Hildenbrand (arm)
2026-02-05 11:29 ` Lorenzo Stoakes
2026-02-05 11:43 ` David Hildenbrand (arm)
2026-02-05 11:57 ` David Hildenbrand (arm)
2026-02-05 12:01 ` Lorenzo Stoakes
2026-02-05 12:06 ` David Hildenbrand (arm)
2026-02-05 12:07 ` Lorenzo Stoakes
2026-02-05 11:57 ` Lorenzo Stoakes
2026-02-05 12:03 ` David Hildenbrand (arm)
2026-02-05 12:12 ` Lorenzo Stoakes
2026-02-05 12:24 ` Miguel Ojeda
2026-02-05 12:28 ` Lorenzo Stoakes
2026-02-05 11:58 ` Alice Ryhl
2026-02-05 12:10 ` Lorenzo Stoakes
2026-02-05 12:13 ` David Hildenbrand (arm)
2026-02-05 12:19 ` Alice Ryhl
2026-02-05 12:24 ` Lorenzo Stoakes
2026-02-05 12:30 ` David Hildenbrand (Arm)
2026-02-09 15:22 ` Lorenzo Stoakes
2026-02-05 12:16 ` Alice Ryhl
2026-02-05 12:07 ` Alice Ryhl
2026-02-05 12:18 ` Lorenzo Stoakes
2026-02-05 10:51 ` [PATCH 4/5] ipc: export init_ipc_ns and put_ipc_ns Alice Ryhl
2026-02-05 10:51 ` [PATCH 5/5] rust_binder: mark ANDROID_BINDER_IPC_RUST tristate Alice Ryhl
2026-02-05 13:21 ` Gary Guo
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=aYrwuPus_cOyumGo@google.com \
--to=aliceryhl@google.com \
--cc=Liam.Howlett@oracle.com \
--cc=a.hindborg@kernel.org \
--cc=akpm@linux-foundation.org \
--cc=bjorn3_gh@protonmail.com \
--cc=boqun.feng@gmail.com \
--cc=brauner@kernel.org \
--cc=cmllamas@google.com \
--cc=dakr@kernel.org \
--cc=david@fromorbit.com \
--cc=david@kernel.org \
--cc=gary@garyguo.net \
--cc=gregkh@linuxfoundation.org \
--cc=jack@suse.cz \
--cc=jmorris@namei.org \
--cc=kernel-team@android.com \
--cc=linux-fsdevel@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=linux-security-module@vger.kernel.org \
--cc=lorenzo.stoakes@oracle.com \
--cc=lossin@kernel.org \
--cc=mhocko@suse.com \
--cc=muchun.song@linux.dev \
--cc=ojeda@kernel.org \
--cc=paul@paul-moore.com \
--cc=roman.gushchin@linux.dev \
--cc=rppt@kernel.org \
--cc=rust-for-linux@vger.kernel.org \
--cc=serge@hallyn.com \
--cc=surenb@google.com \
--cc=tmgross@umich.edu \
--cc=vbabka@suse.cz \
--cc=viro@zeniv.linux.org.uk \
--cc=zhengqi.arch@bytedance.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.