Received: by 2002:a05:6358:16cc:b0:ea:6187:17c9 with SMTP id r12csp10278772rwl; Wed, 11 Jan 2023 17:38:07 -0800 (PST) X-Google-Smtp-Source: AMrXdXuUMVaNMxfci6sNdZAD8waIdMTxYKEsDMkDG4s2mmllLVG4YROyUqftaKghohxSMJ8Vb2CW X-Received: by 2002:a05:6402:6d8:b0:461:1998:217f with SMTP id n24-20020a05640206d800b004611998217fmr65048774edy.4.1673487487483; Wed, 11 Jan 2023 17:38:07 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1673487487; cv=none; d=google.com; s=arc-20160816; b=E1xGPZ2ntXWpFc9WV7xzalnahM0cpX6T2wL+pnMHHRJFI5o0vwPGWFdqsI6tle4lu1 +vpXZhszDJN0oK4R89j/0WJdP4dqRMKA1DEmZuouJ2HOymijr0hQEk1kI/5cnWP8c34d 2tn34WB+S1Aerhylj0S6TvGYSYp21jFfNo9POvUh/a+fR3jC4hPXKujGEkmVga94d+mJ eSSiompaiFpU+tW+948OXFXgDU+3C9bK4sUnLnOK0/sHUCTBo52qzQnnJZ5D4mwAQs37 /gLbvODHCTweD7gfuAsYxwZojJGYlo+OHRlOrOH5Hmi9syLJvxuTAi7FYp9tzIj0oWas BeNw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:subject:message-id:date:from:in-reply-to :references:mime-version:dkim-signature; bh=VOXBN8i5kfRuwJ8+ArnIDmvhNdf0EfdOOSVNON7rux8=; b=GfZg1odr2zSnSpRgIDgK/OsLOAZHkOe5YFDnO1TS9Y20EZhs6zmhi7Py9h7h3/kMrw r+icjKN+rZYtcygFliJU2WDgZJc0NEiO4UUl5sAi9ahL1zZhbF5yJ5kgkMiMOFBFVcDh xD4ticTaJNjsQovD85S2iDTubwlVs2WfzN1o8Wrz/HXtWRjOYHE/GVTavCEOZefDJETf oa0F9iG83DBGU70qqKbPtU9dEVta3kW+ox7wW+NER5gloCTYBzxM66/aqD/4m/6A17xK io21bDbIWTu6xQPeu1TO2/vg2cF7i9uLh36SldDnTO02PfHBW4zAtbIt7szPo+RhuS90 BH3A== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@canonical.com header.s=20210705 header.b=jmlZvyBf; spf=pass (google.com: domain of linux-nfs-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-nfs-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=canonical.com Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id fd1-20020a056402388100b00469bac8510csi14210769edb.583.2023.01.11.17.37.34; Wed, 11 Jan 2023 17:38:07 -0800 (PST) Received-SPF: pass (google.com: domain of linux-nfs-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@canonical.com header.s=20210705 header.b=jmlZvyBf; spf=pass (google.com: domain of linux-nfs-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-nfs-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=canonical.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235821AbjALB1D (ORCPT + 99 others); Wed, 11 Jan 2023 20:27:03 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:49990 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235233AbjALB1C (ORCPT ); Wed, 11 Jan 2023 20:27:02 -0500 Received: from smtp-relay-internal-1.canonical.com (smtp-relay-internal-1.canonical.com [185.125.188.123]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id DDC5165E8 for ; Wed, 11 Jan 2023 17:26:59 -0800 (PST) Received: from mail-yb1-f198.google.com (mail-yb1-f198.google.com [209.85.219.198]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by smtp-relay-internal-1.canonical.com (Postfix) with ESMTPS id A68EB3F764 for ; Thu, 12 Jan 2023 01:26:57 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=canonical.com; s=20210705; t=1673486817; bh=VOXBN8i5kfRuwJ8+ArnIDmvhNdf0EfdOOSVNON7rux8=; h=MIME-Version:References:In-Reply-To:From:Date:Message-ID:Subject: To:Cc:Content-Type; b=jmlZvyBf2We86IP2xPZB0vYu8ME5dij6uv0kc7D9N7sEII0mdNhNwF7yi7340nnhR 259TddpMZLE7lJB1ULgBycazIAMnITCXVCSFt6Dlitnd1TXjtGf7Qu+8QL5WGJ8RKc 89lZfWqYB2Yh7uIxTtWInu4xSh0cnSF/usee1gRnjPWuDgKFKOOE0eJXuxhA1nMFwK C1os8m9Qf3aSRAEIUNEcWaPs62DEKRgTr9TZV/WWzWByzDMq9OuXz5wXBACMSPoXDq Th8COuQYzDKuf/5X33V8gCMCQUvEiOL6WuZG/N42H21uP5RWjUDKLiRCVUuhKsTmE+ 6ktFU0ZwE6Ptg== Received: by mail-yb1-f198.google.com with SMTP id k18-20020a25e812000000b0077cc9ab9dd9so17781334ybd.8 for ; Wed, 11 Jan 2023 17:26:57 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=VOXBN8i5kfRuwJ8+ArnIDmvhNdf0EfdOOSVNON7rux8=; b=Ww1fqDmyj5u733gobZ+qgD9BAA4S1L4f8LwUn9c+CcgCVG1W8RKgZdUw9qUQnnt5KY OsxZwJUbEF4+PB5ggJNolBsBkrsqm7Au7d8pLJjJ1xGZFd1VmJB4OTYEwIwph/w1JPDE zJqWdXxWEeC6+Wcc7IDz3dY44/+0pWbCcYkOJgAujNhX56dH41mBo/ZZywxPY9ggHI53 hhPsEeEN7Qywh6xMznWc5Ogb9LbGu/Fbakef/CwJgIWAM9CyV/n45JdjrjOQQ/+FbqnI yGW3w2QGQ78CT11bfy2MiBDls3Q+b4+sPdpnNf2n23V9Q+OApFVGqZ+7Hap2vAmTMMPU LT1w== X-Gm-Message-State: AFqh2kqka+BtTSbhIVL1NrP9yeg3tMpYCVlAmvljG0VydGWITBqSNg2G dXsGPsWlIuSHvwT0pk7cAneV48fZ7XMCztpVioYTMViLF6ZOFcr9ybYzpIaFLmG2erjW64SoMtx kBGzKwAAfvlzL6GCHBFJvWFDMxouqn8/FEFU480VaIPDMlcVmcqs/NQ== X-Received: by 2002:a0d:c0c2:0:b0:39f:ddab:af27 with SMTP id b185-20020a0dc0c2000000b0039fddabaf27mr1885852ywd.17.1673486816731; Wed, 11 Jan 2023 17:26:56 -0800 (PST) X-Received: by 2002:a0d:c0c2:0:b0:39f:ddab:af27 with SMTP id b185-20020a0dc0c2000000b0039fddabaf27mr1885849ywd.17.1673486816456; Wed, 11 Jan 2023 17:26:56 -0800 (PST) MIME-Version: 1.0 References: <20221230030432.38908-1-chengen.du@canonical.com> In-Reply-To: <20221230030432.38908-1-chengen.du@canonical.com> From: Chengen Du Date: Thu, 12 Jan 2023 09:26:45 +0800 Message-ID: Subject: Re: [PATCH] NFS: Judge the file access cache's timestamp in rcu path To: trond.myklebust@hammerspace.com Cc: anna@kernel.org, linux-nfs@vger.kernel.org, linux-kernel@vger.kernel.org Content-Type: text/plain; charset="UTF-8" X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_MED, SPF_HELO_NONE,SPF_PASS autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-nfs@vger.kernel.org Hi, The patch follows the commit 0eb43812c027 but handles the stale cache in rcu path. The stale cache will remain in the list's tail if no other users operate on that inode. May I ask if this patch has any other concerns or drawbacks that need to be considered? Best regards, Chengen Du On Fri, Dec 30, 2022 at 11:05 AM Chengen Du wrote: > > If the user's login time is newer than the cache's timestamp, > we expect the cache may be stale and need to clear. > The stale cache will remain in the list's tail if no other > users operate on that inode. > Once the user accesses the inode, the stale cache will be > returned in rcu path. > > Signed-off-by: Chengen Du > --- > fs/nfs/dir.c | 3 +++ > 1 file changed, 3 insertions(+) > > diff --git a/fs/nfs/dir.c b/fs/nfs/dir.c > index ea1ceffa1d3a..d490d64a9ebd 100644 > --- a/fs/nfs/dir.c > +++ b/fs/nfs/dir.c > @@ -3023,6 +3023,7 @@ static int nfs_access_get_cached_rcu(struct inode *inode, const struct cred *cre > * but do it without locking. > */ > struct nfs_inode *nfsi = NFS_I(inode); > + u64 login_time = nfs_access_login_time(current, cred); > struct nfs_access_entry *cache; > int err = -ECHILD; > struct list_head *lh; > @@ -3037,6 +3038,8 @@ static int nfs_access_get_cached_rcu(struct inode *inode, const struct cred *cre > cache = NULL; > if (cache == NULL) > goto out; > + if ((s64)(login_time - cache->timestamp) > 0) > + goto out; > if (nfs_check_cache_invalid(inode, NFS_INO_INVALID_ACCESS)) > goto out; > *mask = cache->mask; > -- > 2.37.2 >