From owner-svn-src-all@FreeBSD.ORG Tue Jul 14 16:02:36 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 E6717106564A; Tue, 14 Jul 2009 16:02:36 +0000 (UTC) (envelope-from kientzle@freebsd.org) Received: from kientzle.com (kientzle.com [66.166.149.50]) by mx1.freebsd.org (Postfix) with ESMTP id B1CBF8FC08; Tue, 14 Jul 2009 16:02:36 +0000 (UTC) (envelope-from kientzle@freebsd.org) Received: (from root@localhost) by kientzle.com (8.14.3/8.14.3) id n6EG2ZLM086374; Tue, 14 Jul 2009 09:02:35 -0700 (PDT) (envelope-from kientzle@freebsd.org) Received: from dark.x.kientzle.com (fw2.kientzle.com [10.123.1.2]) by kientzle.com with SMTP id d3a99zhxb8fiixhi4ftaup5982; Tue, 14 Jul 2009 09:02:35 -0700 (PDT) (envelope-from kientzle@freebsd.org) Message-ID: <4A5CAC1B.4070006@freebsd.org> Date: Tue, 14 Jul 2009 09:02:35 -0700 From: Tim Kientzle User-Agent: Mozilla/5.0 (X11; U; FreeBSD i386; en-US; rv:1.8.1.21) Gecko/20090601 SeaMonkey/1.1.16 MIME-Version: 1.0 To: Jilles Tjoelker References: <200907081523.n68FNIpi055036@svn.freebsd.org> <20090709173046.GA48155@stack.nl> In-Reply-To: <20090709173046.GA48155@stack.nl> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org, Edward Tomasz Napierala Subject: Re: svn commit: r195458 - in head: include lib/libc/sys sys/bsm sys/compat/freebsd32 sys/compat/svr4 sys/i386/ibcs2 sys/kern sys/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: Tue, 14 Jul 2009 16:02:37 -0000 Jilles Tjoelker wrote: > On Wed, Jul 08, 2009 at 03:23:18PM +0000, Edward Tomasz Napierala wrote: >> Author: trasz >> Date: Wed Jul 8 15:23:18 2009 >> New Revision: 195458 >> URL: http://svn.freebsd.org/changeset/base/195458 > >> Log: >> There is an optimization in chmod(1), that makes it not to call chmod(2) >> if the new file mode is the same as it was before; however, this >> optimization must be disabled for filesystems that support NFSv4 ACLs. >> Chmod uses pathconf(2) to determine whether this is the case - however, >> pathconf(2) always follows symbolic links, while the 'chmod -h' doesn't. > >> This change adds lpathconf(3) to make it possible to solve that problem >> in a clean way. > > I think pathconfat() would be nicer than adding a function that will not > appear in standards and lacks a useful feature. Compare futimens() and > utimensat() in the 2008 POSIX spec, and notice that there is no such > thing as lutimes() in POSIX (it can be done with utimensat()). Another data point: I've started looking at the *at() functions for libarchive's deep directory handling. The current code uses chdir() to manipulate files with very long pathnames, but that causes complications for libarchive clients that I'd like to eliminate. Using *at() functions to manage a "virtual current directory" looks a lot more robust. Unfortunately, there are still a few operations that are unavailable with this paradigm: * ACL functions * extattr functions * link() * symlink()