Date: Mon, 29 Nov 1999 18:43:38 -0500 (EST) From: "Viren R.Shah" <viren@rstcorp.com> To: Matthew Dillon <dillon@apollo.backplane.com> Cc: Eivind Eklund <eivind@FreeBSD.org>, Julian Elischer <julian@whistle.com>, Greg Lehey <grog@lemis.com>, freebsd-current@FreeBSD.org Subject: Re: repeatable crash in -current (softupdates, NFS) Message-ID: <14403.4010.88305.46048@jabberwock.rstcorp.com> In-Reply-To: <199911292325.PAA12356@apollo.backplane.com> References: <14399.63511.296802.242618@jabberwock.rstcorp.com> <19991127191729.A53832@bitbox.follo.net> <14402.62122.461010.454021@jabberwock.rstcorp.com> <199911292152.NAA09656@apollo.backplane.com> <19991129235631.P60031@bitbox.follo.net> <199911292308.PAA12218@apollo.backplane.com> <19991130001724.S60031@bitbox.follo.net> <199911292325.PAA12356@apollo.backplane.com>
next in thread | previous in thread | raw e-mail | index | archive | help
Matt> I've added a little cleanup to this patch. Viren, please try this
Matt> patch.
I compiled a kernel with it, and no panic!! Here's what I get instead:
[vshah@jabberwock] ~> rm index.html
rm: index.html: No such file or directory
2220 [6:41pm] [vshah@jabberwock] ~> ln -s public_html/index.html ./index.html
ln: ./index.html: RPC struct is bad
2221 [6:41pm] [vshah@jabberwock] ~> ls -la index.html
lrwxr-xr-x 1 vshah staff 22 Nov 29 18:41 index.html@ -> public_html/index.html
Does that do what it is suppossed to? Why the "RPC struct is bad"?
Matt> -Matt
Matt> Index: nfs_vnops.c
Matt> ===================================================================
Matt> RCS file: /FreeBSD/FreeBSD-CVS/src/sys/nfs/nfs_vnops.c,v
Matt> retrieving revision 1.146
Matt> diff -u -r1.146 nfs_vnops.c
Matt> --- nfs_vnops.c 1999/11/27 18:14:41 1.146
Matt> +++ nfs_vnops.c 1999/11/29 23:23:05
Matt> @@ -1806,11 +1806,10 @@
Matt> txdr_nfsv2time(&vap->va_mtime, &sp->sa_mtime);
Matt> }
Matt> nfsm_request(dvp, NFSPROC_SYMLINK, cnp->cn_proc, cnp->cn_cred);
Matt> - if (v3) {
Matt> - if (!error)
Matt> - nfsm_mtofh(dvp, newvp, v3, gotvp);
Matt> + if (!error)
Matt> + nfsm_mtofh(dvp, newvp, v3, gotvp);
Matt> + if (v3)
Matt> nfsm_wcc_data(dvp, wccflag);
Matt> - }
Matt> nfsm_reqdone;
Matt> /*
Matt> * Kludge: Map EEXIST => 0 assuming that it is a reply to a retry.
Matt> @@ -1821,8 +1820,9 @@
Matt> if (error) {
Matt> if (newvp)
Matt> vput(newvp);
Matt> - } else
Matt> + } else {
Matt> *ap->a_vpp = newvp;
Matt> + }
Matt> VTONFS(dvp)->n_flag |= NMODIFIED;
Matt> if (!wccflag)
Matt> VTONFS(dvp)->n_attrstamp = 0;
Viren
--
Viren Shah | "You can't trust code that you did not totally
Research Associate, RST Inc. | create yourself. (Especially code from
viren@rstcorp.com | companies that employ people like me.)"
http://www.rstcorp.com/~vshah | - Ken Thompson "Reflections on Trusting Trust"
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-current" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?14403.4010.88305.46048>
