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 1708DC30653 for ; Thu, 4 Jul 2024 22:13:37 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 5FB296B00C2; Thu, 4 Jul 2024 18:13:37 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 584FB6B00C5; Thu, 4 Jul 2024 18:13:37 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 3FD936B00C8; Thu, 4 Jul 2024 18:13:37 -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 1F3C56B00C2 for ; Thu, 4 Jul 2024 18:13:37 -0400 (EDT) Received: from smtpin29.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id 7E361814B4 for ; Thu, 4 Jul 2024 22:13:36 +0000 (UTC) X-FDA: 82303472832.29.B0A71FE Received: from mail-pj1-f53.google.com (mail-pj1-f53.google.com [209.85.216.53]) by imf12.hostedemail.com (Postfix) with ESMTP id 8EDEB40008 for ; Thu, 4 Jul 2024 22:13:34 +0000 (UTC) Authentication-Results: imf12.hostedemail.com; dkim=pass header.d=fromorbit-com.20230601.gappssmtp.com header.s=20230601 header.b="NbXa/PtD"; dmarc=pass (policy=quarantine) header.from=fromorbit.com; spf=pass (imf12.hostedemail.com: domain of david@fromorbit.com designates 209.85.216.53 as permitted sender) smtp.mailfrom=david@fromorbit.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1720131193; a=rsa-sha256; cv=none; b=MLIIRAluDMNZYA/JThXuSzzOt+5weh+mpzTV3mEdlzyb0gFvH+pM8xgKpLqSz/LDofyRKe /Q0nXbiFaTrm0qJJnqr0HRl9rIaBfHrCc00W+JWFicmkq76EbGqXwvrzNkUM+UcdypsqsZ GSCYkcZX63Hb7afMhkquQYH17X5BXGY= ARC-Authentication-Results: i=1; imf12.hostedemail.com; dkim=pass header.d=fromorbit-com.20230601.gappssmtp.com header.s=20230601 header.b="NbXa/PtD"; dmarc=pass (policy=quarantine) header.from=fromorbit.com; spf=pass (imf12.hostedemail.com: domain of david@fromorbit.com designates 209.85.216.53 as permitted sender) smtp.mailfrom=david@fromorbit.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1720131193; 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=Nt1pnpCk1KfQaN+YgEj1HaWaKfx+85yAEH2SJic0Se0=; b=CISzciFH+QSeM2qHs1UGH+mD+ANorRcjtDLI0GhgmLzc/JU6n4Oh4dUK8z9eMX6S4Drvqr lI/0SWUy77bnqLIm5AIIaXG5Lf5h4F74Bb3z/A9aYqj0Z/PRRqnnFOyQuvbujfLNm/n6b/ wnARJG98B3bzg2Fb4p4zLWivUKvRRyk= Received: by mail-pj1-f53.google.com with SMTP id 98e67ed59e1d1-2c98b080012so738044a91.1 for ; Thu, 04 Jul 2024 15:13:34 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=fromorbit-com.20230601.gappssmtp.com; s=20230601; t=1720131213; x=1720736013; 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=Nt1pnpCk1KfQaN+YgEj1HaWaKfx+85yAEH2SJic0Se0=; b=NbXa/PtDecNPV7oJIVN6vxBuOUs01bNwOc88AohyWjmGxkCAcXXmo7ang1QrzV/8/3 By7ykISQQGmGc17w9G8HD01PAyLinJqyxnEZ1SYJXGmq0FMjh+svKo23hgFPZvqj4ggZ 5AwhgoTkufdpnOLUuY+sNmqGELG5odCLO3C4sytU1T7Xc/6pMu1J9G0rob8Wqo0eb/4f tpLXG3jBJRVYRiWKdcMRD6UhmvG2PiwERpwhZBWVeVJ9EUMt1+/A4eRUYMBKrYQ2qTSB PMx7F0ijPPXV5pyBintNRHEVJx10ZtBQR36tmR8FFYfQF/Ja7A5fOM0yIwppc91BkBY4 kWow== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1720131213; x=1720736013; 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=Nt1pnpCk1KfQaN+YgEj1HaWaKfx+85yAEH2SJic0Se0=; b=A9phqgu3WEnMkEirBHBF2IS/AIk1YkKKn7ADZWvIDHN6cIwx2RW6+vx2I+KNC0Z7DA JmAQ1zoshXMcntpNAI10L50Npaeo3W40jq1ZKVqF2n7u5b/XzBaB1mtLQcCp3lgpc72l ur7vy+6OCv2iZUXXLqe6Mkd3doxTbWxfRE/dts+bHXrE8ykxxcv5wImgbOe9vwLbA2uh pQ+G5FTjfoh5ZUiYG5nuf25lHcIdgc824YujOi7LaIv9pGO84ZiNsXKKjosJznOzKBpt S5TVGjxTYriLtiUE7L9amH4BohEOmsFGjqWF0oKvvs/oVloskaS1imcS7vLtgH8WAJ5w O/+w== X-Forwarded-Encrypted: i=1; AJvYcCWhwTayZQPs8ElhCBsGEOa5fg+VBCDJD08qU8Oh46lbEvGNDucp5OlNwirdY7uXHJSNB4a7dGySsQdLinA3cS0c2Iw= X-Gm-Message-State: AOJu0YwLwATAeSphlYwDDUU28Kqhipcg9V49ZBz7/+jDkyXMQGp7JzpA rP5KQSbVTdO3nfTPt5Hy+RztmvHjRLMbDSMD645obweBnqcD6lsqno4cvfY8hzs= X-Google-Smtp-Source: AGHT+IGqzAnayF06dHh/ly76CeJIvdvLTHzY9adBh22u0N8/+/Xrrmia4PfBDw7CTW+ANd7wUSoKiw== X-Received: by 2002:a17:90a:348b:b0:2c8:a8f:c97 with SMTP id 98e67ed59e1d1-2c99c80b2aemr2034402a91.37.1720131213291; Thu, 04 Jul 2024 15:13:33 -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-2c99a95624dsm2040861a91.20.2024.07.04.15.13.32 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 04 Jul 2024 15:13:32 -0700 (PDT) Received: from dave by dread.disaster.area with local (Exim 4.96) (envelope-from ) id 1sPUhm-004JHs-1V; Fri, 05 Jul 2024 08:13:30 +1000 Date: Fri, 5 Jul 2024 08:13:30 +1000 From: Dave Chinner To: Hannes Reinecke Cc: "Pankaj Raghav (Samsung)" , willy@infradead.org, chandan.babu@oracle.com, djwong@kernel.org, brauner@kernel.org, akpm@linux-foundation.org, yang@os.amperecomputing.com, linux-kernel@vger.kernel.org, linux-mm@kvack.org, john.g.garry@oracle.com, linux-fsdevel@vger.kernel.org, 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 v9 06/10] iomap: fix iomap_dio_zero() for fs bs > system page size Message-ID: References: <20240704112320.82104-1-kernel@pankajraghav.com> <20240704112320.82104-7-kernel@pankajraghav.com> <2c09ebbd-1704-46e3-a453-b4cd07940325@suse.de> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <2c09ebbd-1704-46e3-a453-b4cd07940325@suse.de> X-Rspamd-Server: rspam12 X-Rspamd-Queue-Id: 8EDEB40008 X-Stat-Signature: ht99an7oao7mnxzscrwn9ojpcthsr9fm X-Rspam-User: X-HE-Tag: 1720131214-834372 X-HE-Meta: U2FsdGVkX18fIoY8IotNfd8C/gblOx25klrRbVmPvYkoEfJTTPC5lyphnn21f43HWfYo3tYlXK/qxgppKYYfnp9ejd/gL1h4tDNjkZ0grFqUa4mdnzfH2aKxSX8q1ajIB9iSESX8EXlI7tlwM0WFFGPy5pv4GVSzhjUn0DxoYkTzYgWxhuUxUdJ/nUX7u3jJE+mrQ3eCffVM1OZ0hAyCqpATXjB34+gFv3/sWn0i2hQHGpLravgf6Kw1A3mDnhGmhC0uP4E1CfmiB8/YaW6Fnr9+wuSCMyHX2t/ncu1xjjfWULZI7PANrpYwJQ9T2TgqZ2j7isEePItiXcNaQdpi6BMYlv87NYidNJRFw4rCZDPNsA2BBMxm6iLttUxDpLYVXjcbuVxQ3ARrw9fbEcTGxA3q0E7knPV/oVz+C7Ddwg0lznB9zaDERLed9qsQFVjkhO8WV38bKdoJLBqs7PMSxM2G+gMUtQndgFDa90gkhVv7XHwiLbGm3eCZPqau1p2dxxruKtmHRgH7M93rHr5fVpewnyE1HB9YkpiV7Oe/QLAr7uuHZD/bXYvmyl1tyXijiXqhlI8g1dOHjAlLN0lFmCW2ln6AWLewAQJgBqoPM5ydpADnJlh6v30lY7VMOeQ192xGNOCjI5Vn4Zi/7yjY2kPzB8Q7Dlv1I94jifuUC1wA2cmBBWjZCizNVQSjl6844VXvgTgC0EHsy7nKPjyM5qraPRabKWUolVWbJwgcthBKy+2C6I0dfmrdjwi44Mr0T7sGJMxuUqqK2X7ddc03uMA+JbgJFmPQX9AcFF8P4LxaNo4bsrePAEJIiCf7EQMvYT9Qhvh7ctFoyzNcicHvgXOCGGyTbTwweJTcaWosjmlKV4CsxtOuu6s898V93kX+WEaGkZ7qTYfGkqJPXY5Z79q2fz2gNiI6g7BWblMEc1lxV+iWfRlb7NKWM+KqdwghtOPze53Bolk1W1eAX/k i4OkPoJb ljlYcxxJ2dSI7WNAk50Z5YYfQuZQFIdeWBGX6LaMFTN53wZVCMgpbLmhvv85BRBiHBE0Bei35eIiM5LvDvHbv7R/G5L6gf8MraG90TtjKoPg667zvqmFveL4UZmFUEV25CjgN7RE0z0CRPIFDEgssldyMyIwP6UYdbOtTF+1E/309mOJXdT2+7FehJrguRbLhuFPWO8PJXIGhD6HlWh3Tdn5BhmZOsC/Rzw/51qT9bPgAALV7DELf1jWufDrPdvgXXpWmSNzT2Z92t8xQ4LXh/OzxsrJvjU9kn+A11kY+d6jUWIE2buYBmks3cap6DScLsb39xpchLNw8T4pMrlqoBIE/TSfDgsc03XRzfNCehEL7WVT6Le1xZKrdTyb6Z/l53td8qGDmEELgj/DJ48MrcTn8/rBgCXWa7zb+v3ZTNIdNoJFTnqTsrPSibfCYTc1+jWY4FeEjZq2DoTh1QV7fMhBpIA== 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 Thu, Jul 04, 2024 at 05:37:32PM +0200, Hannes Reinecke wrote: > On 7/4/24 13:23, 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 > > --- > > fs/iomap/buffered-io.c | 4 ++-- > > fs/iomap/direct-io.c | 45 ++++++++++++++++++++++++++++++++++++------ > > 2 files changed, 41 insertions(+), 8 deletions(-) > > > > diff --git a/fs/iomap/buffered-io.c b/fs/iomap/buffered-io.c > > index f420c53d86acc..d745f718bcde8 100644 > > --- a/fs/iomap/buffered-io.c > > +++ b/fs/iomap/buffered-io.c > > @@ -2007,10 +2007,10 @@ iomap_writepages(struct address_space *mapping, struct writeback_control *wbc, > > } > > EXPORT_SYMBOL_GPL(iomap_writepages); > > -static int __init iomap_init(void) > > +static int __init iomap_buffered_init(void) > > { > > return bioset_init(&iomap_ioend_bioset, 4 * (PAGE_SIZE / SECTOR_SIZE), > > offsetof(struct iomap_ioend, io_bio), > > BIOSET_NEED_BVECS); > > } > > -fs_initcall(iomap_init); > > +fs_initcall(iomap_buffered_init); > > diff --git a/fs/iomap/direct-io.c b/fs/iomap/direct-io.c > > index f3b43d223a46e..c02b266bba525 100644 > > --- a/fs/iomap/direct-io.c > > +++ b/fs/iomap/direct-io.c > > @@ -11,6 +11,7 @@ > > #include > > #include > > #include > > +#include > > #include > > #include "trace.h" > > @@ -27,6 +28,13 @@ > > #define IOMAP_DIO_WRITE (1U << 30) > > #define IOMAP_DIO_DIRTY (1U << 31) > > +/* > > + * Used for sub block zeroing in iomap_dio_zero() > > + */ > > +#define IOMAP_ZERO_PAGE_SIZE (SZ_64K) > > +#define IOMAP_ZERO_PAGE_ORDER (get_order(IOMAP_ZERO_PAGE_SIZE)) > > +static struct page *zero_page; > > + > > There are other users of ZERO_PAGE, most notably in fs/direct-io.c and > block/blk-lib.c. Any chance to make this available to them? Please, no. We need to stop feature creeping this patchset and bring it to a close. If changing code entirely unrelated to this patchset is desired, please do it as a separate independent set of patches. -Dave. -- Dave Chinner david@fromorbit.com