Received: by 2002:a05:6358:a55:b0:ec:fcf4:3ecf with SMTP id 21csp6227833rwb; Wed, 18 Jan 2023 02:46:52 -0800 (PST) X-Google-Smtp-Source: AMrXdXuhpeugI6iWLbn0cIgu6RAvC3q2VawuyU/5oRfQgxRNWrLU51I3WTiVMcol/d8LZSlZHPjf X-Received: by 2002:a17:907:cca4:b0:7c0:f719:838d with SMTP id up36-20020a170907cca400b007c0f719838dmr17940067ejc.36.1674038812250; Wed, 18 Jan 2023 02:46:52 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1674038812; cv=none; d=google.com; s=arc-20160816; b=UNHNQb428HQFyQzaFHFB3hlvXfI/rYZVWF/hHg4VYtIaSPnGxJFr5IkkWzykQpzOZI uHH2T7furBD+n+Nap6EgVZJLE7WEdUxRBOb9aGUL0y37k0vs9LJ7lmWVHmnKRd9n1WMF 3c66dtbO6ktRxbSO7SG3UWY98sw3tBBln4185cOKEyx27pm6QOvOq3Kkl1QNuD3zGPEZ WuOpj1sdOOpAcn4kqbca8TXABb9axDe5e/YbSyfREUz4DWxrWmCvR1XCmH9dl2T2ZarB 2kbe6mlHHiIc7fgRnbpEiytDr5fdSDaq6A+ci8ibm4QlOdHBqt6WolPBLLqaucOBuUdh hCcQ== 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:cc:to:from:dkim-signature; bh=mTpJ9cNrsuABtrc2CMMVqtRMFrq4GM5CqdliOGUWCwM=; b=W0/CBf/WDFqgCscS7QsnUvMeszYjBJ47gtV3k+1ChAxk9kwMvBklMv5swI+hWQU1iA KmzaxsFZrYSXoZy4Z4/LIj1fIhpT4oYzKhb9uFJHKdYG1KDITxOOpbA4zAwxHU7TWIS2 xmVAR0qwKDrCknUTUovXBuS4JpRGORTowQqEpw3AIbnTYAO7C6BhSraOhcpXC9qO7UTf 2QlsYv4FzJ6XxOqs0OoyPIncSvnpAGvhkyHMTrNBzpGVIbqX28gJNbx4BDq8t4ESvaa0 M7cij78BSus23tsfn4yv5JROAKa+DXV66KwK7eNcrc7nCEOU2yTz8KnGOY8mNFc2amht EJ0Q== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@infradead.org header.s=bombadil.20210309 header.b=m3S30bmc; spf=pass (google.com: domain of linux-ext4-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-ext4-owner@vger.kernel.org Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id wg3-20020a17090705c300b00773db351c39si6138602ejb.64.2023.01.18.02.46.28; Wed, 18 Jan 2023 02:46:52 -0800 (PST) Received-SPF: pass (google.com: domain of linux-ext4-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=@infradead.org header.s=bombadil.20210309 header.b=m3S30bmc; spf=pass (google.com: domain of linux-ext4-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-ext4-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229780AbjARKlo (ORCPT + 99 others); Wed, 18 Jan 2023 05:41:44 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:33996 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229783AbjARKjP (ORCPT ); Wed, 18 Jan 2023 05:39:15 -0500 Received: from bombadil.infradead.org (bombadil.infradead.org [IPv6:2607:7c80:54:3::133]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id EF9E04F85E; Wed, 18 Jan 2023 01:43:38 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=bombadil.20210309; h=Content-Transfer-Encoding: MIME-Version:Message-Id:Date:Subject:Cc:To:From:Sender:Reply-To:Content-Type: Content-ID:Content-Description:In-Reply-To:References; bh=mTpJ9cNrsuABtrc2CMMVqtRMFrq4GM5CqdliOGUWCwM=; b=m3S30bmc8TCiQ6vdoZu9c2phhY jM9LuKvom42BtXPuSImJllOB2g9FN6hYD3qkqZzyuriVI70Mz/jgWDpHcwKbwDNzpQw1KBh7ThcLj ercQ1HWbJ/Bs2RcC0SWVvbF3jHm0/wUfFvGp+wiapfTbhRhTXVEFkPLdSSypVawGU6DUcHfm1teNX 8RlCOYBwmcNQJfoh73rqnAYQ4VwJoLKjXYbmSQkz+jD8yonpmOPVBWTmYBGHOTTx/e23O9DlQZXsM 2zlutqfaqjVAJv6W7SYjHZrRQb3IEMt+I5xXXzGNS2FfhzqsVt4Q3cYttsw70MipKO+Ro+4OY9gvh UJAYvjpQ==; Received: from 213-147-167-250.nat.highway.webapn.at ([213.147.167.250] helo=localhost) by bombadil.infradead.org with esmtpsa (Exim 4.94.2 #2 (Red Hat Linux)) id 1pI4yk-0009uq-Jk; Wed, 18 Jan 2023 09:43:35 +0000 From: Christoph Hellwig To: Andrew Morton , Matthew Wilcox , Hugh Dickins Cc: linux-afs@lists.infradead.org, linux-btrfs@vger.kernel.org, linux-ext4@vger.kernel.org, cluster-devel@redhat.com, linux-mm@kvack.org, linux-xfs@vger.kernel.org, linux-fsdevel@vger.kernel.org, linux-nilfs@vger.kernel.org Subject: return an ERR_PTR from __filemap_get_folio Date: Wed, 18 Jan 2023 10:43:20 +0100 Message-Id: <20230118094329.9553-1-hch@lst.de> X-Mailer: git-send-email 2.39.0 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org. See http://www.infradead.org/rpr.html X-Spam-Status: No, score=-4.0 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_EF,HEADER_FROM_DIFFERENT_DOMAINS, RCVD_IN_DNSWL_MED,SPF_HELO_NONE,SPF_NONE autolearn=ham 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-ext4@vger.kernel.org Hi all, __filemap_get_folio and its wrappers can return NULL for three different conditions, which in some cases requires the caller to reverse engineer the decision making. This is fixed by returning an ERR_PTR instead of NULL and thus transporting the reason for the failure. But to make that work we first need to ensure that no xa_value special case is returned and thus return the FGP_ENTRY flag. It turns out that flag is barely used and can usually be deal with in a better way. Note that the shmem patches in here are non-trivial and need some careful review and testing. Diffstat fs/afs/dir.c | 10 +++---- fs/afs/dir_edit.c | 2 - fs/afs/write.c | 4 +- fs/btrfs/disk-io.c | 2 - fs/btrfs/extent_io.c | 2 + fs/ext4/inode.c | 2 - fs/ext4/move_extent.c | 8 ++--- fs/gfs2/lops.c | 2 + fs/hugetlbfs/inode.c | 2 - fs/iomap/buffered-io.c | 6 ++-- fs/netfs/buffered_read.c | 4 +- fs/nilfs2/page.c | 6 ++-- include/linux/pagemap.h | 4 +- include/linux/shmem_fs.h | 1 mm/filemap.c | 27 ++++++++----------- mm/folio-compat.c | 4 +- mm/huge_memory.c | 5 +-- mm/memcontrol.c | 2 - mm/mincore.c | 2 - mm/shmem.c | 64 +++++++++++++++++++---------------------------- mm/swap_state.c | 17 ++++++------ mm/swapfile.c | 4 +- mm/truncate.c | 15 +++++------ 23 files changed, 93 insertions(+), 102 deletions(-)