All of lore.kernel.org
 help / color / mirror / Atom feed
From: Joel Fernandes <joel@joelfernandes.org>
To: Christian Brauner <christian@brauner.io>
Cc: jannh@google.com, khlebnikov@yandex-team.ru, luto@kernel.org,
	dhowells@redhat.com, serge@hallyn.com, ebiederm@xmission.com,
	linux-api@vger.kernel.org, linux-kernel@vger.kernel.org,
	arnd@arndb.de, keescook@chromium.org, adobriyan@gmail.com,
	tglx@linutronix.de, mtk.manpages@gmail.com, bl0pbl33p@gmail.com,
	ldv@altlinux.org, akpm@linux-foundation.org, oleg@redhat.com,
	nagarathnam.muthusamy@oracle.com, cyphar@cyphar.com,
	viro@zeniv.linux.org.uk, dancol@google.com
Subject: Re: [PATCH v1 2/4] pid: add pidctl()
Date: Tue, 26 Mar 2019 13:15:25 -0400	[thread overview]
Message-ID: <20190326171525.GA116974@google.com> (raw)
In-Reply-To: <20190326170827.p2wlwsscf5u6f3i7@brauner.io>

On Tue, Mar 26, 2019 at 06:08:28PM +0100, Christian Brauner wrote:
[snip]
> > > +	struct pid *struct_pid;
> > > +	pid_t result;
> > > +
> > > +	if (flags)
> > > +		return -EINVAL;
> > > +
> > > +	switch (cmd) {
> > > +	case PIDCMD_QUERY_PID:
> > > +		break;
> > > +	case PIDCMD_QUERY_PIDNS:
> > > +		if (pid)
> > > +			return -EINVAL;
> > > +		break;
> > > +	case PIDCMD_GET_PIDFD:
> > > +		break;
> > > +	default:
> > > +		return -EOPNOTSUPP;
> > > +	}
> > > +
> > > +	source_ns = get_pid_ns_by_fd(source);
> > > +	if (IS_ERR(source_ns))
> > > +		return PTR_ERR(source_ns);
> > > +
> > > +	target_ns = get_pid_ns_by_fd(target);
> > > +	if (IS_ERR(target_ns)) {
> > > +		put_pid_ns(source_ns);
> > > +		return PTR_ERR(target_ns);
> > > +	}
> > > +
> > > +	if (cmd == PIDCMD_QUERY_PIDNS) {
> > > +		result = pidns_related(source_ns, target_ns);
> > > +	} else {
> > > +		rcu_read_lock();
> > > +		struct_pid = get_pid(find_pid_ns(pid, source_ns));
> > > +		rcu_read_unlock();
> > > +
> > > +		if (struct_pid)
> > > +			result = pid_nr_ns(struct_pid, target_ns);
> > > +		else
> > > +			result = -ESRCH;
> > > +
> > > +		if (cmd == PIDCMD_GET_PIDFD && (result > 0))
> > > +			result = pidfd_create_fd(struct_pid, O_CLOEXEC);
> > 
> > pidfd_create_fd already does put_pid on errors..
> 
> it also takes its own reference
> 
> > 
> > > +
> > > +		if (!result)
> > > +			result = -ENOENT;
> > > +
> > > +		put_pid(struct_pid);
> > 
> > so on error you would put_pid twice which seems odd..  I would suggest, don't
> > release the pid ref from within pidfd_create_fd, release the ref from the
> > caller. Speaking of which, I added to my list to convert the pid->count to
> > refcount_t at some point :)
> 
> as i said, pidfd_create_fd takes its own reference

Oh. That was easy to miss. Fair enough. I take that comment back.

Please also reply to the other comments I posted, thanks. Generally on LKML,
I have seen there is an expectation to reply to all reviewer's review
comments even if you agree with them. This helps keep the review going
smoothly. Just my 2 cents.

thanks,

 - Joel

  reply	other threads:[~2019-03-26 17:15 UTC|newest]

Thread overview: 42+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-03-26 15:55 [PATCH v1 0/4] pid: add pidctl() Christian Brauner
2019-03-26 15:55 ` [PATCH v1 1/4] Make anon_inodes unconditional Christian Brauner
2019-03-26 15:55 ` [PATCH v1 2/4] pid: add pidctl() Christian Brauner
2019-03-26 16:17   ` Daniel Colascione
2019-03-26 16:17     ` Daniel Colascione
2019-03-26 16:23     ` Christian Brauner
2019-03-26 16:23       ` Christian Brauner
2019-03-26 16:31       ` Christian Brauner
2019-03-26 16:31         ` Christian Brauner
2019-03-26 16:34         ` Christian Brauner
2019-03-26 16:34           ` Christian Brauner
2019-03-26 16:38           ` Daniel Colascione
2019-03-26 16:38             ` Daniel Colascione
2019-03-26 16:43             ` Christian Brauner
2019-03-26 16:43               ` Christian Brauner
2019-03-26 16:50               ` Daniel Colascione
2019-03-26 16:50                 ` Daniel Colascione
2019-03-26 17:05                 ` Christian Brauner
2019-03-26 17:05                   ` Christian Brauner
2019-03-26 16:42           ` Andy Lutomirski
2019-03-26 16:42             ` Andy Lutomirski
2019-03-26 16:46             ` Christian Brauner
2019-03-26 16:46               ` Christian Brauner
2019-03-26 17:00               ` Daniel Colascione
2019-03-26 17:00                 ` Daniel Colascione
2019-03-26 16:33       ` Daniel Colascione
2019-03-26 16:33         ` Daniel Colascione
2019-03-26 17:06   ` Joel Fernandes
2019-03-26 17:08     ` Christian Brauner
2019-03-26 17:15       ` Joel Fernandes [this message]
2019-03-26 17:17         ` Christian Brauner
2019-03-26 17:18           ` Joel Fernandes
2019-03-26 17:18             ` Joel Fernandes
2019-03-26 17:22     ` Christian Brauner
2019-03-26 18:10       ` Joel Fernandes
2019-03-26 18:19         ` Christian Brauner
2019-03-26 18:47           ` Joel Fernandes
2019-03-26 19:19         ` Christian Brauner
2019-03-26 19:51           ` Joel Fernandes
2019-03-26 19:57             ` Christian Brauner
2019-03-26 15:55 ` [PATCH v1 3/4] signal: support pidctl() with pidfd_send_signal() Christian Brauner
2019-03-26 15:55 ` [PATCH v1 4/4] tests: add pidctl() tests Christian Brauner

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=20190326171525.GA116974@google.com \
    --to=joel@joelfernandes.org \
    --cc=adobriyan@gmail.com \
    --cc=akpm@linux-foundation.org \
    --cc=arnd@arndb.de \
    --cc=bl0pbl33p@gmail.com \
    --cc=christian@brauner.io \
    --cc=cyphar@cyphar.com \
    --cc=dancol@google.com \
    --cc=dhowells@redhat.com \
    --cc=ebiederm@xmission.com \
    --cc=jannh@google.com \
    --cc=keescook@chromium.org \
    --cc=khlebnikov@yandex-team.ru \
    --cc=ldv@altlinux.org \
    --cc=linux-api@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=luto@kernel.org \
    --cc=mtk.manpages@gmail.com \
    --cc=nagarathnam.muthusamy@oracle.com \
    --cc=oleg@redhat.com \
    --cc=serge@hallyn.com \
    --cc=tglx@linutronix.de \
    --cc=viro@zeniv.linux.org.uk \
    /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.