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 B4D80C83F1A for ; Mon, 14 Jul 2025 22:44:00 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 3889B6B0093; Mon, 14 Jul 2025 18:44:00 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 339676B0095; Mon, 14 Jul 2025 18:44:00 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 24F006B0096; Mon, 14 Jul 2025 18:44:00 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0016.hostedemail.com [216.40.44.16]) by kanga.kvack.org (Postfix) with ESMTP id 0F0656B0093 for ; Mon, 14 Jul 2025 18:44:00 -0400 (EDT) Received: from smtpin07.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay02.hostedemail.com (Postfix) with ESMTP id 772E412BC1E for ; Mon, 14 Jul 2025 22:43:59 +0000 (UTC) X-FDA: 83664349398.07.56A5637 Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by imf08.hostedemail.com (Postfix) with ESMTP id B10D9160004 for ; Mon, 14 Jul 2025 22:43:57 +0000 (UTC) Authentication-Results: imf08.hostedemail.com; dkim=pass header.d=linux-foundation.org header.s=korg header.b=0xaGZV5J; spf=pass (imf08.hostedemail.com: domain of akpm@linux-foundation.org designates 139.178.84.217 as permitted sender) smtp.mailfrom=akpm@linux-foundation.org; dmarc=none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1752533037; 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=S9Ijh7lipOpIVGj4LAzJKS7gO0PpzNMxCcrNmR1deqE=; b=aN67wmMRAseEgDStdnRNpgUQEYtdmEkvLp3/xtmHGVmb+lEm+qxdFjyjVEvszDHLVTRpLU i0U4MVqBORsSeB/kdCxTjQ2m3RhU7iC49rIHnOTlEIZwe8JkXa+SJq5ZqcU6qlZPjyHO9F g5CJ4Sx1IdTQKrHCXv/VbCscrWFp4Kk= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1752533037; a=rsa-sha256; cv=none; b=YfdbnSokO8sS7uhSda2I4wDiRBDoUYyxRMj2xpUyNSayv9jmdoxIiSHpO/FMVeo5bCNIn4 uzlw/++OQlZjy7iLx7NCli4aTsQjqvXAixdEBRFtdtxRTnseikqha8sUqshDaNUM1JNBss wThgdAZ3fyC3UtntLImR+pcgd6w29/o= ARC-Authentication-Results: i=1; imf08.hostedemail.com; dkim=pass header.d=linux-foundation.org header.s=korg header.b=0xaGZV5J; spf=pass (imf08.hostedemail.com: domain of akpm@linux-foundation.org designates 139.178.84.217 as permitted sender) smtp.mailfrom=akpm@linux-foundation.org; dmarc=none Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by dfw.source.kernel.org (Postfix) with ESMTP id 979125C6443; Mon, 14 Jul 2025 22:43:56 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id EC3F3C4CEF0; Mon, 14 Jul 2025 22:43:55 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linux-foundation.org; s=korg; t=1752533036; bh=es64UHQaAjssKVP7Q+amFSDjcaSOz6kzJxPAwja6zLk=; h=Date:From:To:Cc:Subject:In-Reply-To:References:From; b=0xaGZV5JNuxEd758647VUeGZuaPcMPo0TYMXy8plVNavRRg0pBU+TzrBETY5qLhaK edJ30zgDGu1NId+4P8tSMgI10vYBI4JD2teO+jIxCn7vOq9rkzn1CJzTKn3TBQla4y c5V4qPiCcL6fZqOzaNbqRLVjhF3MC3RuhKfuMrB4= Date: Mon, 14 Jul 2025 15:43:55 -0700 From: Andrew Morton To: Klara Modin Cc: Youling Tang , Matthew Wilcox , Jan Kara , linux-fsdevel@vger.kernel.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, chizhiling@163.com, Youling Tang , Chi Zhiling Subject: Re: [PATCH] mm/filemap: Align last_index to folio size Message-Id: <20250714154355.e27c812d71b5968bdd83764c@linux-foundation.org> In-Reply-To: References: <20250711055509.91587-1-youling.tang@linux.dev> X-Mailer: Sylpheed 3.7.0 (GTK+ 2.24.33; x86_64-pc-linux-gnu) Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-Rspamd-Queue-Id: B10D9160004 X-Stat-Signature: w7ij8npi7txrp5dhcd31565m4cyimm33 X-Rspam-User: X-Rspamd-Server: rspam07 X-HE-Tag: 1752533037-861548 X-HE-Meta: U2FsdGVkX1+HvJYGdQuXTrVK+rXlfpj3IUe2yGK0dBcKRMOUVZusn0fkZigvpQd+K+Tebh8NWEtBbHw8brFNwE9MTttvrqhQKWDmvZKIs/9oFlN9n88O7IewaQrPzCjBQ2i5KB/j61UDJq7Gj7FsFc7JZ60uVp4rZTtmkeeaqXEY7e59VjKqXV645Yt/NNLNGqvwWKOg6HZadDi83aACL0pX1HnpDVnX9JVbf8Wj/nrLTXMKWJjE+S1M7KKhSSOnxPyVbMQINCzbgJQsNMa3ampsjq0Gu2LJ+2U4EllKVpD634NFC3ihUgV5knaS45zzXbk4LZCx49dMYBmHDbFyA+hC2msqPrW57UNTWhFG2fEeYsSg6jL73pitXX2raJCnzDmbbDl3MRvVk8mq2FHNPgtIkKmrJaRDJa99HwRtLTmBpC5h5BXY7IVC9xBqXl9TmfnVabU1RdSyNJlFBiE3Ddfc1/ubjXEN6gfRe2YRKQRqSpmLEuJsUxhnFM5LDcAkt3/l6IizA6QLht+Fiu27tn2xwqMxPRgaqBtv0MoemYFa5FwRbYK9h5NZR8rDhhNqE0lLIEaMZDAnF3oRXDQSQdRP4Uj2+WcvS4OLGxcm3x8edES5n0Fd1oovYfJwQ1VcRGyXRRkzAbc7cWGUrhSzzvSi+p98LRZwIcmIjFNM3bOY5wHvOPL5GipgglXBpuLYbeBkDawFXpI/NbjV40D1h9rLbGOeiOfj49aypAC/O+Iy1t2+iRYJvIiYbaCa7X34DZVq33lDEwoSTuBerRGSfgS9PCZVXM5mGky65tH/O3Jt/O/z8IZY8JZOPppPD8txUJFVsyYa+dHNVfFbJ7aSyeHxZUGN1JCwX+9npylw7J3pUo6rP1F7qn4ta4UtbYGuVDQlMjJVGLdHibwLVFgs5GBuOSoa6OPYyuqOMW1CUFKgYWDqvEpe+qiqqaWgg/F0lqS68hs/UEbx7YA0YNG 5UvZUr4g 9CC2md7QkQrsSqwlipOHYfb4dJDmRQfPkx6r0gjild5ibfjXIoB7kO7v5dQSXJP4gzgnNJr/YlT68IZ9Uoy+tB4GgGr106MDUN6uWHH4AbyjrdPT0rE534c3WYtRD+BlNvwTy0AABi0jiUC+4//jt5qhD9c7/J1HSYI5X+jQ+C1QNPR57SQYBwYu6NqsJ/IPsiITyAJUXjFzE32HKDzg2urnTO+/iA/xYCDfXy/lMctkIyY8saA3GEyIqpo/UmQHm9mOwJeCcdhPOxr0yiBRQ13vLDuYTJLSbf15z8H0UlD2ZZVmC1nJEitB9ut9dkJO5irG7dr0WliXydRk9ejayTQWKUnwsiiCEsrc7 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 Tue, 15 Jul 2025 00:34:12 +0200 Klara Modin wrote: > iocb->ki_pos is loff_t (long long) while pgoff_t is unsigned long and > this overflow seems to happen in practice, resulting in last_index being > before index. > > The following diff resolves the issue for me: > > diff --git a/mm/filemap.c b/mm/filemap.c > index 3c071307f40e..d2902be0b845 100644 > --- a/mm/filemap.c > +++ b/mm/filemap.c > @@ -2585,8 +2585,8 @@ static int filemap_get_pages(struct kiocb *iocb, size_t count, > int err = 0; > > /* "last_index" is the index of the folio beyond the end of the read */ > - last_index = round_up(iocb->ki_pos + count, mapping_min_folio_nrbytes(mapping)); > - last_index >>= PAGE_SHIFT; > + last_index = round_up(iocb->ki_pos + count, > + mapping_min_folio_nrbytes(mapping)) >> PAGE_SHIFT; > retry: > if (fatal_signal_pending(current)) > return -EINTR; Looks good, thanks. I added your signed-off-by (which I trust is OK?) and queued this up.