Re: [PATCH 1/4] file: export __alloc_fd()

From: Matthew Wilcox
Date: Mon Jul 30 2018 - 16:36:44 EST


On Mon, Jul 30, 2018 at 09:31:55AM -0700, Christoph Hellwig wrote:
> On Mon, Jul 30, 2018 at 04:37:07PM +0200, Christian Brauner wrote:
> > The Android binder driver will be turned into a module. Since it uses
> > __alloc_fd() we need to export this function.
>
> Err, hell no.
>
> It should be using an anon fd probably.

I'm not entirely sure I understand the binder code (... does anyone?)
but from what I can see, it intends to open a file descriptor in the
process which is the target of the message being sent. That strikes
me as wrong-headed; it should be allocating a struct file and passing
that file to the other process. When that process receives the message,
*it* allocates a file descriptor for itself.

But I think the binder user-space API relies on this. The userspace API
seems to rely on passing fd numbers around ... but I'm having trouble
figuring most of this user API out. Perhaps Martijn can help here.