Received: by 2002:a05:6a10:16a7:0:0:0:0 with SMTP id gp39csp1420513pxb; Wed, 4 Nov 2020 08:28:20 -0800 (PST) X-Google-Smtp-Source: ABdhPJwaq28HHv4JNbTsXt4HbpHCC8yBXHxtFlJ1h7li/oUMof8bpcEEDa06qryaGQkq6r087nts X-Received: by 2002:a17:906:400c:: with SMTP id v12mr27032398ejj.387.1604507300021; Wed, 04 Nov 2020 08:28:20 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1604507300; cv=none; d=google.com; s=arc-20160816; b=vPN7CUc0Ep6UR+gPBuieH+jHet9Fxy+lPm5TCyeBivMABsC7+DPp48+QGd9OE1j9TT /s8lrinVFHOPq+RihKZXaYQWEuRyZD/4BiBUYzUQm4oECSkThHgfkgdQ048gHuaCjuWK TbM6vBa72FwJ3ZFXUh7onsBH0G01IUYB0NktJXJaU9qEckyEPCxTVSnuvxvxtvay4S/2 xCYmSRNzZF5qJwdK4Gs0i8pU558IeMs6JYJE9LgD2HO07tdIUutQhJSYW+L8MexR3MSd NN3ZoHxFvzkLwmorjCaCiLSCXR1FfodJC7UPFEKvEzWlJ4YFIl0fz73fS/VbSIi30wYt wDdA== 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 :message-id:date:subject:to:from:dkim-signature; bh=vdvkrsiUfa3kJXoUDQKjJ53EohVCxJvQumeRMRWjiEg=; b=nPnz8ro6FyHH0rMpzY8st7XyP86Ry8AJQm2ATuoahHdHShXi4pNEOjfiVU1NRB4/na CmTE+MWNeb1wEl117yqdE1FZfb3/Nb4V4nc+yerGROj419FSy+xOSJcCSnGQZDLUUnkt bPoB+VZw7o40jRjVhn+SQ1R/ahzD87rUNvgupAS9gf4IgfBoG26QdThDANk0g50HxU8R 8d4/SEkrKDDx8x+R7gc8y6VEhPw4bVbR/msO7Zy3+as2oGz8YtVW31GXwEcf4iUNKZcB VKkdVeD3ZFqZczDB9dLq4hYOQj+ThCT5cbz1gd4Xkrs9+n2OFkkrU1bDFFE9Y3O7bWgB iM4w== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=PG6FfNFH; 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=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id j6si1568583edn.551.2020.11.04.08.27.50; Wed, 04 Nov 2020 08:28:20 -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=@gmail.com header.s=20161025 header.b=PG6FfNFH; 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=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1730803AbgKDQ1D (ORCPT + 99 others); Wed, 4 Nov 2020 11:27:03 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:36082 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728999AbgKDQ1D (ORCPT ); Wed, 4 Nov 2020 11:27:03 -0500 Received: from mail-qt1-x844.google.com (mail-qt1-x844.google.com [IPv6:2607:f8b0:4864:20::844]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 2C7C0C0613D3 for ; Wed, 4 Nov 2020 08:27:02 -0800 (PST) Received: by mail-qt1-x844.google.com with SMTP id p12so5248870qtp.7 for ; Wed, 04 Nov 2020 08:27:02 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:subject:date:message-id:mime-version :content-transfer-encoding; bh=vdvkrsiUfa3kJXoUDQKjJ53EohVCxJvQumeRMRWjiEg=; b=PG6FfNFHou6y3zNAH6paO8Lvt6ZzZbc8YL7TyNolcCfOQJm4RNaKQcuHEFbeqa8lKI n9fzy3TAPXe5NuyY7mUZc8itEWHJ3vn92FecsZ8LAqf2DXxURv/NPo8O7n5jsK/UU8ZI yYUz44og8MCoV4977Yo9b2DZEkbrdl90QTV+xP22mNkdyuleU0h0M6Q2INct+m3wWlil BawLmIcTxpSm4dSabQsu+h8Zk2lI370H4QhVCxNdu6Ys3HhnQQpdErxK5OgSmpthRwa3 Y96SKZCGMfMFxpuDV4PMK6mkvj/+QKvoQkWCKwcr+45SM6pE5NyyhOb0j5UWq2n9iMXb TTVA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:mime-version :content-transfer-encoding; bh=vdvkrsiUfa3kJXoUDQKjJ53EohVCxJvQumeRMRWjiEg=; b=YlsqXG3WSySf9EQjGaIwQTt6BXRjlDRq6rxfWMgrzgWNF+urDI3Nr/B3d+ilXKudqU VGIxcslKoc2yP+1NKLpc+QDgQ6nDDG/qJsr81C3L21QcxzMmjio/dwMjgUQZ/TiK2swT jhLVpdi0ud+9P0XXhPyUeT/kl32pRzreu7XNS2oyh2Kjd0gaNzL80IfAu1wkXq8adPf7 u5Yjak+UpLDDyqMxAxTaT/Pk321BClkNZhIYqPrgTmphbCiYbnbCxIC9jJAjaTVgVg5q 4LdbWnRCZCJTAjY3SdX4g3f1y5TRbXTz4X76cj0NTUpF81E8p60aq2Tis5Z75T4i9BRM k0Uw== X-Gm-Message-State: AOAM531qqRDvi/XRGoTO/HNxD8NPBk+67i3n9kXyiYsIhtfjTkol2a9l iHq6r5xvuI+gkcyBdvDKAeMyarkaU7p0 X-Received: by 2002:ac8:590c:: with SMTP id 12mr12387055qty.28.1604507220884; Wed, 04 Nov 2020 08:27:00 -0800 (PST) Received: from localhost.localdomain (c-68-36-133-222.hsd1.mi.comcast.net. [68.36.133.222]) by smtp.gmail.com with ESMTPSA id g78sm2896924qke.88.2020.11.04.08.26.59 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 04 Nov 2020 08:26:59 -0800 (PST) From: trondmy@gmail.com X-Google-Original-From: trond.myklebust@hammerspace.com To: linux-nfs@vger.kernel.org Subject: [PATCH v3 00/17] Readdir enhancements Date: Wed, 4 Nov 2020 11:16:21 -0500 Message-Id: <20201104161638.300324-1-trond.myklebust@hammerspace.com> X-Mailer: git-send-email 2.28.0 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-nfs@vger.kernel.org From: Trond Myklebust The following patch series performs a number of cleanups on the readdir code. It also adds support for 1MB readdir RPC calls on-the-wire, and modifies the caching code to ensure that we cache the entire contents of that 1MB call (instead of discarding the data that doesn't fit into a single page). v2: Fix the handling of the NFSv3/v4 directory verifier v3: Optimise searching when the readdir cookies are seen to be ordered Trond Myklebust (17): NFS: Ensure contents of struct nfs_open_dir_context are consistent NFS: Clean up readdir struct nfs_cache_array NFS: Clean up nfs_readdir_page_filler() NFS: Clean up directory array handling NFS: Don't discard readdir results NFS: Remove unnecessary kmap in nfs_readdir_xdr_to_array() NFS: Replace kmap() with kmap_atomic() in nfs_readdir_search_array() NFS: Simplify struct nfs_cache_array_entry NFS: Support larger readdir buffers NFS: More readdir cleanups NFS: nfs_do_filldir() does not return a value NFS: Reduce readdir stack usage NFS: Cleanup to remove nfs_readdir_descriptor_t typedef NFS: Allow the NFS generic code to pass in a verifier to readdir NFS: Handle NFS4ERR_NOT_SAME and NFSERR_BADCOOKIE from readdir calls NFS: Improve handling of directory verifiers NFS: Optimisations for monotonically increasing readdir cookies fs/nfs/client.c | 4 +- fs/nfs/dir.c | 629 +++++++++++++++++++++++++--------------- fs/nfs/inode.c | 7 - fs/nfs/internal.h | 6 - fs/nfs/nfs3proc.c | 35 ++- fs/nfs/nfs4proc.c | 40 +-- fs/nfs/proc.c | 18 +- include/linux/nfs_fs.h | 9 +- include/linux/nfs_xdr.h | 17 +- 9 files changed, 459 insertions(+), 306 deletions(-) -- 2.28.0