From owner-p4-projects Wed Jul 10 8: 2:24 2002 Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 5B03637B401; Wed, 10 Jul 2002 08:02:17 -0700 (PDT) Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.FreeBSD.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id EA04E37B400 for ; Wed, 10 Jul 2002 08:02:16 -0700 (PDT) Received: from freefall.freebsd.org (freefall.FreeBSD.org [216.136.204.21]) by mx1.FreeBSD.org (Postfix) with ESMTP id 905AC43E52 for ; Wed, 10 Jul 2002 08:02:16 -0700 (PDT) (envelope-from green@freebsd.org) Received: from freefall.freebsd.org (perforce@localhost [127.0.0.1]) by freefall.freebsd.org (8.12.4/8.12.4) with ESMTP id g6AF2GJU077861 for ; Wed, 10 Jul 2002 08:02:16 -0700 (PDT) (envelope-from green@freebsd.org) Received: (from perforce@localhost) by freefall.freebsd.org (8.12.4/8.12.4/Submit) id g6AF2GVj077852 for perforce@freebsd.org; Wed, 10 Jul 2002 08:02:16 -0700 (PDT) Date: Wed, 10 Jul 2002 08:02:16 -0700 (PDT) Message-Id: <200207101502.g6AF2GVj077852@freefall.freebsd.org> X-Authentication-Warning: freefall.freebsd.org: perforce set sender to green@freebsd.org using -f From: Brian Feldman Subject: PERFORCE change 14031 for review To: Perforce Change Reviews Sender: owner-p4-projects@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.ORG http://people.freebsd.org/~peter/p4db/chv.cgi?CH=14031 Change 14031 by green@green_laptop_2 on 2002/07/10 08:02:13 * Fix a bug where mac_update_vnode_from_externalized would _never_ get called. (ALSO: LAZY INSTANTIATE ALL FREEBSD.MAC LABELS) * Remove mac_create_vnode_from_exported() Affected files ... .. //depot/projects/trustedbsd/mac/sys/kern/kern_mac.c#160 edit .. //depot/projects/trustedbsd/mac/sys/sys/mac.h#109 edit Differences ... ==== //depot/projects/trustedbsd/mac/sys/kern/kern_mac.c#160 (text+ko) ==== @@ -917,10 +917,19 @@ case EOPNOTSUPP: case ENOATTR: - /* Use the label from the mountpoint. */ + /* + * Use the label from the mountpoint. Take this opportunity + * to lazy-instantiate, just for correctness. + */ mac_update_vnode_from_mount(vp, vp->v_mount); - return (0); - + error = mac_externalize(&vp->v_label, &extmac); + if (error) + return (error); + error = vn_extattr_set(vp, IO_NODELOCKED, + FREEBSD_MAC_EXTATTR_NAMESPACE, FREEBSD_MAC_EXTATTR_NAME, + sizeof(extmac), (char *)&extmac, curthread); + if (error == 0) + break; default: /* Fail horribly. */ return (error); @@ -987,8 +996,7 @@ * about doing this. */ mac_update_vnode_from_mount(vp, vp->v_mount); - - return (0); + error = 0; default: return (error); } @@ -2216,16 +2224,6 @@ child, &child->v_label); } -void -mac_create_vnode_from_exported(struct ucred *cred, struct vnode *vp, - struct mac *extmac, struct label *intlabel) -{ - - ASSERT_VOP_LOCKED(vp, "mac_create_vnode_from_exported"); - - MAC_PERFORM(create_vnode_from_exported, cred, vp, extmac, intlabel); -} - int mac_cred_check_statfs(struct ucred *cred, struct mount *mount) { ==== //depot/projects/trustedbsd/mac/sys/sys/mac.h#109 (text+ko) ==== @@ -326,8 +326,6 @@ struct ucred *cred_child); void mac_create_vnode_from_vnode(struct ucred *cred, struct vnode *parent, struct vnode *child); -void mac_create_vnode_from_exported(struct ucred *cred, struct vnode *vp, - struct mac *extmac, struct label *intlabel); void mac_set_socket_peer_from_mbuf(struct mbuf *mbuf, struct socket *socket); void mac_set_socket_peer_from_socket(struct socket *oldsocket, To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe p4-projects" in the body of the message