The users who were reporting the NFS mount problems confirm the patch fixes their issues. At the moment I don't know why the patch would break NFS ROOT. I just backed out the change so RC1 can be made but I will continue the investigation.
--Qing On Tue, Sep 15, 2009 at 3:55 PM, Rick Macklem <rmack...@uoguelph.ca> wrote: > > > On Tue, 15 Sep 2009, Bjoern A. Zeeb wrote: > >> On Tue, 15 Sep 2009, Qing Li wrote: >> >>> Author: qingli >>> Date: Tue Sep 15 01:01:03 2009 >>> New Revision: 197210 >>> URL: http://svn.freebsd.org/changeset/base/197210 >>> >>> Log: >>> The bootp code installs an interface address and the nfs client >>> module tries to install the same address again. This extra code >>> is removed, which was discovered by the removal of a call to >>> in_ifscrub() in r196714. This call to in_ifscrub is put back here >>> because the SIOCAIFADDR command can be used to change the prefix >>> length of an existing alias. >>> >>> Reviewed by: kmacy >> >> This broke NFS Root for me in the netperf clsuter setup. >> The NFS Root mount hang for ages (I reset the box after 1 hour). >> >> Backing out r197212 and this and it boots just fine again. >> > I don't know diddly about diskless booting and have no setup to test, > but if I understood the problem, might something like the following > work? > > rick > --- nfsclient/nfs_vfsops.c.sav 2009-09-15 18:39:32.000000000 -0400 > +++ nfsclient/nfs_vfsops.c 2009-09-15 18:41:52.000000000 -0400 > @@ -416,13 +416,14 @@ > struct socket *so; > struct vnode *vp; > struct ifreq ir; > - int error; > + int error, doioctl = 1; > u_long l; > char buf[128]; > char *cp; > > #if defined(BOOTP_NFSROOT) && defined(BOOTP) > bootpc_init(); /* use bootp to get nfs_diskless filled in */ > + doioctl = 0; > #elif defined(NFS_ROOT) > nfs_setup_diskless(); > #endif > @@ -463,9 +464,11 @@ > break; > } > #endif > - error = ifioctl(so, SIOCAIFADDR, (caddr_t)&nd->myif, td); > - if (error) > - panic("nfs_mountroot: SIOCAIFADDR: %d", error); > + if (doioctl) { > + error = ifioctl(so, SIOCAIFADDR, (caddr_t)&nd->myif, td); > + if (error) > + panic("nfs_mountroot: SIOCAIFADDR: %d", error); > + } > if ((cp = getenv("boot.netif.mtu")) != NULL) { > ir.ifr_mtu = strtol(cp, NULL, 10); > bcopy(nd->myif.ifra_name, ir.ifr_name, IFNAMSIZ); > _______________________________________________ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"