From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id CDC9FC38147 for ; Wed, 18 Jan 2023 10:41:54 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229930AbjARKls (ORCPT ); Wed, 18 Jan 2023 05:41:48 -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 Precedence: bulk List-ID: X-Mailing-List: linux-fsdevel@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(-)