mountd changed?

Erik Trulsson
2006-10-15T15:01:16Z

[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



--
<Insert your favourite quote here.>
Erik Trulsson
ertr1013@student.uu.se