From: Lance Yang <lance.yang@linux.dev>
To: usama.arif@linux.dev, willy@infradead.org
Cc: akpm@linux-foundation.org, linux-fsdevel@vger.kernel.org,
linux-mm@kvack.org, Lance Yang <lance.yang@linux.dev>
Subject: Re: [PATCH v2 2/6] ntfs: Remove use of __folio_index in handle_bounds_compressed_page()
Date: Sat, 13 Jun 2026 15:06:01 +0800 [thread overview]
Message-ID: <20260613070601.90382-1-lance.yang@linux.dev> (raw)
In-Reply-To: <fda62f90-2c8c-48ec-88ae-310bb5adaa37@linux.dev>
On Tue, Jun 09, 2026 at 04:55:03PM +0100, Usama Arif wrote:
[...]
>>
>> Are you saying my transformation is non-equivalent (and I have
>> introduced a bug), or are you noting that this is a pre-existing bug?
>>
>> If the latter, is the error that the else branch exists, or did the
>> author intend to write a different test?
>
>The transformation is non-equivalent.
Right. Let me try to make one case easier to see.
Assume:
PAGE_SIZE = 4096
page->__folio_index = 2
pos = 8192
initialized_size = 9000
i_size = 12000
Before the patch, the relevant code was:
if ((page->__folio_index >= (initialized_size >> PAGE_SHIFT)) &&
(initialized_size < i_size)) {
[...]
if (((s64)page->__folio_index << PAGE_SHIFT) >= initialized_size) {
clear_page(kp);
return;
}
kp_ofs = initialized_size & ~PAGE_MASK;
memset(kp + kp_ofs, 0, PAGE_SIZE - kp_ofs);
}
For this page, the outer check was true:
page->__folio_index >= (initialized_size >> PAGE_SHIFT)
2 >= (9000 >> 12)
2 >= 2
and initialized_size < i_size was also true:
initialized_size < i_size
9000 < 12000
but the inner check was false:
((s64)page->__folio_index << PAGE_SHIFT) >= initialized_size
(2 << 12) >= 9000
8192 >= 9000
So the old code reached the tail-zeroing case:
kp_ofs = 9000 & ~PAGE_MASK = 808
and zeroed page offset 808..4095, i.e. file offset 9000..12287.
After this patch, the outer check became:
loff_t pos = page_offset(page);
if ((pos >= initialized_size) && (initialized_size < i_size))
For the same page:
pos >= initialized_size
8192 >= 9000
so the first half of the outer check is false, and the block is skipped
entirely.
Cheers, Lance
next prev parent reply other threads:[~2026-06-13 7:06 UTC|newest]
Thread overview: 27+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-06-08 21:06 [PATCH v2 0/6] Remove __folio_index again Matthew Wilcox (Oracle)
2026-06-08 21:06 ` [PATCH v2 1/6] ntfs: Inline zero_partial_compressed_page() Matthew Wilcox (Oracle)
2026-06-09 0:18 ` Hyunchul Lee
2026-06-08 21:06 ` [PATCH v2 2/6] ntfs: Remove use of __folio_index in handle_bounds_compressed_page() Matthew Wilcox (Oracle)
2026-06-09 0:19 ` Hyunchul Lee
2026-06-09 13:17 ` Usama Arif
2026-06-09 14:34 ` Matthew Wilcox
2026-06-09 15:55 ` Usama Arif
2026-06-13 7:06 ` Lance Yang [this message]
2026-06-08 21:06 ` [PATCH v2 3/6] ntfs: Use zero_user_segment() " Matthew Wilcox (Oracle)
2026-06-09 0:20 ` Hyunchul Lee
2026-06-09 13:07 ` Usama Arif
2026-06-13 9:41 ` Lance Yang
2026-06-08 21:06 ` [PATCH v2 4/6] ntfs: Remove references to page->__folio_index Matthew Wilcox (Oracle)
2026-06-09 0:22 ` Hyunchul Lee
2026-06-08 21:06 ` [PATCH v2 5/6] show_page_info: Remove printing of page index Matthew Wilcox (Oracle)
2026-06-09 11:59 ` Ye Liu
2026-06-10 20:02 ` Matthew Wilcox
2026-06-13 3:02 ` Ye Liu
2026-06-13 3:18 ` Matthew Wilcox
2026-06-13 4:16 ` Ye Liu
2026-06-09 18:44 ` David Hildenbrand (Arm)
2026-06-10 8:23 ` Vishal Moola
2026-06-08 21:06 ` [PATCH v2 6/6] mm: Remove __folio_index Matthew Wilcox (Oracle)
2026-06-09 18:43 ` David Hildenbrand (Arm)
2026-06-10 8:24 ` Vishal Moola
2026-06-09 5:06 ` [PATCH v2 0/6] Remove __folio_index again Namjae Jeon
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20260613070601.90382-1-lance.yang@linux.dev \
--to=lance.yang@linux.dev \
--cc=akpm@linux-foundation.org \
--cc=linux-fsdevel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=usama.arif@linux.dev \
--cc=willy@infradead.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox