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 AC110C54ED0 for ; Fri, 23 May 2025 11:58:19 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 045FD6B00C3; Fri, 23 May 2025 07:58:19 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id F385F6B00CD; Fri, 23 May 2025 07:58:18 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id E272F6B00CE; Fri, 23 May 2025 07:58:18 -0400 (EDT) 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 C3FC16B00C3 for ; Fri, 23 May 2025 07:58:18 -0400 (EDT) Received: from smtpin13.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay03.hostedemail.com (Postfix) with ESMTP id 703D8B6D6E for ; Fri, 23 May 2025 11:58:18 +0000 (UTC) X-FDA: 83474024676.13.5D072D2 Received: from relayaws-01.paragon-software.com (relayaws-01.paragon-software.com [35.157.23.187]) by imf09.hostedemail.com (Postfix) with ESMTP id 58A54140012 for ; Fri, 23 May 2025 11:58:16 +0000 (UTC) Authentication-Results: imf09.hostedemail.com; dkim=pass header.d=paragon-software.com header.s=mail header.b=JHJT6w5h; dmarc=pass (policy=quarantine) header.from=paragon-software.com; spf=pass (imf09.hostedemail.com: domain of almaz.alexandrovich@paragon-software.com designates 35.157.23.187 as permitted sender) smtp.mailfrom=almaz.alexandrovich@paragon-software.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1748001496; a=rsa-sha256; cv=none; b=BdyMDQsWH2O3/ICZhOTSR0VjCDZX+iBiwjOVsV0FgQ8/4nD9EgRSPGLJpM8hDFLpZg7O9B 6TPJu2HPDOd3n0Adg2kyBaDjaLJyHO941qa4u0iUp3dpBNQh8VY4M4moL9XrHM4lnYN/HK 6oryKRsLPvoRlnMrEGTo9FyyyGbxNHk= ARC-Authentication-Results: i=1; imf09.hostedemail.com; dkim=pass header.d=paragon-software.com header.s=mail header.b=JHJT6w5h; dmarc=pass (policy=quarantine) header.from=paragon-software.com; spf=pass (imf09.hostedemail.com: domain of almaz.alexandrovich@paragon-software.com designates 35.157.23.187 as permitted sender) smtp.mailfrom=almaz.alexandrovich@paragon-software.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1748001496; 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=+hpZbVz33CApebXOuP1kPfp5LoLvF9fAiy4MFQhcwx8=; b=pwV3I21uNORtFmpOppOtc8GeZJcR6B4FN8+u64l0nyJZwBO3hcN1lw+P/q0i0P8yonlJZI BqEoixRpCNnqdRkz2ckXaVCvCNhOg+ca/yD7PYWvByw/ZnVgaICe+wd+3ONWIRNPAT0COm 0GJzdyrO8pJNHUWRI60yZmfY5RA+wYs= Received: from relayfre-01.paragon-software.com (unknown [176.12.100.13]) by relayaws-01.paragon-software.com (Postfix) with ESMTPS id 19FF31D21; Fri, 23 May 2025 11:57:58 +0000 (UTC) Received: from dlg2.mail.paragon-software.com (vdlg-exch-02.paragon-software.com [172.30.1.105]) by relayfre-01.paragon-software.com (Postfix) with ESMTPS id F23CA2095; Fri, 23 May 2025 11:58:13 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=paragon-software.com; s=mail; t=1748001494; bh=+hpZbVz33CApebXOuP1kPfp5LoLvF9fAiy4MFQhcwx8=; h=Date:From:Subject:To:CC:References:In-Reply-To; b=JHJT6w5hD9ET6tqB7sFW5FvT702vDY6DKvmu9cKE+R606ZM4aBCS42y28Fjv/IZFS +qb9s7xmaPl+qJ97mT1lhX841Qiat7DU+WC7INH5OcVPfxsc4zC6ShJU03tfQomfTa WDx3muHBOkelPMdWplvo1bl6QRvlhPPAGfrrO4BU= Received: from [192.168.95.128] (192.168.211.157) by vdlg-exch-02.paragon-software.com (172.30.1.105) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.7; Fri, 23 May 2025 14:58:13 +0300 Message-ID: <2c56b6a9-dfa0-474e-92fe-d6e7c578fe55@paragon-software.com> Date: Fri, 23 May 2025 13:58:12 +0200 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird From: Konstantin Komarov Subject: Re: [PATCH 2/3] ntfs3: Use folios more in ntfs_compress_write() To: "Matthew Wilcox (Oracle)" CC: , , , , , References: <20250514170607.3000994-1-willy@infradead.org> <20250514170607.3000994-3-willy@infradead.org> Content-Language: en-US In-Reply-To: <20250514170607.3000994-3-willy@infradead.org> Content-Type: text/plain; charset="UTF-8"; format=flowed Content-Transfer-Encoding: 7bit X-Originating-IP: [192.168.211.157] X-ClientProxiedBy: vobn-exch-01.paragon-software.com (172.30.72.13) To vdlg-exch-02.paragon-software.com (172.30.1.105) X-Rspamd-Server: rspam08 X-Rspamd-Queue-Id: 58A54140012 X-Stat-Signature: nyboo6imrm5dhs3r9wa57qtpjs9bjp4w X-Rspam-User: X-HE-Tag: 1748001496-751611 X-HE-Meta: U2FsdGVkX1/845xpRDmGIneGwAdviL3s04zuxySaYUXEXMM8SHZ6GXqkn4BXoz28nxdxacbB/o/XkXy6OXNWm4rtf4KnhUs3Z09nrfeXEUumsnODIY/xoOewEFhgTRjfta7s3d2ZGoBc4ru3qunnW6VkSCtIWWjN9fEvklz+5EduYjiNdfamHsSOlvEbJsLQMyyxQasT8oy8nWMoRaycxDibO6h/ecNZ4pzMF7+fM+nd+l6otvLkXhU6iXqUEHc7U0+PIvqMSsKWSxwx8mdpvWaj6uEPY1hMqSKMMrE4+5Ol1VefuVqvKTQEABg+Q7WntZQPL/Mno0ta6aHbia9HRyJxD4XyGvi77u8HxYSlhYBibdQyS4KeWCkjV3UG/j2Tzk5BY+SON34snSuEo0RtNEwYGA7nNv1xBrkfGT8mgnF/TEh3SRoQNLmcFwGOVxNCJ3hWLmQfm2hqwIU7/qOxqzJhXGhiaiUvEIFrAyOWHD1eAurYXkStYOeIrYoV9g4DD/gqAg9YG5vIvuabxfTKFvgrmGpup7HzI4XbJOgtNg9Fpu+G472Z0wTX1XcQ/w1naeOjfsQuz3dqpJfJrmRHKOiVidNYIc25C/6toEi00DHyaJTzYoFPPRhn4DV6liIqixVfbs9WmFLLQAgEdKBz2VWwGYkVnWNL612vTJoJ0LbbohJGqoEzQsrlhCpPCp3X4vIrnHgey/Sy3cCNQCn4LgNEZ5Qm4LQOU1Dexls6TdzQsFUdVy3OQui2XPfTFM9lqZfCplE4cP+352/EOzpMLLr/da0jtw1uTQcykYXnO/yMirSvkhhspKBajEJXUlbqC/Dfnn6Bew/A7vMF8SWYZPWrALFctsiqLDMfFpmU262PYqBIjYzG+5jO/h2Ewd/OkEpvXpFhuJ0WPu++1jk2vPSxMj61hv+6MUhHtDkcg7sXcOeJngmCYERs8uA1MuxqPvouCumlmrHS5r8G6ZY CBXr14wf sbZbHb3ubUs1R0TqhJETd8ocuUTbhn4BKcwL/eifqMhslepLPhv8jjvin4metnNczULGn/F6Z29DEj8Lf6H6SjdmQYmnaTbOX1K84K0v4ZuL9MXGZgRcuiPuRQRm9Qy6v6NX1mlbeTvxmkRKI8b/ijYTNgUdpNtYUmz/0oTE6aGW0xCqa0qYfKXLrwi+cNOEV6F9ErPHvSQ196oxfRi0dZD9nmpx0rJOd8X41eSMCgpyfR9eC9++FLmBH67iepCIfW5CmGEohmhfOqhxdZPs7CEl0c+GcuVSt6l/zXNGY8vncCOVRN/eMpkGlkM1eHmS75svF53iGZP1Uu8zPaRbJ7MylOOdxLCJ/mwaIBeGpkH8Man5DhRe1Dg25gSMZ0mRVW9o3ivCUxawk6jQvN0eTFrZkXKtmDvHzPH5JVm126BLE005uTHVv49Jc1mqQNuSIuOL5LtU/CipLYiyIZutiWuUfAGF3Uu+7GiDSzhRS1I6Sg0EVHqgzpGMSkPSqYadps4XcVjExpJM19N8gG7zlVNVcnaehBNHVQkE9TY0j5Yu/90Jbkjf67WCy1UBjPexkbgfbrrMTADbol8MTF0sdFB3/WTTGOrACp8IN7JuV124d3EcDa95QSerJ6YOc5+TlgytD 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 5/14/25 19:06, Matthew Wilcox (Oracle) wrote: > Remove the local 'page' variable and do everything in terms of folios. > Removes the last user of copy_page_from_iter_atomic() and a hidden > call to compound_head() in ClearPageDirty(). > > Signed-off-by: Matthew Wilcox (Oracle) > --- > fs/ntfs3/file.c | 31 +++++++++++++------------------ > 1 file changed, 13 insertions(+), 18 deletions(-) > > diff --git a/fs/ntfs3/file.c b/fs/ntfs3/file.c > index 9b6a3f8d2e7c..bc6062e0668e 100644 > --- a/fs/ntfs3/file.c > +++ b/fs/ntfs3/file.c > @@ -998,7 +998,8 @@ static ssize_t ntfs_compress_write(struct kiocb *iocb, struct iov_iter *from) > struct ntfs_inode *ni = ntfs_i(inode); > u64 valid = ni->i_valid; > struct ntfs_sb_info *sbi = ni->mi.sbi; > - struct page *page, **pages = NULL; > + struct page **pages = NULL; > + struct folio *folio; > size_t written = 0; > u8 frame_bits = NTFS_LZNT_CUNIT + sbi->cluster_bits; > u32 frame_size = 1u << frame_bits; > @@ -1008,7 +1009,6 @@ static ssize_t ntfs_compress_write(struct kiocb *iocb, struct iov_iter *from) > u64 frame_vbo; > pgoff_t index; > bool frame_uptodate; > - struct folio *folio; > > if (frame_size < PAGE_SIZE) { > /* > @@ -1062,8 +1062,7 @@ static ssize_t ntfs_compress_write(struct kiocb *iocb, struct iov_iter *from) > pages_per_frame); > if (err) { > for (ip = 0; ip < pages_per_frame; ip++) { > - page = pages[ip]; > - folio = page_folio(page); > + folio = page_folio(pages[ip]); > folio_unlock(folio); > folio_put(folio); > } > @@ -1074,10 +1073,9 @@ static ssize_t ntfs_compress_write(struct kiocb *iocb, struct iov_iter *from) > ip = off >> PAGE_SHIFT; > off = offset_in_page(valid); > for (; ip < pages_per_frame; ip++, off = 0) { > - page = pages[ip]; > - folio = page_folio(page); > - zero_user_segment(page, off, PAGE_SIZE); > - flush_dcache_page(page); > + folio = page_folio(pages[ip]); > + folio_zero_segment(folio, off, PAGE_SIZE); > + flush_dcache_folio(folio); > folio_mark_uptodate(folio); > } > > @@ -1086,8 +1084,7 @@ static ssize_t ntfs_compress_write(struct kiocb *iocb, struct iov_iter *from) > ni_unlock(ni); > > for (ip = 0; ip < pages_per_frame; ip++) { > - page = pages[ip]; > - folio = page_folio(page); > + folio = page_folio(pages[ip]); > folio_mark_uptodate(folio); > folio_unlock(folio); > folio_put(folio); > @@ -1131,8 +1128,7 @@ static ssize_t ntfs_compress_write(struct kiocb *iocb, struct iov_iter *from) > if (err) { > for (ip = 0; ip < pages_per_frame; > ip++) { > - page = pages[ip]; > - folio = page_folio(page); > + folio = page_folio(pages[ip]); > folio_unlock(folio); > folio_put(folio); > } > @@ -1150,10 +1146,10 @@ static ssize_t ntfs_compress_write(struct kiocb *iocb, struct iov_iter *from) > for (;;) { > size_t cp, tail = PAGE_SIZE - off; > > - page = pages[ip]; > - cp = copy_page_from_iter_atomic(page, off, > + folio = page_folio(pages[ip]); > + cp = copy_folio_from_iter_atomic(folio, off, > min(tail, bytes), from); > - flush_dcache_page(page); > + flush_dcache_folio(folio); > > copied += cp; > bytes -= cp; > @@ -1173,9 +1169,8 @@ static ssize_t ntfs_compress_write(struct kiocb *iocb, struct iov_iter *from) > ni_unlock(ni); > > for (ip = 0; ip < pages_per_frame; ip++) { > - page = pages[ip]; > - ClearPageDirty(page); > - folio = page_folio(page); > + folio = page_folio(pages[ip]); > + folio_clear_dirty(folio); > folio_mark_uptodate(folio); > folio_unlock(folio); > folio_put(folio); The changes look fine. Feel free to add them.