From owner-svn-src-all@FreeBSD.ORG Tue Sep 15 23:27:16 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 2714F1065679; Tue, 15 Sep 2009 23:27:16 +0000 (UTC) (envelope-from tomelite82@gmail.com) Received: from mail-pz0-f200.google.com (mail-pz0-f200.google.com [209.85.222.200]) by mx1.freebsd.org (Postfix) with ESMTP id DECC98FC1B; Tue, 15 Sep 2009 23:27:15 +0000 (UTC) Received: by pzk38 with SMTP id 38so3783767pzk.9 for ; Tue, 15 Sep 2009 16:27:15 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:sender:received:in-reply-to :references:date:x-google-sender-auth:message-id:subject:from:to:cc :content-type:content-transfer-encoding; bh=fE0sUQVHEekJFkLH0MkP/MmAj1myeX4Y1IBEaAefwPo=; b=ihQ0JY4fdQYy0xK/EK9hLzDnVBlSeNsae9P/JN7IUUA17kgq52xYBveH+DIqjZ1vVy 1MeBUT2MyPu1Jh8r9cY18qr41cBDB3DPuKVw3lCMzwbKMkAFARr+zkdv55Qq2tADhyme FZW9eQQOIgjGigDoStJg5tggBbR9AdMp6+JPw= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:sender:in-reply-to:references:date :x-google-sender-auth:message-id:subject:from:to:cc:content-type :content-transfer-encoding; b=lNDcwMu7h6nYDW5H3CBZo75L7amcPkriLJmaBe+KyyWUUy4MVf13hzkvESvwlhlsef iJjUuqXgrBazR6sMCr/VGxcGSIVny+DIuLqLs74nzTS9eYNf519to/8Zo0nEEWpTW81X kZbUg+9E+/PQBHv+5Si+hHMShKhmTer+m5Z50= MIME-Version: 1.0 Sender: tomelite82@gmail.com Received: by 10.142.195.6 with SMTP id s6mr580332wff.48.1253055838771; Tue, 15 Sep 2009 16:03:58 -0700 (PDT) In-Reply-To: References: <200909150101.n8F113sU071311@svn.freebsd.org> <20090915150034.U68375@maildrop.int.zabbadoz.net> Date: Tue, 15 Sep 2009 16:03:58 -0700 X-Google-Sender-Auth: d936ddb7367f91f5 Message-ID: <9ace436c0909151603m91831fat143f14855f036a1@mail.gmail.com> From: Qing Li To: Rick Macklem Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, "Bjoern A. Zeeb" , src-committers@freebsd.org Subject: Re: svn commit: r197210 - in head/sys: netinet nfsclient X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 15 Sep 2009 23:27:16 -0000 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 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: >>> =A0The bootp code installs an interface address and the nfs client >>> =A0module tries to install the same address again. This extra code >>> =A0is removed, which was discovered by the removal of a call to >>> =A0in_ifscrub() in r196714. This call to in_ifscrub is put back here >>> =A0because the SIOCAIFADDR command can be used to change the prefix >>> =A0length of an existing alias. >>> >>> =A0Reviewed by: =A0 =A0kmacy >> >> 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 =A02009-09-15 18:39:32.000000000 -0400 > +++ nfsclient/nfs_vfsops.c =A0 =A0 =A02009-09-15 18:41:52.000000000 -0400 > @@ -416,13 +416,14 @@ > =A0 =A0 =A0 =A0struct socket *so; > =A0 =A0 =A0 =A0struct vnode *vp; > =A0 =A0 =A0 =A0struct ifreq ir; > - =A0 =A0 =A0 int error; > + =A0 =A0 =A0 int error, doioctl =3D 1; > =A0 =A0 =A0 =A0u_long l; > =A0 =A0 =A0 =A0char buf[128]; > =A0 =A0 =A0 =A0char *cp; > > =A0#if defined(BOOTP_NFSROOT) && defined(BOOTP) > =A0 =A0 =A0 =A0bootpc_init(); =A0 =A0 =A0 =A0 =A0/* use bootp to get nfs_= diskless filled in */ > + =A0 =A0 =A0 doioctl =3D 0; > =A0#elif defined(NFS_ROOT) > =A0 =A0 =A0 =A0nfs_setup_diskless(); > =A0#endif > @@ -463,9 +464,11 @@ > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0break; > =A0 =A0 =A0 =A0} > =A0#endif > - =A0 =A0 =A0 error =3D ifioctl(so, SIOCAIFADDR, (caddr_t)&nd->myif, td); > - =A0 =A0 =A0 if (error) > - =A0 =A0 =A0 =A0 =A0 =A0 =A0 panic("nfs_mountroot: SIOCAIFADDR: %d", err= or); > + =A0 =A0 =A0 if (doioctl) { > + =A0 =A0 =A0 =A0 =A0 =A0 =A0 error =3D ifioctl(so, SIOCAIFADDR, (caddr_t= )&nd->myif, td); > + =A0 =A0 =A0 =A0 =A0 =A0 =A0 if (error) > + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 panic("nfs_mountroot: SIOCA= IFADDR: %d", error); > + =A0 =A0 =A0 } > =A0 =A0 =A0 =A0if ((cp =3D getenv("boot.netif.mtu")) !=3D NULL) { > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0ir.ifr_mtu =3D strtol(cp, NULL, 10); > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0bcopy(nd->myif.ifra_name, ir.ifr_name, IFN= AMSIZ); >