From owner-p4-projects@FreeBSD.ORG Thu Aug 7 00:00:28 2008 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 33EE31065679; Thu, 7 Aug 2008 00:00:28 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id EB1351065673 for ; Thu, 7 Aug 2008 00:00:27 +0000 (UTC) (envelope-from trasz@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id D8B448FC08 for ; Thu, 7 Aug 2008 00:00:27 +0000 (UTC) (envelope-from trasz@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.2/8.14.2) with ESMTP id m7700ReY022343 for ; Thu, 7 Aug 2008 00:00:27 GMT (envelope-from trasz@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.2/8.14.1/Submit) id m7700ReL022341 for perforce@freebsd.org; Thu, 7 Aug 2008 00:00:27 GMT (envelope-from trasz@freebsd.org) Date: Thu, 7 Aug 2008 00:00:27 GMT Message-Id: <200808070000.m7700ReL022341@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to trasz@freebsd.org using -f From: Edward Tomasz Napierala To: Perforce Change Reviews Cc: Subject: PERFORCE change 146809 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 07 Aug 2008 00:00:28 -0000 http://perforce.freebsd.org/chv.cgi?CH=146809 Change 146809 by trasz@trasz_traszkan on 2008/08/07 00:00:01 Fix a bug where mkdir in a directory that has immutable flag set would succeed. This was happening, because with granularity support, permission checked during mkdir is VAPPEND, not VWRITE. With this fix, UFS passes fstest again. Affected files ... .. //depot/projects/soc2008/trasz_nfs4acl/sys/ufs/ufs/ufs_vnops.c#9 edit Differences ... ==== //depot/projects/soc2008/trasz_nfs4acl/sys/ufs/ufs/ufs_vnops.c#9 (text+ko) ==== @@ -320,7 +320,7 @@ * unless the file is a socket, fifo, or a block or * character device resident on the filesystem. */ - if (mode & VWRITE) { + if (mode & (VWRITE | VAPPEND)) { switch (vp->v_type) { case VDIR: case VLNK: @@ -334,7 +334,7 @@ } /* If immutable bit set, nobody gets to write it. */ - if ((mode & VWRITE) && (ip->i_flags & (IMMUTABLE | SF_SNAPSHOT))) + if ((mode & (VWRITE | VAPPEND)) && (ip->i_flags & (IMMUTABLE | SF_SNAPSHOT))) return (EPERM); #ifdef UFS_ACL