From nobody Sun May 4 22:13:11 2025 X-Original-To: dev-commits-src-main@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4ZrJnh0zg6z5vMtK; Sun, 04 May 2025 22:13:12 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZrJnh04nnz46f7; Sun, 04 May 2025 22:13:12 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746396792; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=W7jkpJp56VCXr+zZrd4gSIM+k9yOPoBY2R51aL2m1EA=; b=HSBagbZdUOuXtJOFvbMFJVU4nNCsWBOsFFBT9ub8hIsaWpzXITJqhl8k1A7CxC3b5EzjFB ZTO6B8CrjQOTa4+zgsjuQch2dIA+i42ZDEm1Vsgjo0cp/yjIMooFRwYsq8b7KMlgp+hrPn pl3Vxcva9+Q++/mTr27KCcNH/oOn7mUBSmOaazpeVhJIxOCH6WOdGI530dLW312W7k/RZz mlk3jFiTCzVLhSX/7m+lwrG8Yd7KKiU1wAK80YqLejHsx8CKJrURFVxrHm0Ln1aDW8yymG IYXypj2AIFatbBGPvrhIhAAidT4E+6rKF+rMuuf1v6yyvTz/Qdw8/yH5oOzKOw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746396792; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=W7jkpJp56VCXr+zZrd4gSIM+k9yOPoBY2R51aL2m1EA=; b=Vp8LVc2SZutmhjd+3OciC7ZQ3oHPNrer3tFWv2YcMH1uopSR27Oq8upS/ip3kwIdHYp49D 2vQ3vqSFiF+nL2aGcJzkS3c11kPSfbisaG9BOUYrSFH40KT1q+BjNSHLxRlV9eXWgP5SQu 7ygoPr8TeVlZw8BdE62LTEafASiGlFDsE4A5AsCTE0UfQkXtaj0WpUcevJHMLV8oTDSkuF KnhUgdvaqwqN1NYI6JHhfmTFxbmTsbKcnC5lb/FtvIWJ8WA97iCAdmT33uKXUew3suuQ2L HPue2QDzXRrZ2YNoHR5SSYQNmpbM4iCf5c01c7XlnfYfm0EfufloEtM85P77xA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1746396792; a=rsa-sha256; cv=none; b=QcuUxdCwWpvJ2W8ymqtf5vwfcQo20/V4IxpZQLmmNytLYkKMlVpicu0SAO+sr3XdtUDPcw OsUoW+trAK040JFakOW6ABktaQuu9EAVIjIMIdAVFVj9K2Alal6V4cYym13ja/czQusroO tSHhjb/q8OH/Wc/di2myqwnKv4qxQ31DUFMehuxje+S/wamE4h/iviG2XtdqciuQw+wfop CEXq4aFFJ+4qPUn2a/urpaA1urtI97cDEzDxEmZ6aE8M72gkIDoqIHzl451i99zykJj4eM spNrDqGYG06+noJGARSxOPZfyMzslYWl3sJQsx0hq/TIcbn52CYgDhmk7MbKDg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4ZrJng6TQ5znN2; Sun, 04 May 2025 22:13:11 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 544MDBdt041875; Sun, 4 May 2025 22:13:11 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 544MDBao041872; Sun, 4 May 2025 22:13:11 GMT (envelope-from git) Date: Sun, 4 May 2025 22:13:11 GMT Message-Id: <202505042213.544MDBao041872@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Rick Macklem Subject: git: 0f12c3cd0ddb - main - vfs_default.c: Add _PC_HAS_NAMEDATTR pathconf name List-Id: Commit messages for the main branch of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-main@freebsd.org Sender: owner-dev-commits-src-main@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: rmacklem X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 0f12c3cd0ddb9b230f21187f7e8a48964cdaf744 Auto-Submitted: auto-generated The branch main has been updated by rmacklem: URL: https://cgit.FreeBSD.org/src/commit/?id=0f12c3cd0ddb9b230f21187f7e8a48964cdaf744 commit 0f12c3cd0ddb9b230f21187f7e8a48964cdaf744 Author: Rick Macklem AuthorDate: 2025-05-04 22:06:01 +0000 Commit: Rick Macklem CommitDate: 2025-05-04 22:11:06 +0000 vfs_default.c: Add _PC_HAS_NAMEDATTR pathconf name Commit f61844833ee8 changes the semantics of O_NAMEDATTR so that a named attribute directory will be created if it does not already exist. As such, an open(2) without O_CREAT cannot be used to test to see if one exists. This patch adds a new pathconf name _PC_HAS_NAMEDATTR, which returns 1 if one or more named attributes are associated with the file. This is similar to Solaris's _PC_XATTR_EXISTS. A return of 0 means that there are none, so there. is no need to open(2) the named attribute directory. This allows applications to avoid creating unnecessary named attribute directories when the application only wishes to read named attributes and not create them. It is also useful for the NFSv4 server, so that it can reply with a correct named_attr attribute. Reviewed by: kib Differential Revision: https://reviews.freebsd.org/D50140 Fixes: 2ec2ba7e232d ("vfs: Add VFS/syscall support for Solaris style extended attributes") --- sys/kern/vfs_default.c | 1 + sys/sys/unistd.h | 1 + 2 files changed, 2 insertions(+) diff --git a/sys/kern/vfs_default.c b/sys/kern/vfs_default.c index c76fc9f9dc59..be49c0887609 100644 --- a/sys/kern/vfs_default.c +++ b/sys/kern/vfs_default.c @@ -452,6 +452,7 @@ vop_stdpathconf(struct vop_pathconf_args *ap) case _PC_INF_PRESENT: case _PC_MAC_PRESENT: case _PC_NAMEDATTR_ENABLED: + case _PC_HAS_NAMEDATTR: *ap->a_retval = 0; return (0); default: diff --git a/sys/sys/unistd.h b/sys/sys/unistd.h index 59cef241754a..f5caea2e3919 100644 --- a/sys/sys/unistd.h +++ b/sys/sys/unistd.h @@ -155,6 +155,7 @@ #define _PC_ACL_NFS4 64 #define _PC_DEALLOC_PRESENT 65 #define _PC_NAMEDATTR_ENABLED 66 +#define _PC_HAS_NAMEDATTR 67 #endif /* From OpenSolaris, used by SEEK_DATA/SEEK_HOLE. */