From nobody Sat Oct 03 17:34:56 2026 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 4hxt810wX7z6vmcR for ; Sat, 03 Oct 2026 17:34:57 +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 "YR2" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4hxt805Clwz4l8M for ; Sat, 03 Oct 2026 17:34:56 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1791048896; 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=dNiRisxfpeOmSd5RIk2CfLK/u9O5kk+VFgNlSQlixX4=; b=mAnoSRxCw30bTfdMUbrvkHfxUNcBaLuhZ96DNRizkNb6iYovUnDYecX76DVwvOLHFeiZfJ pkN3RcINk0SUCSVHEnK9QP2J//JQKIbLU2zAGRxTbW0D35JhlEapO4+uY2tsYBQ0tQdelM pdANd2II1o8PGd83m80yRu4Ihl8MdzX74qgM8drtfeIgcBqtx6dGrXLZJ/3DL2YZhOB+iG rdglBoi2B7cRwdYaj099+PbHtAtRTUO+1prrishnPATe9Z57S2ZcvuO279bFmE9wRfWJ9w o9ZItWcJZVCU4V2Ep3HvrpU6Or19Ho453ZeD5eLBuORD1Tyor2a2uNZcoXD4QA== ARC-Seal: i=1; a=rsa-sha256; d=freebsd.org; s=dkim; cv=none; t=1791048896; b=Ldh3W/bc/4/pRQ194Qvg0JjKC01oITMPT83Y4/MV1F5k/Cdm9NTbuaagrXVxFgTc6VF9Dv 2LbuYc8a904rKmvTPvHdiACQTZWVPSCDSLrfHPLZVJNljm0eHjPU1k/iQ2srGVY1ZaDaaO ovbUYAAr/tzjHMkRwNkCQ7Eiv9xe5LPDs3/HJiMR7DOCzS+/EODNnJy53UJpEV5UFnLFEA 3t8Ss1aGsalDm27kUkpzD9RZEjAweSNbIFwArFSBB1KRc9zX/DzINnozh4DYd03b8uSEwh Cb2wSEg5ap2WbsGAWd6auoxOMKgoBPFLqUfIMG10yh2cY4i+9BMsKUGnOhuA0Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1791048896; 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=dNiRisxfpeOmSd5RIk2CfLK/u9O5kk+VFgNlSQlixX4=; b=Gyhpw2bXXuGwyjMiMwElYiSADjYY+Vw96jMt6omKzcdDeC+OzRwpGE2y9Z0Lu3uBhS1l8x tkHpX9Dmy83KvlfAQtu+McP430LFCiDkFaZOriSr72ehNo2Q5fnv/wMNg5M4r0Wpouvjgr cq0mc0ile5qPw2rk+B09U0M098EkHbUuIRr3l0e0+4eIGM0gsEmeITiROsxb5N19GUxOO3 kyMS4sSZ6q2GcXoH+98Bs4J0OQz9UAS9+LfEek40ha2wtPjJsA05lhZW6ui6MU7ijcq6nQ rDRtws+ccDXz60ItdeY57YsUfgeqRiw9rcamUtUssCfxfVM8w6UwoS+56FmsjA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4hxt804Hn7z1CNq for ; Sat, 03 Oct 2026 17:34:56 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 1f121 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Sat, 03 Oct 2026 17:34:56 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Warner Losh Subject: git: 8bc06ba211b9 - main - stand: Lookup specific SA value in a dnode 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 List-Id: List-Post: List-Help: List-Subscribe: List-Unsubscribe: List-Owner: Precedence: list MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: imp X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 8bc06ba211b962c4742fe2acb17c22b86256d592 Auto-Submitted: auto-generated Date: Sat, 03 Oct 2026 17:34:56 +0000 Message-Id: <6ac13cc0.1f121.382f8fd0@gitrepo.freebsd.org> The branch main has been updated by imp: URL: https://cgit.FreeBSD.org/src/commit/?id=8bc06ba211b962c4742fe2acb17c22b86256d592 commit 8bc06ba211b962c4742fe2acb17c22b86256d592 Author: Warner Losh AuthorDate: 2026-10-03 14:42:48 +0000 Commit: Warner Losh CommitDate: 2026-10-03 17:32:08 +0000 stand: Lookup specific SA value in a dnode zfs_dnode_sa_lookup will look in the bonus part of the dnode for the requested SA values, and fall back to the spill as if it's not there. Sponsored by: Netflix Differential Revision: https://reviews.freebsd.org/D60266 --- stand/libsa/zfs/zfsimpl.c | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/stand/libsa/zfs/zfsimpl.c b/stand/libsa/zfs/zfsimpl.c index e06c9b01328b..1eb1923fac49 100644 --- a/stand/libsa/zfs/zfsimpl.c +++ b/stand/libsa/zfs/zfsimpl.c @@ -3901,6 +3901,43 @@ zfs_sa_lookup(struct zfsmount *mount, const void *buf, size_t buflen, return (ENOENT); } +/* + * Try to find the requested attribute by looking in both the bonus area and the + * spill areas. The bonus area is already in memory, but we need to read the + * spill area. + */ +static int +zfs_dnode_sa_lookup(struct zfsmount *mount, dnode_phys_t *dn, + enum zfs_sa_attr_id attr, void *value, size_t *size) +{ + void *buf; + size_t buflen, valuesize; + int error; + + if (dn->dn_bonuslen != 0) { + valuesize = *size; + error = zfs_sa_lookup(mount, DN_BONUS(dn), dn->dn_bonuslen, + attr, value, &valuesize); + if (error == 0) { + *size = valuesize; + return (0); + } + if (error != ENOENT) + return (error); + } + if ((dn->dn_flags & DNODE_FLAG_SPILL_BLKPTR) == 0) + return (ENOENT); + buflen = BP_GET_LSIZE(DN_SPILL_BLKPTR(dn)); + buf = malloc(buflen); + if (buf == NULL) + return (ENOMEM); + error = zio_read(mount->spa, DN_SPILL_BLKPTR(dn), buf); + if (error == 0) + error = zfs_sa_lookup(mount, buf, buflen, attr, value, size); + free(buf); + return (error); +} + static int zfs_dnode_stat(struct zfsmount *mount, dnode_phys_t *dn, struct stat *sb, uint64_t fsid_guid, uint64_t objnum)