From owner-freebsd-arch Wed Apr 4 8:41:53 2001 Delivered-To: freebsd-arch@freebsd.org Received: from fledge.watson.org (fledge.watson.org [204.156.12.50]) by hub.freebsd.org (Postfix) with ESMTP id A917637B71E for ; Wed, 4 Apr 2001 08:41:50 -0700 (PDT) (envelope-from robert@fledge.watson.org) Received: from fledge.watson.org (robert@fledge.pr.watson.org [192.0.2.3]) by fledge.watson.org (8.11.1/8.11.1) with SMTP id f34Femh17948; Wed, 4 Apr 2001 11:40:48 -0400 (EDT) (envelope-from robert@fledge.watson.org) Date: Wed, 4 Apr 2001 11:40:47 -0400 (EDT) From: Robert Watson X-Sender: robert@fledge.watson.org To: Matt Dillon Cc: Alfred Perlstein , Brian Somers , freebsd-arch@FreeBSD.ORG Subject: Re: Eliminate crget() from nfs kernel code? In-Reply-To: Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Sender: owner-freebsd-arch@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.ORG For those interested in giving the p->p_ucred version a try, the simply patch is below. It works between FreeBSD boxes, and my tests against Solaris 5.5. Unfortunately, my remote NFS test box already has interop problems with Linux due to the new mount_nfs that I haven't applied patches to yet, so I can't test that case. Robert N M Watson FreeBSD Core Team, TrustedBSD Project robert@fledge.watson.org NAI Labs, Safeport Network Services Index: nfs_vfsops.c =================================================================== RCS file: /home/ncvs/src/sys/nfs/nfs_vfsops.c,v retrieving revision 1.94 diff -u -r1.94 nfs_vfsops.c --- nfs_vfsops.c 2001/03/01 20:59:19 1.94 +++ nfs_vfsops.c 2001/04/04 03:25:36 @@ -254,7 +254,6 @@ struct nfsmount *nmp = VFSTONFS(mp); int error = 0, v3 = (nmp->nm_flag & NFSMNT_NFSV3), retattr; struct mbuf *mreq, *mrep, *md, *mb, *mb2; - struct ucred *cred; struct nfsnode *np; u_quad_t tquad; @@ -265,14 +264,12 @@ if (error) return (error); vp = NFSTOV(np); - cred = crget(); - cred->cr_ngroups = 1; if (v3 && (nmp->nm_state & NFSSTA_GOTFSINFO) == 0) - (void)nfs_fsinfo(nmp, vp, cred, p); + (void)nfs_fsinfo(nmp, vp, p->p_ucred, p); nfsstats.rpccnt[NFSPROC_FSSTAT]++; nfsm_reqhead(vp, NFSPROC_FSSTAT, NFSX_FH(v3)); nfsm_fhtom(vp, v3); - nfsm_request(vp, NFSPROC_FSSTAT, p, cred); + nfsm_request(vp, NFSPROC_FSSTAT, p, p->p_ucred); if (v3) nfsm_postop_attr(vp, retattr); if (error) { @@ -310,7 +307,6 @@ } nfsm_reqdone; vput(vp); - crfree(cred); return (error); } To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-arch" in the body of the message