Received: by 2002:a05:6a10:8c0a:0:0:0:0 with SMTP id go10csp378281pxb; Wed, 20 Jan 2021 09:06:45 -0800 (PST) X-Google-Smtp-Source: ABdhPJwXabGyyi9OqYzpvU5hV6aDO8CflrfDT0f6BclTqfxKFKkgYHpTyq/cptrMhaK6vqANGmSs X-Received: by 2002:a17:906:f0c4:: with SMTP id dk4mr6779952ejb.225.1611162405293; Wed, 20 Jan 2021 09:06:45 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1611162405; cv=none; d=google.com; s=arc-20160816; b=Exgk5WY2y+QMWqPY+TJjIYO7zpm6rvxTZunXEVCxvDg9bMLCEGEgMmwT8xdx1blQ/Q Yns1jE488D5QnnqXWvU0cqkFvE6RaNN8HBAW9QCO3Q7UxYZM/GCY2n1mLXorP8Y1tkhd ONqjj/WsYO8R6UK5POYqKF2iyNazOI7KdhXFGiZgVPc0jpGN6j/La3ZdipSv3Toda3pk KP/IGWC41R0/wQ9tPtfN9n0OkCqBaxakH6RzKdQnVrX0MSEmqFaT14HBbqwVMlKTs/kP S4jaHG1nX7Is5wl54368W2NxkHogAV38uzcP/6UzsHjI8Gb7ubQkazZD+jFRkyibM4Fi kx5A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:to:from :dkim-signature; bh=12Eg8CvR+Ni0Oe8ekqduRsnlP5+EIgifm7UScIeUTpM=; b=jYs+ArtJvnrVV5yxyvYdTADRyKGS3hYXwtIqQpTVRjwUtkScHTmPqsoSWITKm8aVSj M3sKwLAfTnJkrb3hYxX1SsHReFpSrqmh8/K6r+lT5kc8x6v+xXBgD1UfmnlVLlnq4Vjd qA8VrUPD4Qsmk3jTuPf2g+JfCgJcA/+zh2aSL7dc9HXV7cv/qP/DkXnh2t8VxIrNRnNk Ci2WLI7dpwjeXEuxue0F7AYeoJiQqQZ76Pe+IxuApniUZPDeZ3hWpwxYY/AbtUM5ZIYE jjWc1Ob9IF5BytsRoVD5fFDxDSllEFoT2RNYYJX+in15NWIjc+SRMLmU0lacNai09aUi XmJQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@redhat.com header.s=mimecast20190719 header.b=E7rHnyni; spf=pass (google.com: domain of linux-nfs-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-nfs-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=redhat.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id r10si1058880edm.28.2021.01.20.09.06.20; Wed, 20 Jan 2021 09:06:45 -0800 (PST) Received-SPF: pass (google.com: domain of linux-nfs-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@redhat.com header.s=mimecast20190719 header.b=E7rHnyni; spf=pass (google.com: domain of linux-nfs-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-nfs-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=redhat.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2390641AbhATRFO (ORCPT + 99 others); Wed, 20 Jan 2021 12:05:14 -0500 Received: from us-smtp-delivery-124.mimecast.com ([63.128.21.124]:21280 "EHLO us-smtp-delivery-124.mimecast.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2391612AbhATRBf (ORCPT ); Wed, 20 Jan 2021 12:01:35 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1611161998; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=12Eg8CvR+Ni0Oe8ekqduRsnlP5+EIgifm7UScIeUTpM=; b=E7rHnyniYBMmeWQ7h9Ec57QO70mRUlCSKXz/imf+/us3e7DiTVfqxLVGzDJRncIcD1PVyU kqB0rLN9EzvMVSsPf//6BjxSfhHlthfD2EwnjONk9Pkuq507Mi9N6eoVUep32JP0/kao/w Rz6B+F2blqRQ77a8q0vjXsoEV3wPDhY= Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-224-zYrIYeRLNm2JzzjbuiRriw-1; Wed, 20 Jan 2021 11:59:56 -0500 X-MC-Unique: zYrIYeRLNm2JzzjbuiRriw-1 Received: from smtp.corp.redhat.com (int-mx07.intmail.prod.int.phx2.redhat.com [10.5.11.22]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id B7DDF107ACE8 for ; Wed, 20 Jan 2021 16:59:55 +0000 (UTC) Received: from bcodding.csb (ovpn-64-66.rdu2.redhat.com [10.10.64.66]) by smtp.corp.redhat.com (Postfix) with ESMTP id 8A5291001281 for ; Wed, 20 Jan 2021 16:59:55 +0000 (UTC) Received: by bcodding.csb (Postfix, from userid 24008) id ED9B910E5BFF; Wed, 20 Jan 2021 11:59:54 -0500 (EST) From: Benjamin Coddington To: linux-nfs@vger.kernel.org Subject: [PATCH v1 10/10] NFS: Revalidate the directory pagecache on every nfs_readdir() Date: Wed, 20 Jan 2021 11:59:54 -0500 Message-Id: <3e1c54f1a5e50fdeeb814c4067d1462da3f36dfd.1611160121.git.bcodding@redhat.com> In-Reply-To: References: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Scanned-By: MIMEDefang 2.84 on 10.5.11.22 Precedence: bulk List-ID: X-Mailing-List: linux-nfs@vger.kernel.org Since there's no longer a significant performance penalty for dropping the pagecache, and because we want to ensure that the directory's change attribute is accurate before validating pagecache pages, revalidate the directory's mapping on every call to nfs_readdir(). Signed-off-by: Benjamin Coddington --- fs/nfs/dir.c | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/fs/nfs/dir.c b/fs/nfs/dir.c index fc9e72341220..842412454e3d 100644 --- a/fs/nfs/dir.c +++ b/fs/nfs/dir.c @@ -1167,11 +1167,9 @@ static int nfs_readdir(struct file *file, struct dir_context *ctx) * to either find the entry with the appropriate number or * revalidate the cookie. */ - if (ctx->pos == 0 || nfs_attribute_cache_expired(inode)) { - res = nfs_revalidate_mapping(inode, file->f_mapping); - if (res < 0) - goto out; - } + res = nfs_revalidate_mapping(inode, file->f_mapping); + if (res < 0) + goto out; res = -ENOMEM; desc = kzalloc(sizeof(*desc), GFP_KERNEL); -- 2.25.4