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>