Re: initrd: couldn't umount

Andreas Haumer
2001-08-17T11:16:34Z

Hi!

Daniel Wagner wrote:
>
> Alan Cox wrote:
> >
> > > the problem is that a "rpciod" kernel-thread references the initrd,
> > > and so umounting and freeing it, isn't possible.
> > >
> > > has anybody an idea how to fix this problem, cause it would be nice,
> > > to free the initrd ram on a diskless node.
> >
> > It shouldnt be keeping a reference. daemonize() should have dropped its
> > resources
>
> hmm, i've now created a /initrd directory to let the the change_root of
> the
> initrd work correctly.
>
> and then i looked with fuser, what processes reference the initrd:
>
> ---
> root@ws4:~ $ fuser -mv /initrd/
>
> USER PID ACCESS COMMAND
> /initrd/ root 67 .rc..
> rpciod
> ---
>
> only the rpciod references the initrd, none of the other
> kernel-threads.
>
Could it be because, when executed, rpciod() calls
exit_files(current) and exit_mm(current), but doesn't
call exit_fs(current) (as, for instance, md_thread() does)?
(we are talking 2.2.19 here)

We well try it in a few minutes... :-)

- andreas

--
Andreas Haumer | mailto:andreas@xss.co.at
*x Software + Systeme | http://www.xss.co.at/
Karmarschgasse 51/2/20 | Tel: +43-1-6060114-0
A-1100 Vienna, Austria | Fax: +43-1-6060114-71