Messages in this thread | | | From | (Eric W. Biederman) | Date | Mon, 19 Nov 2018 13:02:06 -0600 | Subject | Re: [PATCH v1 2/2] signal: add procfd_signal() syscall |
| |
Christian Brauner <christian@brauner.io> writes:
> On Mon, Nov 19, 2018 at 07:59:24AM -0800, Daniel Colascione wrote: >> You never addressed my comment on the previous patch about your use of > > Sorry, that thread exploded so quickly that I might have missed it. > >> private_data here. Why can't you use the struct pid reference that's >> already in the inode? > > If that's what people prefer we can probably use that. There was > precedent for stashing away such data in fs/proc/base.c already for > various other things including user namespaces and struct mm so I > followed this model. A prior version of my patch (I didn't send out) did > retrive the inode via proc_pid() in .open() took an additional reference > via get_pid() and dropped it in .release(). Do we prefer that?
If you are using proc/<pid>/ directories as your file descriptors, you don't need to add an open or a release method at all. The existing file descriptors hold a reference to the inode which holds a reference the the struct pid.
The only time you need to get a reference is when you need a task and kill_pid_info already performs that work for you.
So using proc_pid is all you need to do to get the pid from the existing file descriptors.
Eric
| |