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

From: Al Viro
Date: Mon Jul 30 2018 - 17:43:17 EST


On Mon, Jul 30, 2018 at 01:36:33PM -0700, Matthew Wilcox wrote:
> 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.

... and there's a perfectly sane solution to that - it's called git rm.