[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <1505091480.21121.32.camel@surriel.com>
Date: Sun, 10 Sep 2017 20:58:00 -0400
From: Rik van Riel <riel@...riel.com>
To: Al Viro <viro@...IV.linux.org.uk>,
Gargi Sharma <gs051095@...il.com>
Cc: linux-kernel@...r.kernel.org, julia.lawall@...6.fr,
akpm@...ux-foundation.org, mingo@...nel.org,
pasha.tatashin@...cle.com, ktkhai@...tuozzo.com, oleg@...hat.com,
wangkefeng.wang@...wei.org
Subject: Re: [RFC 1/2] proc: Return if nothing to unmount
On Sat, 2017-09-09 at 19:31 +0100, Al Viro wrote:
> On Sat, Sep 09, 2017 at 06:03:16PM +0530, Gargi Sharma wrote:
> > If a task exits before procfs is mounted, proc_flush_task_mnt will
> > be called with a NULL mnt parameter. In that case, not only is
> > there
> > nothing to unhash, but trying to do so will oops the kernel with a
> > null pointer dereference.
>
> You are misreading that sucker. It's about userland mounts, it's
> about
> the internal ones in pidns, for each pidns the process belongs to.
>
> IOW, what you are adding is dead code. The very first alloc_pid() in
> that pidns should've called pid_ns_prepare_proc(), which creates that
> vfsmount.
Looking at the code (now that I am home, and no longer
reading this email on my phone), I see the cause of this
problem.
A previous version of Gargi's code had RESERVED_PIDS as
the lower bound for idr_alloc_cyclic, even on the very
first PID allocation cycle in a PID namespace.
With the code changed to have 1 as the lower bound during
the first allocation cycle, pid_ns_prepare_proc() should
be called correctly, and things should work as expected.
Gargi, can you drop this patch 1/2, and make sure the code
still works fine?
--
All Rights Reversed.
Download attachment "signature.asc" of type "application/pgp-signature" (474 bytes)
Powered by blists - more mailing lists