From nobody Thu Apr 18 00:50:37 2024 X-Original-To: dev-commits-src-all@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 4VKfMd5Dx5z5HVD2; Thu, 18 Apr 2024 00:50:37 +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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4VKfMd4hJYz4ry1; Thu, 18 Apr 2024 00:50:37 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1713401437; 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=t2+cdAcdzm15ly9OPnWgxt26+FR/apEtj341sudBBIw=; b=qSSe/5o7VdmAl2xyuIcN2zdUbVi67thpDW/TZxfS16WEDxQ4hfaLtCUH1vaW3ybm+OxvZh jDEjRmQvAxwTCyGi4OjC27czzSu6qGHJIq8bltriRdiihQom59qZ866rQKNA7+O9TbN1A4 c/JPZcoj6lqZYuQaVg3SgVYBnmY9MtSzGnxJPZg1Dzx3cynu7koeu/VHpVLsyFvEjyEwqg Z2kH4cMoFmEqKu7INlpsmpIpS+/JkSW007Pb6PZhaYnh1huf+R7hgniDXF9sJ0xPq4mSP+ RfjFBKK8ABap2hv3iBy7OaBDO9khBbWCHAPWitFkyEp+OSUPTYVUwLo/u2s5Ig== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1713401437; a=rsa-sha256; cv=none; b=Bh/h5KEDDK6HOCfPLLNOONmBwg1tMtIfk/zPp2BX6doJt3QA5KajPqQSJaX7J2LD5YmPn6 eCNXT5hvHPR7NQDnoBgk1sb84nv5GkzI3RQCyLEAxtA3LQz0sn5C/lMNksL64TjO4ZKREd 3xs4VIctlWAxKxP3aMwo+Ql1XbZMPWDYWBRAJA1rOej15gnd/ZP1ZSbYYet46NlP9ARtcm y8aPkyy0+EUMjpxyrfHGeJS2BI1EH0Y3r6E7W3DVTEuiutUPAbightK8E36Hz3hrXzpeeq P1bR9jinBf2CfuUNmPXxcJ6veALX/i9pwhCDEpat2J5IYHXkJOK3mLVlJ8vIAw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1713401437; 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=t2+cdAcdzm15ly9OPnWgxt26+FR/apEtj341sudBBIw=; b=uYXVWgqqL4Kf5Oytqk39MFRst8kp9bcStLfrMnZmrOC/qbtmZLt/wcv0PIDWMsCchcwvU9 2+qY19OJ8VaKRqesjra4JqJuJC4c5GmdYB0LUjf9u84yE0By2D2SQJTfObiZz7ojd3VTqL 0Xu/54k6yV+KJDx049q0jvQahjJu9z8+K/80X+7WRPIXtnxHazCLzvKuOn/E75ArVTnWBF Cd4KPZ8Dl5vAbSLIWkIvXJx7lyu2fJLMhjTOfqB04y6oee6JFqO3e2MEreBUz/KXSvvlfe lrswqwDIOmMrvUcjJRTAIOY3DyWxWhiUac1hxirU+XS3Ko4jXPB1YgtdzFKB6Q== 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 4VKfMd4JL9zp7q; Thu, 18 Apr 2024 00:50:37 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 43I0obua046966; Thu, 18 Apr 2024 00:50:37 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 43I0obsM046963; Thu, 18 Apr 2024 00:50:37 GMT (envelope-from git) Date: Thu, 18 Apr 2024 00:50:37 GMT Message-Id: <202404180050.43I0obsM046963@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Rick Macklem Subject: git: 40631b79b5fe - stable/14 - nfscl: Purge name cache when readdir_plus is done List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-all@freebsd.org Sender: owner-dev-commits-src-all@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/stable/14 X-Git-Reftype: branch X-Git-Commit: 40631b79b5fedc53045c98eccb0e38e6c3d27ba8 Auto-Submitted: auto-generated The branch stable/14 has been updated by rmacklem: URL: https://cgit.FreeBSD.org/src/commit/?id=40631b79b5fedc53045c98eccb0e38e6c3d27ba8 commit 40631b79b5fedc53045c98eccb0e38e6c3d27ba8 Author: Zaphrod Beeblebrox AuthorDate: 2024-04-11 20:27:27 +0000 Commit: Rick Macklem CommitDate: 2024-04-18 00:49:10 +0000 nfscl: Purge name cache when readdir_plus is done The author reported that this patch was needed to avoid crashes on a fairly busy RISC-V system. The author did not provide details w.r.t. the crashes. Although I have not seen any such crash, the patch looks reasonable and I have not found any regressions when testing it. Since "rdirplus" is not a default option, the patch is only needed if you are doing NFS mounts with the "rdirplus" mount option and seeing crashes related to the name cache. (cherry picked from commit d00c64bb2347cc620d31a178c7755aa7e594f065) --- sys/fs/nfsclient/nfs_clvnops.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/sys/fs/nfsclient/nfs_clvnops.c b/sys/fs/nfsclient/nfs_clvnops.c index 0b8c587a542c..85c0ebd7a10f 100644 --- a/sys/fs/nfsclient/nfs_clvnops.c +++ b/sys/fs/nfsclient/nfs_clvnops.c @@ -2459,6 +2459,16 @@ nfs_readdir(struct vop_readdir_args *ap) return (EINVAL); uio->uio_resid -= left; + /* + * For readdirplus, if starting to read the directory, + * purge the name cache, since it will be reloaded by + * this directory read. + * This removes potentially stale name cache entries. + */ + if (uio->uio_offset == 0 && + (VFSTONFS(vp->v_mount)->nm_flag & NFSMNT_RDIRPLUS) != 0) + cache_purge(vp); + /* * Call ncl_bioread() to do the real work. */