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 AABB2C021AD for ; Wed, 19 Feb 2025 01:55:18 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 40FB92801C9; Tue, 18 Feb 2025 20:55:18 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 3989D2801BB; Tue, 18 Feb 2025 20:55:18 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 2393D2801C9; Tue, 18 Feb 2025 20:55:18 -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 048A32801BB for ; Tue, 18 Feb 2025 20:55:17 -0500 (EST) Received: from smtpin10.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay06.hostedemail.com (Postfix) with ESMTP id A90C7B1514 for ; Wed, 19 Feb 2025 01:55:17 +0000 (UTC) X-FDA: 83135026674.10.9EFEA80 Received: from out30-100.freemail.mail.aliyun.com (out30-100.freemail.mail.aliyun.com [115.124.30.100]) by imf29.hostedemail.com (Postfix) with ESMTP id 2D5AA120010 for ; Wed, 19 Feb 2025 01:55:13 +0000 (UTC) Authentication-Results: imf29.hostedemail.com; dkim=pass header.d=linux.alibaba.com header.s=default header.b=s29znBnJ; dmarc=pass (policy=none) header.from=linux.alibaba.com; spf=pass (imf29.hostedemail.com: domain of jefflexu@linux.alibaba.com designates 115.124.30.100 as permitted sender) smtp.mailfrom=jefflexu@linux.alibaba.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1739930115; a=rsa-sha256; cv=none; b=Vzi7n7efNX91ojhUgbMBufgZpLB7uXMkR9x5xlBUCzajbN8eUbx/yW1EWwrcoIAwI63LyK 7nRantKBik6t6vu4KTDB2zCkNhC0KFAG+DpNRxkPQY1PrwfBmSJhC0Zi+V66eYuBeH4bsE 8A9/hkSrJObVS5z/aUnJYgxoRibOweA= ARC-Authentication-Results: i=1; imf29.hostedemail.com; dkim=pass header.d=linux.alibaba.com header.s=default header.b=s29znBnJ; dmarc=pass (policy=none) header.from=linux.alibaba.com; spf=pass (imf29.hostedemail.com: domain of jefflexu@linux.alibaba.com designates 115.124.30.100 as permitted sender) smtp.mailfrom=jefflexu@linux.alibaba.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1739930115; 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=HO+oLkUCtd9RKcvmLT+yfCznp4OX/hFJFuB5S2j5XeM=; b=ILgAOG8DTJDKjMwAT70q/B8pb4DSJKLeIhRtl0Df4mQObBTe0af2cpcQh/MNaBkjfcXsPi TWFB65Mnajic5vZuC3EPLHS6XvZI5pO5AeYEpWpR9sIWRmDmHZM9+aW9ssQR8V7Y1GjjcY dudDgYbeDUzhWY95jU/uGh0P9KRG1rA= DKIM-Signature:v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.alibaba.com; s=default; t=1739930110; h=Message-ID:Date:MIME-Version:Subject:To:From:Content-Type; bh=HO+oLkUCtd9RKcvmLT+yfCznp4OX/hFJFuB5S2j5XeM=; b=s29znBnJJOxLC6aBcwMRIhtTHlWzRENUiJl9ZeQhvjAne7ypkW1yKoFtRLZ4QQf8I5VdDuQ5g2n9xg2mwatAw8CR6UzgQgu4uI32RTuV07IGaDdKOhiZtuL+s2v6CkccOIX3qcE74WKdBS7IDZiNz4Moa4wWZoTnRzgcU/e6Kxs= Received: from 30.221.145.137(mailfrom:jefflexu@linux.alibaba.com fp:SMTPD_---0WPnQNgX_1739930108 cluster:ay36) by smtp.aliyun-inc.com; Wed, 19 Feb 2025 09:55:09 +0800 Message-ID: Date: Wed, 19 Feb 2025 09:55:08 +0800 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH 2/2] mm/truncate: don't skip dirty page in folio_unmap_invalidate() To: Dave Chinner Cc: axboe@kernel.dk, linux-fsdevel@vger.kernel.org, linux-mm@kvack.org, brauner@kernel.org, linux-kernel@vger.kernel.org, viro@zeniv.linux.org.uk References: <20250218120209.88093-1-jefflexu@linux.alibaba.com> <20250218120209.88093-3-jefflexu@linux.alibaba.com> Content-Language: en-US From: Jingbo Xu In-Reply-To: Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-Rspam-User: X-Rspamd-Queue-Id: 2D5AA120010 X-Rspamd-Server: rspam12 X-Stat-Signature: sqeqwbuxyfm54j3r6jrwyrtjxadgzegn X-HE-Tag: 1739930113-770209 X-HE-Meta: U2FsdGVkX18ux6OHCVRTlIeTataTbDQgFsL87Q1mFdt8QXY1NFNQswPb7QB8mK4NxmRQL/v+yBq3iS3tAzEldWPCAibf+NTG3DK1QgZu86t37s+nayqhok1jkBWSuwh8vtNskEheZ8glOKUdsm+wxurBk+U4/Y6XhWBHeyeI/lqYpn2qgYtGcpvMOfMgQ4WmdCujhJWjvkTPWvVxlBin0xjRTXmTfSv1IqRekFOsBlWmxvIfabq5uZL1wnt8bKCjyzXfYoQ5g4VhuU1mM9Z4cm3kH5yLIAOls65cO6zGm8Q6eTdnypEeiIFd9JxeCRzXraK2TwjWU/KaeVbabc8xBScxUFSg0eHv0qmIrH3ktx5izR3MJ6GojmOGHWM6dqwZ9HJiFVfsSdbceITvatrQ2XWyn8eq75VndBiMcx1pX0h6aeoGdbamZH1dXSjk+eDVzaBx7zdW4OmbaLlXXxlh5vwiW908ZGT4HKVnSfEuqwxYjzgGJ5MESnzZbDCORfLXpn9vcAoWoonr+ljTHsQFJ9NG79sOUQG7DB625TBK4Mdz+c42gkS6n/bo/77ZDFrDKy7nhL0STg33DAHGIKP9Icvw8JlznKSw0qFimmRqWj4VsYdO+1o4FXYtX0uQRRzI7dEray4q6HfA0jlJLmZuhxJ4thVDzJzrvLv8ZqV0M3AugTWZcQseWr4rUaZNiny2Z+BT/8VOFcGdzcaboRzSDj4dePh1/670rL9Sdy8Papcos/h9aOUU6NbQ6tQGJYxNzmzwvsUsX9a5wqMn0QOPWopN1agFvEir1KAn4LgduRhpBjLUtsP5zIW4bjGh4c5H5eDLQ1lv5CZ7/+Z0oho4CLoBj9wTuXjh8K6Y15ENCmTOa5ia7BGk7PLUiqA4PbZZBtJplx0RSRRx+penh2SZseVzpHuPx+C7JTpMCk+nBGDh/1mTXN5KNX1RJr/j08Wsi2wa0YYeQHohn7h6jSg XFD+88nC xXMdKMDlwY5gn2vOSwxeu+U+LATgdBvUrWQZG5PbZ0DFJuNkvbH1LSXxrqn91wL09EpiPpjFNoplDnrwjDYtn5ZetW1xy6pZ2G2Uf4x52d0D9r4cyjHCpp99+oVbs9wMrQmoTfGtS3+TVaUI2snX4OPzl6EGOdneDNWSdJ3eceyhC9hUUi4cQjsM+nu5lnw6naSrdbBmqcesxxC3tge7J0OMC6V3ErSZBNaSPBez5KmtLLa2NA8WhcabhKLbxI+ELinypW+K0RJgSUYNJ6K5lS2lgAFDXmGf1LZ/OFBTCbsFA8FXMT4Y0+jHWA3rY1FafzhagyJUMzr+uU0XP2w4m/r8FALAZVw06ryZmAO9zlLSNGZ7kqM69YqSLlVyTpGgoBUr6idaL5GGBEx23AyvupyIbTaY7h9/BTqw6YLj5/iRHqUA85a9VUgkr0RIRKHvLSaGTW4UfavQIBJyQwrWqbeoqfLH45g2YxT2LRYtrqPWFOs8CIX6kV1jlMdXudPUd0JIpKRWT2M9D5EfEbtRLbHX0dLp/O2CPgvzHg4OEwOFRg7/TCaHZ1QVR6pMidqSyHzLEdB8F1LpLXt1XlCBm2Gk3t0/ZcIuBd1ggTA3i02b4MzQ= X-Bogosity: Ham, tests=bogofilter, spamicity=0.000121, 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 2/19/25 8:11 AM, Dave Chinner wrote: > On Tue, Feb 18, 2025 at 08:02:09PM +0800, Jingbo Xu wrote: >> ... otherwise this is a behavior change for the previous callers of >> invalidate_complete_folio2(), e.g. the page invalidation routine. >> >> Fixes: 4a9e23159fd3 ("mm/truncate: add folio_unmap_invalidate() helper") >> Signed-off-by: Jingbo Xu >> --- >> mm/truncate.c | 2 -- >> 1 file changed, 2 deletions(-) >> >> diff --git a/mm/truncate.c b/mm/truncate.c >> index e2e115adfbc5..76d8fcd89bd0 100644 >> --- a/mm/truncate.c >> +++ b/mm/truncate.c >> @@ -548,8 +548,6 @@ int folio_unmap_invalidate(struct address_space *mapping, struct folio *folio, >> >> VM_BUG_ON_FOLIO(!folio_test_locked(folio), folio); >> >> - if (folio_test_dirty(folio)) >> - return 0; > > Shouldn't that actually return -EBUSY because the folio could not be > invalidated? > > Indeed, further down the function the folio gets locked and the > dirty test is repeated. If it fails there it returns -EBUSY.... > > -Dave. Yeah, the original logic of invalidate_inode_pages2_range() is like ``` invalidate_inode_pages2_range # lock page # launder the page if it's dirty invalidate_complete_folio2 # recheck if it's dirty, and skip the dirty page (no idea how page could be redirtied after launder_page()) ``` while after commit 4a9e23159fd3 ("mm/truncate: add folio_unmap_invalidate() helper"), this logic is changed to: ``` invalidate_inode_pages2_range # lock page folio_unmap_invalidate # check if it's dirty, and skip dirty page # launder the page if it's dirty (doubt if it's noops) # recheck if it's dirty, and skip the dirty page ``` -- Thanks, Jingbo