Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 16 Oct 2006 08:33:38 +0200
From:      Rink Springer <rink@FreeBSD.org>
To:        Rink Springer <rink@FreeBSD.org>, Lin Jui-Nan Eric <ericlin.jnlin@gmail.com>, stable@freebsd.org
Subject:   Re: mountd changed?
Message-ID:  <20061016063338.GC51499@rink.nu>
In-Reply-To: <20061015220111.GA10634@Update.UU.SE>
References:  <47713ee10610150811w4cca315etc051e0fe14d88dab@mail.gmail.com> <20061015151924.GA50017@rink.nu> <47713ee10610150830g4dc4b747j9425d3b5194829f1@mail.gmail.com> <20061015154022.GC50017@rink.nu> <20061015220111.GA10634@Update.UU.SE>

next in thread | previous in thread | raw e-mail | index | archive | help
Hi Erik,

On Mon, Oct 16, 2006 at 12:01:11AM +0200, Erik Trulsson wrote:
> [Second attempt to send this, since my first seems to have been eaten by my
>  ISP.  Apologies if it appears twice.]
> 
> On Sun, Oct 15, 2006 at 05:40:22PM +0200, Rink Springer wrote:
> > Hi,
> > 
> > On Sun, Oct 15, 2006 at 11:30:23PM +0800, Lin Jui-Nan Eric wrote:
> > > Hi,
> > > 
> > > If I revert to revision 1.81.2.4, it worked correctly.
> > > 
> > > On 10/15/06, Rink Springer <rink@freebsd.org> wrote:
> > > >Hi,
> > > >
> > > >Hmm, I recently changed something which might trigger this. Could you
> > > >back out revision 1.81.2.5 of src/usr.sbin/mountd/mountd.c and let me
> > > >know whether this fixed the problem?
> > > >
> > 
> > OK, could you try the attached patch (untested) and let me know whether
> > it works? (it patches the 1.81.2.5 revision of mountd.c)
> 
> I had the same problems, but only when trying to export directories from
> the root filesystem.  Your patch below would not help.
> The following patch (very much inspired by the comment on line 1038 in
> mountd.c) makes things work for me:
> 
> Index: mountd.c
> ===================================================================
> RCS file: /ncvs/src/usr.sbin/mountd/mountd.c,v
> retrieving revision 1.81.2.5
> diff -u -r1.81.2.5 mountd.c
> --- mountd.c	14 Oct 2006 23:04:07 -0000	1.81.2.5
> +++ mountd.c	15 Oct 2006 21:09:20 -0000
> @@ -1911,7 +1911,7 @@
>  		iov[5].iov_base = fsb->f_mntfromname; /* "from" */
>  		iov[5].iov_len = strlen(fsb->f_mntfromname) + 1;
>  
> -		while (nmount(iov, iovlen, fsb->f_flags) < 0) {
> +		while (nmount(iov, iovlen, fsb->f_flags & ~MNT_ROOTFS) < 0) {
>  			if (cp)
>  				*cp-- = savedc;
>  			else
> 
> 
> 
> 
> 
> 
> > --- mountd.c.org	Thu Sep 21 10:07:57 2006
> > +++ mountd.c	Thu Sep 21 10:08:42 2006
> > @@ -1912,7 +1912,7 @@
> >  		iov[5].iov_base = fsb->f_mntfromname; /* "from" */
> >  		iov[5].iov_len = strlen(fsb->f_mntfromname) + 1;
> >  
> > -		while (nmount(iov, iovlen, fsb->f_flags) < 0) {
> > +		while (nmount(iov, iovlen, fsb->f_flags | MNT_UPDATE) < 0) {
> >  			if (cp)
> >  				*cp-- = savedc;
> >  			else

Ah, it seems that nmount(2) will deny any mount that has the MNT_ROOTFS
flag set; whereas this flag is returned by getmntinfo().

I'll get this committed. Thanks for the report and patch!

-- 
Rink P.W. Springer                                - http://rink.nu
"Patience is for those who cannot afford
 decent hardware."                                - Peter Koeleman



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20061016063338.GC51499>