From patchwork Tue Feb 4 23:12:04 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Luis Chamberlain X-Patchwork-Id: 13960167 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 99454C02194 for ; Tue, 4 Feb 2025 23:12:19 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 1AA8C280011; Tue, 4 Feb 2025 18:12:19 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 13328280001; Tue, 4 Feb 2025 18:12:19 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id F140728000F; Tue, 4 Feb 2025 18:12: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 CF98428000C for ; Tue, 4 Feb 2025 18:12:18 -0500 (EST) Received: from smtpin27.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay03.hostedemail.com (Postfix) with ESMTP id 3B42EA0318 for ; Tue, 4 Feb 2025 23:12:18 +0000 (UTC) X-FDA: 83083812756.27.76C78FD Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) by imf10.hostedemail.com (Postfix) with ESMTP id 68BD5C000E for ; Tue, 4 Feb 2025 23:12:16 +0000 (UTC) Authentication-Results: imf10.hostedemail.com; dkim=pass header.d=infradead.org header.s=bombadil.20210309 header.b=IHtFMQGC; dmarc=fail reason="No valid SPF, DKIM not aligned (relaxed)" header.from=kernel.org (policy=quarantine); spf=none (imf10.hostedemail.com: domain of mcgrof@infradead.org has no SPF policy when checking 198.137.202.133) smtp.mailfrom=mcgrof@infradead.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1738710736; a=rsa-sha256; cv=none; b=MLNCoxm6VkSv5Zer2OdlkYrMdCctm6C8swjN5X4betAQbKdtDzCrY9eMN13ZPDZO2sLQ1f Tr0X7yjxAz0jIcLWTFWMKxGWbgw/wXzkJJlQBH7Tcpi46sl3V2OXqnVJowrjSLDMfyBKOB g551dNha6iKtE9Z2PmDeQ+GaKTDM1nM= ARC-Authentication-Results: i=1; imf10.hostedemail.com; dkim=pass header.d=infradead.org header.s=bombadil.20210309 header.b=IHtFMQGC; dmarc=fail reason="No valid SPF, DKIM not aligned (relaxed)" header.from=kernel.org (policy=quarantine); spf=none (imf10.hostedemail.com: domain of mcgrof@infradead.org has no SPF policy when checking 198.137.202.133) smtp.mailfrom=mcgrof@infradead.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1738710736; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=dx9mRi5amWVcM0ecsur6IbVdNelNNovE80LuaqvVo+c=; b=62FJ6CQPcNkn6QCYrXMXH49WQEzbozD3HUJ/xceBHkLZ4rb4Gx90mXAOAsd9bOf6WxHnmH CqT2+huzeOA8hS7UoU9HzbKFOpcsCU0XtRsjZpW1ohfEyWORh27/aApRrxCZpVSKSRLcK9 c3vTKFl9SNcdXGCYLquknbDVFDUVeCM= DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=bombadil.20210309; h=Sender:Content-Transfer-Encoding: MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:Cc:To:From: Reply-To:Content-Type:Content-ID:Content-Description; bh=dx9mRi5amWVcM0ecsur6IbVdNelNNovE80LuaqvVo+c=; b=IHtFMQGC1lK7B131euedd45YPt nvZXb+Eg/WELScuPXyzcOvYG5gWjU1eXe++DWyQ+PqIpGdRMjXPlrkWuXofu9nDbHrNeXRzYrzPpH sYemqQLRrwX9oSG97zypNzZd1Z0nKV2MhFdmFsi2SRLxWUw7R66nAHOcgFB8KEi1u2Q14RXLCmv0q 71XJQ0YgjmH6eipR2q3wHm8hoYFC61FAadJWvmI6TPp0Rf5otCojled0yolTsPGl3yosS0jCJwNb9 1ZKv0Oqq+F+DsKYrgflgR1rtAAqpBL/9Iwj9Vt5eTq5STdHZjtIZ+XK1owFLcZBUz1HOv/ZphMXaU U/pJyBtQ==; Received: from mcgrof by bombadil.infradead.org with local (Exim 4.98 #2 (Red Hat Linux)) id 1tfS5T-00000001nhQ-1MeY; Tue, 04 Feb 2025 23:12:11 +0000 From: Luis Chamberlain To: hare@suse.de, willy@infradead.org, dave@stgolabs.net, david@fromorbit.com, djwong@kernel.org, kbusch@kernel.org Cc: john.g.garry@oracle.com, hch@lst.de, ritesh.list@gmail.com, linux-fsdevel@vger.kernel.org, linux-xfs@vger.kernel.org, linux-mm@kvack.org, linux-block@vger.kernel.org, gost.dev@samsung.com, p.raghav@samsung.com, da.gomez@samsung.com, kernel@pankajraghav.com, mcgrof@kernel.org, Hannes Reinecke Subject: [PATCH v2 3/8] fs/mpage: avoid negative shift for large blocksize Date: Tue, 4 Feb 2025 15:12:04 -0800 Message-ID: <20250204231209.429356-4-mcgrof@kernel.org> X-Mailer: git-send-email 2.48.1 In-Reply-To: <20250204231209.429356-1-mcgrof@kernel.org> References: <20250204231209.429356-1-mcgrof@kernel.org> MIME-Version: 1.0 X-Rspam-User: X-Rspamd-Server: rspam01 X-Rspamd-Queue-Id: 68BD5C000E X-Stat-Signature: bhximezpss73by68uqd3jx5ctni79ktt X-Rspamd-Pre-Result: action=add header; module=dmarc; Action set by DMARC X-Rspam: Yes X-HE-Tag: 1738710736-485145 X-HE-Meta: U2FsdGVkX1+88i4FrzQRO+M4bxzaMxVY8APXzI0/5fHjucUfDsb5nMoYYzFZpM3WM0eRzmWr3vHkGiMIJ5fsR3X6drz4wRd/WbIDYtFO3hF8Y416yIiQhQiLGwFD2Q+tT8Hh35cM/6/QqY0usaCNSTQ2+pgIYUZK+1X9NJ8uR8M52CtB7ntPEv/n9/zSi9WiI2iTpCtqH5AUvLZ/vuaTpzS2Ft0IgAi8+rZEe3C7HTVN+xNe3kolnEa9hlQxHQ2CtZ0LSLfagHw9CbnnpmbDfgKlWTE9nq6DN9twtbU2bJJTEKM8ofTV5rgOYdEFCU+gJYmjxQOB/DSuEuKTFOjlQxJQKJVNIw+OapGkOAhsjjxxZmgVbMtIAL9h1kf5NNPya8iecZdb/XI2QDRAxhSMtE8cK1DP8UTlyN8RXe9TtjDCo97BY5TAl97htADmveSfaSyl4jvVWxp1cy66p7NF4Bc86bno8/+8ts8cxbtuYfFYoTP0Uo7u0CNyLmVInzgCT2WTm8xfX9voxYTxE2fBXuLNgrkXJgJwiWdtS2Yc98u76ADyCcIrfLrWZW3i7iT6ZIMT8uQOhoaP75/7p6EnDovnNd6GOXxan85QFgPb2b74ltiS84HoAOE1j/5Vf/lIN35E/EDURWYzBDvFW/O1WuzWiZOX04YDO4WwO/jBsiaB8VMi0yrUabCjmWXT5631zOAAhVLMjkS9Mm8p4NdTRZEw0RZbaibZjleO7JpxruHE9nJoWAZwGnV3BF7IQnoakJFqy8yxkhppXvCWMrWWmjLmuBu+rX1ImgRby1y4xVmZwpj17UOz6i9OLoY/DYg7gcz55SCM0oLMwhpZQv/0nCCubxwE19DXcW0VpALaBFxEQa+I1JCmoYybzXGTq77RCmDL8mGCqZx8fisCX4ictjhlyRSz2Uy1F/KEL/swJyCrhrysk8522KgSn7UbRPHALoyUYi8hhQe/SFj3deJ XJvJIA53 PJPg6nDv5EyxjhpV4c5LxqIoFBTXtPJoSr8SDA6kx37d49Y+Acmhd4nATX8l4t4WuwZH3SjbgblCK3ll+CYdI79zfTLC/jqLk6yooIdG1BDsWO2cpIDrCxa1q+HRy39SH73/ILktSCK7enHkk6Zsl1h6kMqKdSbUtgSITMFnfNn0eKvI2kMuwjnUKvtB9x9RfxEnF3J2JuMrhDynzzJUTKjSqDy6zp28avnj1BtVI+m8JVdz6TGUZBX7i2xEIGrUPoOGLQT5hHOcZE+zganSXMeqjF7qe6QgsoTvDUYBpSIsBBB6F52EMiQz6LnG24z99c70gphuM/mWLiHDeyLCIkbFqTaysZXBlZ25o/UIw/udZSKbMyIGtZXa44ig+t9I7629LD9KLd6CKegcRHIKnzWA4uI2WFs0OTYyV8j5mkmVrU7CXHnWHqYQiQHTUBbZq9rtUglT3YSepZUKJj3Cdydq/NiejdiauuGRPAKdDAChQ2wyckVhWsMlCOA== X-Bogosity: Ham, tests=bogofilter, spamicity=0.000008, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: From: Hannes Reinecke For large blocksizes the number of block bits is larger than PAGE_SHIFT, so use instead use folio_pos(folio) >> blkbits to calculate the sector number. This is required to enable large folios with buffer-heads. Signed-off-by: Luis Chamberlain Signed-off-by: Hannes Reinecke --- fs/mpage.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/fs/mpage.c b/fs/mpage.c index 82aecf372743..a3c82206977f 100644 --- a/fs/mpage.c +++ b/fs/mpage.c @@ -181,7 +181,7 @@ static struct bio *do_mpage_readpage(struct mpage_readpage_args *args) if (folio_buffers(folio)) goto confused; - block_in_file = (sector_t)folio->index << (PAGE_SHIFT - blkbits); + block_in_file = folio_pos(folio) >> blkbits; last_block = block_in_file + args->nr_pages * blocks_per_page; last_block_in_file = (i_size_read(inode) + blocksize - 1) >> blkbits; if (last_block > last_block_in_file) @@ -527,7 +527,7 @@ static int __mpage_writepage(struct folio *folio, struct writeback_control *wbc, * The page has no buffers: map it to disk */ BUG_ON(!folio_test_uptodate(folio)); - block_in_file = (sector_t)folio->index << (PAGE_SHIFT - blkbits); + block_in_file = folio_pos(folio) >> blkbits; /* * Whole page beyond EOF? Skip allocating blocks to avoid leaking * space.