From owner-svn-src-all@FreeBSD.ORG Mon Jun 22 14:49:21 2009 Return-Path: Delivered-To: svn-src-all@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 8E377106566C; Mon, 22 Jun 2009 14:49:21 +0000 (UTC) (envelope-from brde@optusnet.com.au) Received: from mail06.syd.optusnet.com.au (mail06.syd.optusnet.com.au [211.29.132.187]) by mx1.freebsd.org (Postfix) with ESMTP id 259828FC12; Mon, 22 Jun 2009 14:49:20 +0000 (UTC) (envelope-from brde@optusnet.com.au) Received: from c122-107-126-113.carlnfd1.nsw.optusnet.com.au (c122-107-126-113.carlnfd1.nsw.optusnet.com.au [122.107.126.113]) by mail06.syd.optusnet.com.au (8.13.1/8.13.1) with ESMTP id n5MEnIk7024898 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Tue, 23 Jun 2009 00:49:19 +1000 Date: Tue, 23 Jun 2009 00:49:18 +1000 (EST) From: Bruce Evans X-X-Sender: bde@delplex.bde.org To: Kostik Belousov In-Reply-To: <20090622102232.GM2884@deviant.kiev.zoral.com.ua> Message-ID: <20090623004356.W31449@delplex.bde.org> References: <200906211341.n5LDfWEx008281@svn.freebsd.org> <20090622133231.W31111@delplex.bde.org> <20090622102232.GM2884@deviant.kiev.zoral.com.ua> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed Cc: svn-src-head@FreeBSD.org, svn-src-all@FreeBSD.org, src-committers@FreeBSD.org, Bruce Evans Subject: Re: svn commit: r194586 - in head/sys: cddl/compat/opensolaris/kern cddl/compat/opensolaris/sys cddl/contrib/opensolaris/uts/common/fs/zfs kern sys X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 22 Jun 2009 14:49:22 -0000 On Mon, 22 Jun 2009, Kostik Belousov wrote: > On Mon, Jun 22, 2009 at 02:12:57PM +1000, Bruce Evans wrote: >> On Sun, 21 Jun 2009, Konstantin Belousov wrote: >> >>> Log: >>> Add another flags argument to vn_open_cred. Use it to specify that some >>> vn_open_cred invocations shall not audit namei path. >> >>> Modified: head/sys/cddl/compat/opensolaris/kern/opensolaris_kobj.c >>> ============================================================================== >>> --- head/sys/cddl/compat/opensolaris/kern/opensolaris_kobj.c Sun Jun 21 >>> 13:15:56 2009 (r194585) >>> +++ head/sys/cddl/compat/opensolaris/kern/opensolaris_kobj.c Sun Jun 21 >>> 13:41:32 2009 (r194586) >>> @@ -85,7 +85,8 @@ kobj_open_file_vnode(const char *file) >>> >>> flags = FREAD; >>> NDINIT(&nd, LOOKUP, MPSAFE, UIO_SYSSPACE, file, td); >>> - error = vn_open_cred(&nd, &flags, O_NOFOLLOW, curthread->td_ucred, >>> NULL); >>> + error = vn_open_cred(&nd, &flags, O_NOFOLLOW, 0, curthread->td_ucred, >>> + NULL); >> >> I was going to ask "why not put the flag in the existing flags arg, >> like O_NOFOLLOW here?", but it seems that there is no existing flags >> arg and the above O_NOFOLLOW is garbage. O_NOFOLLOW happens to be >> 0x100, so I think the above asks for mode S_IRUSR. > I fixed this, O_NOFOLLOW is set in flags. > >> >> Now I will ask "why not put O_NOFOLLOW here and the new flag in the >> existing pointer-to-flags arg?". > I do not quite understand what is named by "here". O_NOFOLLOW is defined > as a user-supplied flag for the mode argument of the open(2), that > determines that it must go in the flags. "here" is above. > I do not want to put kernel-only flags into the mode argument, at least > because it shrinks the space available for further additions of the open(2) > mode flags, that is periodically done by the standards freebsd tries to > follow. Not a problem, since the kernel flags can easily be moved later if necessary. Just don't repeat the mistake for F_HASLOCK, of putting them in the middle of user flags. Bruce