From owner-freebsd-current Tue Jul 22 08:44:35 1997 Return-Path: Received: (from root@localhost) by hub.freebsd.org (8.8.5/8.8.5) id IAA05515 for current-outgoing; Tue, 22 Jul 1997 08:44:35 -0700 (PDT) Received: from nlsystems.com (nlsys.demon.co.uk [158.152.125.33]) by hub.freebsd.org (8.8.5/8.8.5) with ESMTP id IAA05510; Tue, 22 Jul 1997 08:44:28 -0700 (PDT) Received: from herring.nlsystems.com (herring.nlsystems.com [10.0.0.2]) by nlsystems.com (8.8.5/8.8.5) with SMTP id QAA00433; Tue, 22 Jul 1997 16:44:16 +0100 (BST) Date: Tue, 22 Jul 1997 16:44:16 +0100 (BST) From: Doug Rabson To: Bruce Evans cc: current@freebsd.org, dfr@freebsd.org Subject: Re: more WebNFS merge bugs, one serious In-Reply-To: <199707221407.AAA30817@godzilla.zeta.org.au> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Sender: owner-freebsd-current@freebsd.org X-Loop: FreeBSD.org Precedence: bulk On Wed, 23 Jul 1997, Bruce Evans wrote: > The WebNFS merge broke binary compatiblity of mount_msdos for the same > reason that it broke binary compatiblity of mount_cd9660. The usual > symptom is bizarre modes for all files under the mount point. This is > because for old mount binaries, the extra field in export_args is taken > from the uid arg, the uid arg is taken from the gid arg, the mode arg > is taken from stack garbage, and the corrupted args affect everything > under the mount point. Sigh. How do you think I should fix this? It would be hard to cope with the old structure since the args are different for each mount. > > The WebNFS merge also broke nfs_namei() by deleting the `*retdirp = dp;' > line. This usually causes nfserv_create() to panic and probably causes > vnode reference leaks in other callers. nfserv_create() panics because > it is sloppy about checking `dirp == 0' and usually accesses the null > dirp's set by nfs_namei(). Other callers are apparently more careful. > ome callers have bogus initializations of dirp to 0. nfs_namei() always > initializes it, and the initializations have style bugs. I haven't fixed > bugs in the callers. > > This diff was obtained by comparing the current, old and NetBSD versions. > It also fixes a memory leak for symlinks with ndp->ni_pathlen == 1, > and removes a superfluous initialization of cnp->cn_proc, and changes > the style to match NetBSD's. I don't know if we still need the hash > calculations. Thanks for the fixes. Is the hash stuff still used by the name cache? I can't remember exactly what Poul did to it when he was changing the cache. -- Doug Rabson Mail: dfr@nlsystems.com Nonlinear Systems Ltd. Phone: +44 181 951 1891 Fax: +44 181 381 1039