[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20250411135445.GF5322@redhat.com>
Date: Fri, 11 Apr 2025 15:54:45 +0200
From: Oleg Nesterov <oleg@...hat.com>
To: Christian Brauner <brauner@...nel.org>
Cc: linux-fsdevel@...r.kernel.org, Jeff Layton <jlayton@...nel.org>,
Lennart Poettering <lennart@...ttering.net>,
Daan De Meyer <daan.j.demeyer@...il.com>,
Mike Yuan <me@...dnzj.com>, linux-kernel@...r.kernel.org,
Peter Ziljstra <peterz@...radead.org>
Subject: Re: [PATCH v2 2/2] pidfs: ensure consistent ENOENT/ESRCH reporting
For both patches:
Reviewed-by: Oleg Nesterov <oleg@...hat.com>
a minor nit below...
On 04/11, Christian Brauner wrote:
>
> int pidfd_prepare(struct pid *pid, unsigned int flags, struct file **ret)
> {
> - int err = 0;
> -
> - if (!(flags & PIDFD_THREAD)) {
> + scoped_guard(spinlock_irq, &pid->wait_pidfd.lock) {
> + /*
> + * If this wasn't a thread-group leader struct pid or
> + * the task already been reaped report ESRCH to
> + * userspace.
> + */
> + if (!pid_has_task(pid, PIDTYPE_PID))
> + return -ESRCH;
The "If this wasn't a thread-group leader struct pid" part of the
comment looks a bit confusing to me, as if pid_has_task(PIDTYPE_PID)
should return false in this case.
OTOH, perhaps it makes sense to explain scoped_guard(wait_pidfd.lock)?
Something like "see unhash_process -> wake_up_all(), detach_pid(TGID)
isn't possible if pid_has_task(PID) succeeds".
Oleg.
Powered by blists - more mailing lists