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 5BAADE7718B for ; Fri, 20 Dec 2024 16:21:58 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id C05FA6B00A3; Fri, 20 Dec 2024 11:21:57 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id BB4306B00A5; Fri, 20 Dec 2024 11:21:57 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id A7D0C6B00A6; Fri, 20 Dec 2024 11:21:57 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0011.hostedemail.com [216.40.44.11]) by kanga.kvack.org (Postfix) with ESMTP id 892856B00A3 for ; Fri, 20 Dec 2024 11:21:57 -0500 (EST) Received: from smtpin20.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay04.hostedemail.com (Postfix) with ESMTP id 36D001A0B80 for ; Fri, 20 Dec 2024 16:21:57 +0000 (UTC) X-FDA: 82915851438.20.C997C5D Received: from casper.infradead.org (casper.infradead.org [90.155.50.34]) by imf19.hostedemail.com (Postfix) with ESMTP id 50FA01A0020 for ; Fri, 20 Dec 2024 16:21:19 +0000 (UTC) Authentication-Results: imf19.hostedemail.com; dkim=pass header.d=infradead.org header.s=casper.20170209 header.b="SPq/Ye5i"; spf=none (imf19.hostedemail.com: domain of willy@infradead.org has no SPF policy when checking 90.155.50.34) smtp.mailfrom=willy@infradead.org; dmarc=none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1734711679; 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-type:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=eOJURInQzJIIcxDvMIe9WqrFg3ERzaS/I/bGYoCc5B8=; b=o+DgjOkRTX9r2nVtSiZrmEdkl3gASSAHRrWGoM5+jGL8KgBfJEdsT3TQ/coFaRUJPN4NUh RnF+6PsZJrxZk3M0C8/ZADYH103eFzoG9bq1UO55eCakLpvuR2+EmT3jFKNvCHV1N7AXb+ 99kcj4DsFhVGQWNxquLG/ubF/jwEkHk= ARC-Authentication-Results: i=1; imf19.hostedemail.com; dkim=pass header.d=infradead.org header.s=casper.20170209 header.b="SPq/Ye5i"; spf=none (imf19.hostedemail.com: domain of willy@infradead.org has no SPF policy when checking 90.155.50.34) smtp.mailfrom=willy@infradead.org; dmarc=none ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1734711679; a=rsa-sha256; cv=none; b=zkWiem0ZJLVNwR5Dra3k0OE9GQVP+WEEG3aYHrCSAmicc/AYl0CyX7PDXJgPxvRIhRrhp4 AafchDVZueQjGSTfJDbP2VOHDYS8ryvVz8m4wIiJnqN07Lex5b0C16/IlggJlZaSXtpzkN kDnPj2quYfMl/nQ7soxJDkgOE+xFLkc= DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=casper.20170209; h=In-Reply-To:Content-Type:MIME-Version: References:Message-ID:Subject:Cc:To:From:Date:Sender:Reply-To: Content-Transfer-Encoding:Content-ID:Content-Description; bh=eOJURInQzJIIcxDvMIe9WqrFg3ERzaS/I/bGYoCc5B8=; b=SPq/Ye5iqRqLJn0qvlIbcO2L0m Gcbs1Oaa2yZHR2GpYUcfdgCE8dl0eNjhwlXj3YlI4b7extR3eyOB4JDEaen+27UFrmN0gTFSaFAa3 gd4It653wAxhHe09XN2EsDmVZSAyn8hxGfB44rqy4IEASkcNu2o88FYSpaElvzeqsVXhTjlwYRLaH S41R2amn/7rhCeVzGtl77Sa2Oot7A2nvjmB7VitDd28Fo9EgG6e7omtZJXt8w+FUQleAsOE8m5VWC OjrwwsBi86zufP39dCvI8+ane7uTghITrHCrMz1qjuD+JnxSOlQCQ+FShHQDJDNy3GenfLttC8F5j P0Kukecw==; Received: from willy by casper.infradead.org with local (Exim 4.98 #2 (Red Hat Linux)) id 1tOflA-00000001b5o-3Q2e; Fri, 20 Dec 2024 16:21:52 +0000 Date: Fri, 20 Dec 2024 16:21:52 +0000 From: Matthew Wilcox To: Jens Axboe Cc: linux-mm@kvack.org, linux-fsdevel@vger.kernel.org, hannes@cmpxchg.org, clm@meta.com, linux-kernel@vger.kernel.org, kirill@shutemov.name, bfoster@redhat.com Subject: Re: [PATCH 06/12] mm/truncate: add folio_unmap_invalidate() helper Message-ID: References: <20241220154831.1086649-1-axboe@kernel.dk> <20241220154831.1086649-7-axboe@kernel.dk> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20241220154831.1086649-7-axboe@kernel.dk> X-Rspamd-Server: rspam06 X-Rspamd-Queue-Id: 50FA01A0020 X-Rspam-User: X-Stat-Signature: oxizujg1n6o9xg6368iaoduq6996ohgc X-HE-Tag: 1734711679-326595 X-HE-Meta: U2FsdGVkX1+pGqW0oRWehkNiSk2PiMELlQSd+PFAD/CTLGj+zcuUnPuryCbgcImzm7SPoOWylyF0jM9ihsnJ1CxmnRF4cYtZ+rLR8gDdQ0Az1YKq7BXk9hn/zXLHeRj2dkcAvt/mBg0od3dRxv3lrUhsSaqBwjoy1rtVRlDL2Hiu9PN42uEU+hj6Wkgh6q4Z1+PZuCxobs7PpC+dlgrmaOQIb78ll6rdB31iBkMYiMFRxoCsAWMNCxSlX2x7l8aPwW0GlUWM7oHoWpSi37OC5XeoxlBn3bLztlNnbfetC/9ub6facfZyh6yfrb/DABnx7KdyQBC9+tNU/KG1z7Gk4OlIo3cJUyrbPur486H87o9LvXafHF6ITZkkVV+WKgQIxKlgmeSLi1l11A8CrWQtaCbQOnzP6QUdeNv1ohYj7+rlET1/HUKRk8PcXfM/6xPDFYCcRBiSPBxCuu4Y7BdMGgYgz8sv/zP3N0uxfXrJe+9s4sjlW+SMe7iHc4GVMRLojaClU+kCt6XWsGcAg+0/8Ztyl/ef1TDV3Iht01XhyQThZIaQyeFvA1+Y0sP0SrAKKX6vbEr7HCqtFEWApo5lLT2Sj5hQFfl4f5EZ+3F1N+EomUG/5Hu9fLFefKqFgGT9w0v4u84RC4f/OD9AaBAlkVPTOvaV6+LZrirdmaQ6wVuWqeL8ClS7WX5CQ/ShU5FXGIJrmUaVgZBbY2Pp8INpLicLTCwROn1kiWO7BEyInej5Jj6eqjdW5Y++eM6xEDcXpm+qmk5tUbviLpzTWrmCCz8DfwCr+3Ya8TdkdffffiRLKOZYSAAB1qgrs9jasgOaKilRYO4nQ7bD3ndMw94Ha8KeLYDcoI6zObu+BK0xffp2yxmhnbfCOmMrMvH9ykrdzokX5hRhj83+AGFAcI+jMaAR7LO71rOu6toexGYTMzL84fRc8m1IjKbEnFLKnMqGEdCuIkrN2XjssHDiZE0 FOzAds84 dD9STdFbeJ8WXj90Y0SJDBLoyQa/y+IOd37R/J3hq3p4E49FlnxbHfufZ3HgfcElugN0LzSTbl1nMdSF+wfzgNVbXNCgrCHc4BBcHUvebSHpntmJUmhvBiNmnwuI1k441BVlb3aVpPwUQXxqz292RP7gYwgC55hf9YAjVRBCDxGlCCSZ2syOePfYokyEozIRn1iLVI4aKUObJLi9uQjkXRgQHI91uefYoYpJodquL0ZM6jkaHdyTvMndUCN/azmfRK7GQ2BDGRKXsy+qEG6W4AcqIgQ== 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: List-Subscribe: List-Unsubscribe: On Fri, Dec 20, 2024 at 08:47:44AM -0700, Jens Axboe wrote: > +int folio_unmap_invalidate(struct address_space *mapping, struct folio *folio, > + gfp_t gfp) > { > - if (folio->mapping != mapping) > - return 0; > + int ret; > + > + VM_BUG_ON_FOLIO(!folio_test_locked(folio), folio); > > - if (!filemap_release_folio(folio, GFP_KERNEL)) > + if (folio_test_dirty(folio)) > return 0; > + if (folio_mapped(folio)) > + unmap_mapping_folio(folio); > + BUG_ON(folio_mapped(folio)); > + > + ret = folio_launder(mapping, folio); > + if (ret) > + return ret; > + if (folio->mapping != mapping) > + return -EBUSY; The position of this test confuses me. Usually we want to test folio->mapping early on, since if the folio is no longer part of this file, we want to stop doing things to it, rather than go to the trouble of unmapping it. Also, why do we want to return -EBUSY in this case? If the folio is no longer part of this file, it has been successfully removed from this file, right?