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 F046DC27C4F for ; Mon, 1 Jul 2024 02:37:17 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 855236B009B; Sun, 30 Jun 2024 22:37:17 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 7DE236B009C; Sun, 30 Jun 2024 22:37:17 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 67EA36B009D; Sun, 30 Jun 2024 22:37:17 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0014.hostedemail.com [216.40.44.14]) by kanga.kvack.org (Postfix) with ESMTP id 493156B009B for ; Sun, 30 Jun 2024 22:37:17 -0400 (EDT) Received: from smtpin07.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay01.hostedemail.com (Postfix) with ESMTP id F22391C30AF for ; Mon, 1 Jul 2024 02:37:16 +0000 (UTC) X-FDA: 82289622072.07.43C3DD4 Received: from mail-oo1-f51.google.com (mail-oo1-f51.google.com [209.85.161.51]) by imf27.hostedemail.com (Postfix) with ESMTP id 1FCCC40004 for ; Mon, 1 Jul 2024 02:37:14 +0000 (UTC) Authentication-Results: imf27.hostedemail.com; dkim=pass header.d=fromorbit-com.20230601.gappssmtp.com header.s=20230601 header.b="r1Z/vlts"; spf=pass (imf27.hostedemail.com: domain of david@fromorbit.com designates 209.85.161.51 as permitted sender) smtp.mailfrom=david@fromorbit.com; dmarc=pass (policy=quarantine) header.from=fromorbit.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1719801413; 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: in-reply-to:in-reply-to:references:references:dkim-signature; bh=m0rcRCi2FGvgQgr9Zpkb36TAwmq6Gr7fbHDsnURXNUg=; b=s1EwoyF1vwr6Y3V4xlJp2iyNwZM9pJDxUWq5qgJnbxIy1p5iZWb/DhJ6TSosvCjE2kGaW3 0QG0tI/Itf2ttAFYIo02DwQ8z9QWj5l1+WRK0SbdahEsiXFB3cJcu8MP8quBzSSK7ASuva z9Xzv8F8nhNQKbnLYCFwYiW2wPySF3o= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1719801413; a=rsa-sha256; cv=none; b=ZCNaQ0SuwB8h9T5kwe1Ascw/W35Czwd3IcBFyHcPZarnsgX9U3eN1vDNKTcjg2ZXGmWMT0 L/rcsKL8SB1J2YbRSRB0uHBT5xm3ZiR65qO0wKbOSgkgOkUCipl+8ZSquHT/w7dYas1hzJ hPjzAR0m8PYb00RYZavr0h7pUctwotc= ARC-Authentication-Results: i=1; imf27.hostedemail.com; dkim=pass header.d=fromorbit-com.20230601.gappssmtp.com header.s=20230601 header.b="r1Z/vlts"; spf=pass (imf27.hostedemail.com: domain of david@fromorbit.com designates 209.85.161.51 as permitted sender) smtp.mailfrom=david@fromorbit.com; dmarc=pass (policy=quarantine) header.from=fromorbit.com Received: by mail-oo1-f51.google.com with SMTP id 006d021491bc7-5c4498dcc27so363708eaf.1 for ; Sun, 30 Jun 2024 19:37:14 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=fromorbit-com.20230601.gappssmtp.com; s=20230601; t=1719801434; x=1720406234; darn=kvack.org; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:from:to:cc:subject:date:message-id:reply-to; bh=m0rcRCi2FGvgQgr9Zpkb36TAwmq6Gr7fbHDsnURXNUg=; b=r1Z/vltsgag0JArsymtJywckyViNJkwVldclPYsNpSXjA5RnhaWSl3C71US6IJgEIr cbgItlrWXodYt8a9m2dM4P3BDQO/5jEsSw/XNrrm8kT4pZG/FUwJXRnzqmE9Y1Urkghj AmcVdsmkjf23Aw9osLCmbyrt9UcHIVPMoL3Q5RKGzVLUntIYC2lEs5vnnAKzA4HK8Lq+ 2noTIuDVwfklJ0jgIgYlJDLUDa44qpQoIeSVZPOmr3zsNcTbULSTL6/4lt09QjEXO+5K s6iAyckUoNdCP/udSlBMUXhwvw/qvV7BuKg/6CkFDVQZAvYSF9qLo6b+BGVbeaCOSPkh p7Zg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1719801434; x=1720406234; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=m0rcRCi2FGvgQgr9Zpkb36TAwmq6Gr7fbHDsnURXNUg=; b=DiIrNF5nMm7KPlt8Pkpf7CiwMKqny8rd9yaFs0mM2qc8yJeo3igxe5GykUBYpRzAMm Jk8XfzksXTogKiTd/u2n5y/wyUk1l36634Vg1Bb0emIVh6kFsbgwyDlVHHjGjqDJzjoo 8G6SIomPL/y9PE10CNB7JTn772ed2kUAlISESFNIIyhgQQsGomR6f1Ztc50QPj8+kycO IUqCgWKUkCOeWn9s4++pVsmy5+BeDKXE3F8MwUKsfDJNwn9cyKUIY52sR6VMSPCPbtgh Wju2LeoaT0El/yqe2OM/Re+f5EyNLD+NDm5hNAKWXM6DxroUTvNSGaql/tfWKNDZ82vq l6xg== X-Forwarded-Encrypted: i=1; AJvYcCWonoO1pIizm/SzfiheCECnQrSrOQWP/CkfKUtOceRKRGV7QE3+qkuAH/Zm8J9xZBM0ACzIf6TCM2sYHkKu0uaXxg4= X-Gm-Message-State: AOJu0YxqH/NtdajeHSIEBkst2vaUit+XEu0M+di4fCWOhH7OuLqhApXO DxF3f7IknIlpf6hmsWdAX8f7lV+/7ErmOONe+pCgsZ5pr9XawOxgVFcn0qNJxqI= X-Google-Smtp-Source: AGHT+IEKU7/ErAzsurHPsktSpR5wwiSvxcXhKtFFLIUsLHdEdFgaLynxClPU/fi5/wA2tx9Ll0sAmg== X-Received: by 2002:a05:6358:9201:b0:1a4:b69d:a197 with SMTP id e5c5f4694b2df-1a6acef5ae5mr474319155d.29.1719801434005; Sun, 30 Jun 2024 19:37:14 -0700 (PDT) Received: from dread.disaster.area (pa49-179-32-121.pa.nsw.optusnet.com.au. [49.179.32.121]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-2c91ce17a77sm5548654a91.6.2024.06.30.19.37.13 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 30 Jun 2024 19:37:13 -0700 (PDT) Received: from dave by dread.disaster.area with local (Exim 4.96) (envelope-from ) id 1sO6uk-00HR7V-2U; Mon, 01 Jul 2024 12:37:10 +1000 Date: Mon, 1 Jul 2024 12:37:10 +1000 From: Dave Chinner To: "Pankaj Raghav (Samsung)" Cc: willy@infradead.org, chandan.babu@oracle.com, djwong@kernel.org, brauner@kernel.org, akpm@linux-foundation.org, linux-kernel@vger.kernel.org, yang@os.amperecomputing.com, linux-mm@kvack.org, john.g.garry@oracle.com, linux-fsdevel@vger.kernel.org, hare@suse.de, p.raghav@samsung.com, mcgrof@kernel.org, gost.dev@samsung.com, cl@os.amperecomputing.com, linux-xfs@vger.kernel.org, hch@lst.de, Zi Yan Subject: Re: [PATCH v8 06/10] iomap: fix iomap_dio_zero() for fs bs > system page size Message-ID: References: <20240625114420.719014-1-kernel@pankajraghav.com> <20240625114420.719014-7-kernel@pankajraghav.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20240625114420.719014-7-kernel@pankajraghav.com> X-Stat-Signature: yg8w6mene3hortjgnxady1hajymjthzz X-Rspamd-Queue-Id: 1FCCC40004 X-Rspam-User: X-Rspamd-Server: rspam08 X-HE-Tag: 1719801434-855143 X-HE-Meta: U2FsdGVkX1858y9SW3McLhoTQ+MS/Gff6KRBv0cuUsRGbDztG6jvYNljtX30tYRCaiVcZa1IHdujGWmvf8M/wSlmkqN79VB05WsvC0lmeeAUwCysxlqAr4GKvr3fu3ZEQsLsf+qWLVgTy+nDckyt0kO21OxCzha3zMq0KMVVPw+r5WTJu2skhQQx1MRFQk1hp/EBIhLLHfS6cQE406QTtAEmvWZURTgtPK8n+v2PyWj3jttpqh9+e+vpkZzq6G4r9CmIawd+X18ZXpCLv6M5Ya73EYKHeMh90aAJ0ZvAIMyB1T4NvkdiPt2derchibFgh6i0SSYBmJKXXOUubuEvobSqsJM1kEjw/8pVzVzh/HSzo0L5ENtY9wtaqfltpKIb54/o2OhzNMfKVEaiJHcrdqGvSq3oCwfMk0p2IGhd7TQhwJiKh65ScdQzHjw12ESg/d9T/YEx4EWyde2PZVvaM73NIEyqNWzGM19zSRv9OO5h1Gm1tVCb5KjRmzPHaeValmOwbJDT1U5JyR7MO/YVWYrQuDoZ/92Mt7lIZE2a+dh647UXPIBDALNXXoWVGY+KPRL4nUVr3Zhb9utFh5DVvoYtk0AYiRhsm2caG5x+ty1/3/6ULpv7id0MBgxd97AshL4SORM6LlfAYWvC2/sGLzk2LqrGXJqF/TTUhNVimnCJoN9Cz0gSiVhxPywPMcLtKSqy5/vkyReayI3ujmAmvqAGuoKMic0fufl3oT7ktaRhYxL2ZQpRU+LpbNpMgqnUPMCkIuUoGwVE/aW4Awez9NUMOzsQgoACVy5TLJwXQXe7QfJzge4BOa31+MUVI8ld3+FrIhiI/MIoV/uLOrPuS5Oo0uFAa38kEUDR8QOhjG3J71A9JAS6wtAK72vcMmhP5TkGG8hHeiA50ergLTPHhfz9kuhPpglDCyPw00quQ8gr8wdkHfZew5EPFquJeo8bmilo8lTE2gmhng36c4W uhk5Xba7 W2BPhIv9c7wwUb2fq74X12EZrjJA+XiJefpmZpK/RQuS3Ctw1W0n56eNRtkHii/yhI1wnRUgRUkJXeR2RCQvvwSH7xs+XW6MrLAuAZqE80CfpRcw1XbaXJ86RuJXF3AMzqolb7qYhCqlWzTzOQlOCkXHFTWItwzmblM0yy3U8WTRT4nv2EdHiJrsSB5Jqts7qN5ZYKb+wt/t08NiRmTP91rJDJ8YSxG6t5TqWn/RgMolq1Rl8u7d7Whw4LVaGDPeOpbaXwBvedeBn1j1hPyhC8jMLvjMGaLBOEQwHSSq2TsXCny2nPQlIF9XMnLAP2bKKlBQnNJncKUsQ+7HHhy/zsrNniLUqgiRyG5ZQgV86HNclCMKFz4iT9LD7GZQSNAgv+jA0g1b1S5RWSl+D7nd7iMqzQtgdzwOSMfG3TRW/J9OLe9MPgAIr9fc9XfQpFTwbR/TBdXGRGvOMZgN3EXdzeXX/71ltrtMJYQf5/xHXeUSqe+8= 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, Jun 25, 2024 at 11:44:16AM +0000, Pankaj Raghav (Samsung) wrote: > From: Pankaj Raghav > > iomap_dio_zero() will pad a fs block with zeroes if the direct IO size > < fs block size. iomap_dio_zero() has an implicit assumption that fs block > size < page_size. This is true for most filesystems at the moment. > > If the block size > page size, this will send the contents of the page > next to zero page(as len > PAGE_SIZE) to the underlying block device, > causing FS corruption. > > iomap is a generic infrastructure and it should not make any assumptions > about the fs block size and the page size of the system. > > Signed-off-by: Pankaj Raghav > Reviewed-by: Hannes Reinecke Looks fine, so: Reviewed-by: Dave Chinner but.... > +/* > + * Used for sub block zeroing in iomap_dio_zero() > + */ > +#define ZERO_PAGE_64K_SIZE (65536) > +#define ZERO_PAGE_64K_ORDER (get_order(ZERO_PAGE_64K_SIZE)) > +static struct page *zero_page_64k; ..... > @@ -753,3 +765,17 @@ iomap_dio_rw(struct kiocb *iocb, struct iov_iter *iter, > return iomap_dio_complete(dio); > } > EXPORT_SYMBOL_GPL(iomap_dio_rw); > + > +static int __init iomap_dio_init(void) > +{ > + zero_page_64k = alloc_pages(GFP_KERNEL | __GFP_ZERO, > + ZERO_PAGE_64K_ORDER); > + > + if (!zero_page_64k) > + return -ENOMEM; > + > + set_memory_ro((unsigned long)page_address(zero_page_64k), > + 1U << ZERO_PAGE_64K_ORDER); ^^^^^^^^^^^^^^^^^^^^^^^^^ isn't that just ZERO_PAGE_64K_SIZE? -Dave. -- Dave Chinner david@fromorbit.com