From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 610793EFD3B; Wed, 25 Mar 2026 14:40:59 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774449659; cv=none; b=UeTv/2a9+xH3ongYREhmjkvdXu/kBVf/oWZx7WTyXANtDRzd98vxma/H2TzaxgrUv/miEioNnbafI9mGZQcwDVVqK9AevzLo69fwnSxoob7Fi84iY5O8jUWO0LiQIICTBbxGg2ouPy/YVedszdKJzVdrms0f4PQOIqJKgU+8uSw= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774449659; c=relaxed/simple; bh=1AKPKcydftHop5CQp8Iwo1zeSc7b5Z2FWQsZ75X7nWw=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=QNFNRWC4kie40LlFev26UtT0V6JOZJ67nEUj44W/nD8uAFZVRpuAyQr04RJcLDRM8SLyqboyCdgq4/GXZFIQzqc5YhDXpqb6ydSC7DH4khajXVFr2wCSuCKyOoYvHqMl6rUhLRidQSdwj8REaLSegkmw7YjZyRA6BYdJR/2j5ks= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=QtR0VpPk; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="QtR0VpPk" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 75B06C4CEF7; Wed, 25 Mar 2026 14:40:57 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1774449659; bh=1AKPKcydftHop5CQp8Iwo1zeSc7b5Z2FWQsZ75X7nWw=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=QtR0VpPkyZjdoD4F1UG3c+2efbEQ4bCoWzZETMhvg7xyQUJhvx+Lk5JOcwEsJNX2I 0D2VH/1xcWLNJP+vQdxFZB0LSCLP1g0a0otQOJNJVKh9vvSHIVCkyO/Uao+4yvaxr8 QSGKSwLjHB/9w83xwmIkTt2do7l120WSXKz7PQBEdDfKCgFLtGHBu0501ZiiHFFHbs VKNN8yMHvTkT6H3Fxj1mhspjcMxS0X+EhOFpJlDVzFu2ggchW/SSGRudjaWlJ31xQ4 ntLFR3L3GhvpraLGIpwJa7NYrlT6XY+1+1idbh4J3rgVa8T+zxCGehVnk1ZjvfLvxD TXvvAC479yisg== From: Jeff Layton Date: Wed, 25 Mar 2026 10:40:26 -0400 Subject: [PATCH v2 05/13] sunrpc: add a cache_notify callback Precedence: bulk X-Mailing-List: netdev@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit Message-Id: <20260325-exportd-netlink-v2-5-067df016ea95@kernel.org> References: <20260325-exportd-netlink-v2-0-067df016ea95@kernel.org> In-Reply-To: <20260325-exportd-netlink-v2-0-067df016ea95@kernel.org> To: Chuck Lever , NeilBrown , Olga Kornievskaia , Dai Ngo , Tom Talpey , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Simon Horman , Donald Hunter Cc: Trond Myklebust , Anna Schumaker , linux-nfs@vger.kernel.org, linux-kernel@vger.kernel.org, netdev@vger.kernel.org, Jeff Layton X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=1517; i=jlayton@kernel.org; h=from:subject:message-id; bh=1AKPKcydftHop5CQp8Iwo1zeSc7b5Z2FWQsZ75X7nWw=; b=owEBbQKS/ZANAwAKAQAOaEEZVoIVAcsmYgBpw/PuMNLtOswekS40u/7k9/vOEW6PhAWumjoLR aUdI4T0eOGJAjMEAAEKAB0WIQRLwNeyRHGyoYTq9dMADmhBGVaCFQUCacPz7gAKCRAADmhBGVaC Ff5QD/0d0j0M06Nq0/dYUOn/kGW93mmPkvDM6lNvqGW/aDIJTQLWXllEsmCLwgTtXLmutUOzQch lSVppYwI+huB2VUKcTfs4ZLSeEb0f8KZJFg6aBN1VG2m08A0TfpEZEVo3ccH126U90UeR2UoRL2 aRi0mtJbjMvY7Y3eLh3fb3LIjfkONklW5PhDhS2W9ppIXifpqHOc4l6fvWJ9Cncf0QqU6lk+TTs uc0YttDh+oVYa4SUGRYKd3u9AopYiMQ3HPnaZBdxBrpLwHujqs46j7g+31KNCgZXN9zxqEwwuqa A2RM1emehdUo/1mHwMuTH4mEsFMEKhPVpmMhgZ2q+S89cpsmhrAHY3GXvhItbvMHnYPKVilUUcj LdJs+2VMnUThVVApaJGNTMooMgnMLrA7aQDu+xRm7B4/Bg/akkJqJ3DUINvowMBM2i9GDIb8xx1 sTj5MjyDU0tgEC5/8ocnB/6pNs+oTRJTkympkL7X1TTanR88jCxMWnsWlVblgWZXN1cadv/QG2x IX20zPYSj5Z6fFWuIwQeoA7EzMDy2YhkQG5LWCMYiUbeZOFHn/0PJz3S38ufSpFI0NbERn0DG7V VxZXMR4rhn2Lksi36t8Jk1FG0WaqI5xk1foOQk4khRX0zXJgS1jucNMi9FPwWukEjO5GvwiYxlK kjmkq+mEF1q9d2A== X-Developer-Key: i=jlayton@kernel.org; a=openpgp; fpr=4BC0D7B24471B2A184EAF5D3000E684119568215 A later patch will be changing the kernel to send a netlink notification when there is a pending cache_request. Add a new cache_notify operation to struct cache_detail for this purpose. Signed-off-by: Jeff Layton --- include/linux/sunrpc/cache.h | 3 +++ net/sunrpc/cache.c | 2 ++ 2 files changed, 5 insertions(+) diff --git a/include/linux/sunrpc/cache.h b/include/linux/sunrpc/cache.h index 80a3f17731d8fbc1c5252a830b202016faa41a18..c358151c23950ab48e83991c6138bb7d0e049ace 100644 --- a/include/linux/sunrpc/cache.h +++ b/include/linux/sunrpc/cache.h @@ -80,6 +80,9 @@ struct cache_detail { int (*cache_upcall)(struct cache_detail *, struct cache_head *); + int (*cache_notify)(struct cache_detail *cd, + struct cache_head *h); + void (*cache_request)(struct cache_detail *cd, struct cache_head *ch, char **bpp, int *blen); diff --git a/net/sunrpc/cache.c b/net/sunrpc/cache.c index 8a66128a1bfabca42b52f274ea34c1b594a5920b..a182a179a1bfdb883ceda417a5809d967659be5d 100644 --- a/net/sunrpc/cache.c +++ b/net/sunrpc/cache.c @@ -1233,6 +1233,8 @@ static int cache_do_upcall(struct cache_detail *detail, struct cache_head *h) /* Lost a race, no longer PENDING, so don't enqueue */ ret = -EAGAIN; spin_unlock(&detail->queue_lock); + if (ret != -EAGAIN && detail->cache_notify) + detail->cache_notify(detail, h); wake_up(&detail->queue_wait); if (ret == -EAGAIN) { kfree(buf); -- 2.53.0