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 6C496E77188 for ; Fri, 20 Dec 2024 16:28:52 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id CF4476B0089; Fri, 20 Dec 2024 11:28:51 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id CA4536B009D; Fri, 20 Dec 2024 11:28:51 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id B45296B00A1; Fri, 20 Dec 2024 11:28:51 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0012.hostedemail.com [216.40.44.12]) by kanga.kvack.org (Postfix) with ESMTP id 96C3D6B0089 for ; Fri, 20 Dec 2024 11:28:51 -0500 (EST) Received: from smtpin01.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay06.hostedemail.com (Postfix) with ESMTP id F0780AFD36 for ; Fri, 20 Dec 2024 16:28:50 +0000 (UTC) X-FDA: 82915869582.01.3010752 Received: from mail-il1-f179.google.com (mail-il1-f179.google.com [209.85.166.179]) by imf28.hostedemail.com (Postfix) with ESMTP id 1EEA2C001D for ; Fri, 20 Dec 2024 16:28:10 +0000 (UTC) Authentication-Results: imf28.hostedemail.com; dkim=pass header.d=kernel-dk.20230601.gappssmtp.com header.s=20230601 header.b=TRDIA1Rm; spf=pass (imf28.hostedemail.com: domain of axboe@kernel.dk designates 209.85.166.179 as permitted sender) smtp.mailfrom=axboe@kernel.dk; dmarc=none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1734712102; 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:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=lTrx6c6/GBb7W3eg60/efo35JCfQ6mibVMPttQjcE6k=; b=uyFtcK/cXBgofFRWzBJJeVvocwsOXHA2rwnG8a4sF6G2Z8lDqchBtQPO8cVxIPorPB1+80 HitUw04J4LGAwWymV5X3qHFIN+VCC0zvB40gHuV44Cq5Prm1aD3ON7tsGi+tt0o1FCl9A/ 1XINuqhJdNSkPYzuqIVNfiLC1ukQtJg= ARC-Authentication-Results: i=1; imf28.hostedemail.com; dkim=pass header.d=kernel-dk.20230601.gappssmtp.com header.s=20230601 header.b=TRDIA1Rm; spf=pass (imf28.hostedemail.com: domain of axboe@kernel.dk designates 209.85.166.179 as permitted sender) smtp.mailfrom=axboe@kernel.dk; dmarc=none ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1734712102; a=rsa-sha256; cv=none; b=tLi4UJLwzz1ujWB+AQHai+UFyjW/EVkfrwgmDqhIMvCVAgHSBIb624ODEyTjnOlllAI6Sq 81vPE7KPF2hMG8S7LrldHa30zLH7fu6scyoR6zeqUY+BeaMaGPf/O3x7essYMYEFIvcEiA 67ebQ78UJON/7ad8sRmLYKnhqk4JMIY= Received: by mail-il1-f179.google.com with SMTP id e9e14a558f8ab-3a7d690479eso14923655ab.0 for ; Fri, 20 Dec 2024 08:28:48 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1734712128; x=1735316928; darn=kvack.org; h=content-transfer-encoding:in-reply-to:from:content-language :references:cc:to:subject:user-agent:mime-version:date:message-id :from:to:cc:subject:date:message-id:reply-to; bh=lTrx6c6/GBb7W3eg60/efo35JCfQ6mibVMPttQjcE6k=; b=TRDIA1RmI96G7L5/FymZpXLa6d/luoTt9P2IAEC4wClSBeME2kG7oN4e4XFSpGaf0F lPDAhECtlXsg4Q+g+fg0gf2v8/bUGBwceAreOQ15yevt4L5FTD+jaTu4QXuyKlho6FwN DDD+A6wZoYjzhHiQL3Rz0F3vm2ppTKGKdv4QukfihvTaLnNSJPprYhN9jCKj7Zukp7Am XuZRx3iQ1P0jcmizsIvneBERlgRHYJNPWqyLHDWPQUuJ+ohti2M/Ri0YDkwXONPpYArn 8Dlij7bdvm+TxxEsgds7p8cOTB0w9zmjFyStIaQQFsC+3+YX4ImaAg/UdNAA+JN56g8K tzvw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1734712128; x=1735316928; h=content-transfer-encoding:in-reply-to:from:content-language :references:cc:to:subject:user-agent:mime-version:date:message-id :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=lTrx6c6/GBb7W3eg60/efo35JCfQ6mibVMPttQjcE6k=; b=IZ91+MwKtpILramMegIzlGxXBLAjEmK4krr6XqKdqR3GZO5hvOVGEOVduWrX0LbANA cTTpC7qzYnt+JqNJBs2pxW681nNJ7nFFB/vn4HdPvRnq3AqMuat6UcA+UqAdeW1afGVc tI45vB+HkYm6IqGFh4Mi5a3G/2A32Yir/N5MBe9fGwfM2b67NgcE7Tls7qTErmYZZyX8 RKmmqF6P6hiKOwpIqFcDZ13aFJmeXjbTWUDw2J8vUYrZYIWNPMecdnbib7i9IGZq6zOx R9mxrFHx4wMEjDtjyeAUUrkjrMD5nwotp9bGKSbW/6jG8FbiLCzvHckZ3wh6PQUiiIX9 Weqg== X-Gm-Message-State: AOJu0YwDU2D4uT11vTIjeCnTB4+Jat8kYy8gGkTZtNKVae2KXQK1XuZK hN3qFFE0jkcvMramavfSINtQGYuSu5d8bKIJcQMNMMLqCqpMOrbTCTpAeaUz6xo= X-Gm-Gg: ASbGncvDzDxsfta8ZHNyLXVz73mFnv/B2SjEgZRQ84WOQWf2AH8CxXkpPtDv7BpTQ+u 8xu10GJat2Fh3irAESgLnbKurVF7AZWDNDhO5/iPZmD0hyFjGCcGCe5U6J56xmo/hRWvQ71k7gI 8CSRVGmPeYkLscmsLjxB3xcutBLfHAWoKPrAjhh1qH9g0kRuXW6efyAD4/0CxRXDPIYQ8uMMvPD X5A+KX6V5YHZar2/pj2T1cbRxag1GDXotHYjWf7x6PkHaAjAuJl X-Google-Smtp-Source: AGHT+IE946EUyT5HojL8viAlIugGNg08DKK/RMd+Co2dM+HvmIIHoy9fivtm1RgK4iLbzGr2AWIINw== X-Received: by 2002:a05:6e02:16c8:b0:3a7:d84c:f2b0 with SMTP id e9e14a558f8ab-3c2d277f25cmr42718565ab.8.1734712127998; Fri, 20 Dec 2024 08:28:47 -0800 (PST) Received: from [192.168.1.116] ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id 8926c6da1cb9f-4e68bf66f47sm868587173.40.2024.12.20.08.28.46 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Fri, 20 Dec 2024 08:28:46 -0800 (PST) Message-ID: <5cb98ddb-744a-4fc8-b793-9dbe56e16f35@kernel.dk> Date: Fri, 20 Dec 2024 09:28:46 -0700 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH 06/12] mm/truncate: add folio_unmap_invalidate() helper To: Matthew Wilcox 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 References: <20241220154831.1086649-1-axboe@kernel.dk> <20241220154831.1086649-7-axboe@kernel.dk> Content-Language: en-US From: Jens Axboe In-Reply-To: Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-Rspamd-Queue-Id: 1EEA2C001D X-Rspamd-Server: rspam12 X-Stat-Signature: inqyh49spz6r9its58qs611smxdgbrbu X-Rspam-User: X-HE-Tag: 1734712090-874211 X-HE-Meta: U2FsdGVkX18lKduqz4dRJqVcROz6NYJFi39PK3p7FpmG3mOJnbUbv6p6cs+j1+yIa1SHky+aICDUa1EyM5loUIBVwSFlKpT7EE6QjUNnSKQjSEdrPbFngjfT2WTEsvvH1IuD7H0a2ilklOEZLKThtaWvAUeInfE8pg+D1cRarG6o0zG/dggTNFsTeNqyQelWHQSEQG+FjIrT7wdJW0LWlfniZ5ctqyAuoPHQspkM7JW1ABgxchCHcBjuOPLa7AerZcCalT28KH6lKhHtn5+Ilq/L9x5Qr0GIFmnv0//Yh0Pz+EgOWOySMm5KV/VcFF9F8jgyiXXghRAL2GvolYBoNIWUgVDhTEBhmeaV+DQo3rprR1MQX1S4MZ2CxZMJrfJ44sTi2z/Wvi7PjxnWcSvzMY1Vuj4zkDSQIDrptarTUQRqbhwd2nq3F4fjTXn8cCGKs7vdMZFo7GColx56gLYNG5sFpFLJ4HB/Ouc8kciS5KO00TYivul48+DtIxpZPCbiyGpxfz8o2vYMD/dElbKCC+7UMFPqNnaskv9J/xuCRnpTthg1ieCHgqms4vdPhatoz3JBvdSpvQSmLTh14Y/6LjV86XuO+jtYRW4L7+w9uSuXgStHYEAHu0Ohz/4zOOYSIrLaa0RdjnSZigHDce3VLzN++Ukw+LX7g7KnccLClOwt4UKS5lSgjRi+LYrAltLjybyUeOBhlK4Nml3WbnByRwtjYU7rVUAI4py/qErFrIh6UsCmaMhhcCVjjPjupELuJYUJtaxj08XwvGgO/eC4QqfWyENjUofUC2T0eH7i82z72tExHqrWTJzgyl/cZY8G3jbXoYxOQZV9mJOnV1wRfN88c8a4Cq4mEmtGuonBfGlaqDIw55m32TQ2+CKBe0dESI4sSyQ951Tf61ywjGf0oAom05NVLMyEB4kgCzKZzVK+ybt+q+bGrnNc1TNHYIHAyrTE3RgNTKYfhKW0kft 4T7+Qxaf wz6JJa6CKdMH1e7isOL4awZPj6xc2T7+Wfy/Gh8og+20ZX9ZKmlxhG8aVPjmodxL5GBTmBUSTGzUZxOewonYytCJAdckHgtnDFouaXbos4l2mRcfm1mmqM4ESXwK4nEvDLaKWUwheywNVVUL528Ond3R+apWLWa7KzHi98LM89QQAQbjAsV0CppDaHoiL8JBRb450klNxIHabKBiS/kAv4Ez+CroP4O2FQ9DWYk0xb992etCWwakr3MkRQ8xXrBIHSLci2f9lqke+55cXu2tCyC4LldzOqzEu+CR1X/QZ0N5wykoJZ8W/JMDXaeZbPdPt16Zpc5BWvbK/D1F3lR/ThoV0WKblL0rZyzi/5VW8Wn0DFfGBFtP874puD11rI5dSLRkKMcRIZM0BvN+VbZa+kI4Nyg== X-Bogosity: Ham, tests=bogofilter, spamicity=0.011653, 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 12/20/24 9:21 AM, Matthew Wilcox wrote: > 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? It's simply doing what the code did before. I do agree the mapping check is a bit odd at that point, but that's how invalidate_inode_pages2_range() and folio_launder() was setup. We can certainly clean that up after the merge of these helpers, but I didn't want to introduce any potential changes with this merge. -EBUSY was the return from a 0 return from those two helpers before. -- Jens Axboe