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 kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 8E110C32793 for ; Wed, 18 Jan 2023 09:43:54 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 296996B0072; Wed, 18 Jan 2023 04:43:54 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 247416B0074; Wed, 18 Jan 2023 04:43:54 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 136116B0075; Wed, 18 Jan 2023 04:43:54 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0015.hostedemail.com [216.40.44.15]) by kanga.kvack.org (Postfix) with ESMTP id 04B236B0072 for ; Wed, 18 Jan 2023 04:43:54 -0500 (EST) Received: from smtpin16.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay06.hostedemail.com (Postfix) with ESMTP id C85DCAAF02 for ; Wed, 18 Jan 2023 09:43:53 +0000 (UTC) X-FDA: 80367433146.16.4FF5A11 Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) by imf27.hostedemail.com (Postfix) with ESMTP id 186A64000C for ; Wed, 18 Jan 2023 09:43:49 +0000 (UTC) Authentication-Results: imf27.hostedemail.com; dkim=pass header.d=infradead.org header.s=bombadil.20210309 header.b=m3S30bmc; spf=none (imf27.hostedemail.com: domain of BATV+aec3eaf5b774c69d00f8+7087+infradead.org+hch@bombadil.srs.infradead.org has no SPF policy when checking 198.137.202.133) smtp.mailfrom=BATV+aec3eaf5b774c69d00f8+7087+infradead.org+hch@bombadil.srs.infradead.org; dmarc=none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1674035032; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-transfer-encoding:content-transfer-encoding: in-reply-to:references:dkim-signature; bh=mTpJ9cNrsuABtrc2CMMVqtRMFrq4GM5CqdliOGUWCwM=; b=tjs70ivBB9Bpwk1EYlFWBdXiPVA9nc3S+bPM4N8/yd+nM43qscNJMvX3rZP9eOQ8Ewa5Ah O3z92uHq23Tx9Pr+NBieGL6luQa0UgouOrVsWCvO2iJNaCDHBRO7iy+Z1d3gywTXzTqsFw gvwmYADuX1vgoSFFKjNbSbEKF1Go+6U= ARC-Authentication-Results: i=1; imf27.hostedemail.com; dkim=pass header.d=infradead.org header.s=bombadil.20210309 header.b=m3S30bmc; spf=none (imf27.hostedemail.com: domain of BATV+aec3eaf5b774c69d00f8+7087+infradead.org+hch@bombadil.srs.infradead.org has no SPF policy when checking 198.137.202.133) smtp.mailfrom=BATV+aec3eaf5b774c69d00f8+7087+infradead.org+hch@bombadil.srs.infradead.org; dmarc=none ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1674035032; a=rsa-sha256; cv=none; b=Q5E1TBykBjnFO6J4rYLCZV9d9WoRnJuq0BulDek8inSOyfrz4ReyWrBuW+HSN4Jhgswscl GDGiFdH507nAsCqUy5sWsS5fVvjkHK9coAeCz2KGnXXqWMld3kwPvofYBPYLn4ztPNr+g9 ybY+GCYxEnVoXnczZ1hBvN1zL3YRWok= 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-Rspam-User: X-Rspamd-Server: rspam04 X-Rspamd-Queue-Id: 186A64000C X-Stat-Signature: 78wezj3qki793q7t533u683pmphcuctb X-HE-Tag: 1674035029-68555 X-HE-Meta: U2FsdGVkX1/fBD1ykN46bairyUKUouZ66WAbpwprWLDrFCtrioD0cOi6i+u/YqNXIzk33PZ4a7WVhAepb8qUawpQpLv+lfRo18znvuxRy43BoKNOoBJoRSFf59hdUgRWyIRHnr7GlYZY4/IRenM6E7ge8dE2ABUVdYR8XTb8wFoNcxnHxSZdoLlEev7WRmkDSzyJBQcyoOsBVRjcdSB4dcSfj2nI6pgRszwyJ2ROPF5Tn5aaC9bCVU29aH2FqoWrwvOA3lkGuhcXdAuU7p3AeF1dhR3b26x2bFCEQzKZE1x/Y2PP0npj6Q/Y2KxPy92tx3cNsNrd/KcxZaFwqo6mttscUTLDNMJcN/HDVK1maHypF+ys7a7BXAQ0FAZLkEoqfmphf0hvZOeNKEnjf8lUUm22ca3JPSVHoV2quupooCOBMxE+BXPYUa8BCSSUzGeYA4CTr/b9hMM/1RpRwIfUQX7kxV8kzR/g5Ch1W+L4zcWJHOVkwWGhX1rnPrbTIYPUCMJEb25Irq3rQp8eYGKngvNJtCNu9ifJqimU8PMAFkqTo7sgbCwTDjNZJZlLMv7vN/XwTznuMOB348KajrNTCUqScHKWofupQrrKMuzF51ds5Erv2ZXsseazSyz+iLzYalaB5TqBEdEfpguRbuvsyWwMg8+HxmVp/dx3wsOGZvRkFOAVgU+2XHh9DdeXFNV20NLlfa91Q7I15d1ye7wMooabFOkt0gLOGIrux4sYq2K+O6P+cI1y/9iX2WMR1GXVVn6s9xEZio2qdP+6d9sEQYCd0cLUQM9j+FNL42cfQSd63pPAVFms7g224YQWjc2J99YQcZyTsp8VBH72OkOQwC29kvPPpMYMzIcdptOPjx9l6Xo/zekB/oEOEhHaPlkXlKUGo/vrHxfrhoHEGyzNM+gw26+vjY70prJB+alW8fA4mLmlGU+d6P85ifvLq/WW8TnfFunZbEcQ4LphYDy 0X098OxJ fvxHbEx355V2GvZyzPU45l81v4GBSJBI5Lsha2B3DIfUxSFNEh8xo/s+VrWCZ53wHVN63rlQjnkJtkgyY397Bo4Bc89P4x0sl0sRVGNYNO1g05qXoAK+x8Dn+EVArq7VtOpCQFt7NyQK9I2JI2STBhY4RExiPJFFSkFJvg0qfFe2Sp+kPJgQ7yBM9ma/jUMDlmkEMNw0LZOQyN9QIW1XdZ32CvUXqEyt5dJQvpNrBNKnC5xg= X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: 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(-)