From: Christoph Hellwig <hch@lst.de>
To: Joanne Koong <joannelkoong@gmail.com>
Cc: Christoph Hellwig <hch@lst.de>,
Christian Brauner <brauner@kernel.org>,
"Darrick J. Wong" <djwong@kernel.org>,
linux-xfs@vger.kernel.org, linux-fsdevel@vger.kernel.org,
linux-doc@vger.kernel.org, linux-block@vger.kernel.org,
gfs2@lists.linux.dev
Subject: Re: [PATCH 04/11] iomap: hide ioends from the generic writeback code
Date: Wed, 18 Jun 2025 06:41:23 +0200 [thread overview]
Message-ID: <20250618044123.GC28041@lst.de> (raw)
In-Reply-To: <CAJnrk1bgWwmE8XeYe4gRrYCZFwTsn5JT3Aw7B+morrOLiZowFg@mail.gmail.com>
On Tue, Jun 17, 2025 at 12:22:46PM -0700, Joanne Koong wrote:
> On Tue, Jun 17, 2025 at 3:55 AM Christoph Hellwig <hch@lst.de> wrote:
> >
> > Replace the ioend pointer in iomap_writeback_ctx with a void *wb_ctx
> > one to facilitate non-block, non-ioend writeback for use. Rename
> > the submit_ioend method to writeback_submit and make it mandatory so
>
> I'm confused as to whether this is mandatory or not - afaict from the
> code, it's only needed if wpc->wb_ctx is also set. It seems like it's
> ok if a filesystem doesn't define ops->writeback_submit so long as
> they don't also set wpc->wb_ctx, but if they do set
> ops->writeback_submit but don't set wpc->wb_ctx then they shouldn't
> expect ->writeback_submit() to be called.
In a way yes. But I don't really understand how a file system could
work without either, unless the folio size and the block size are always
equal.
> It seems like there's a
> tight interdependency between the two, it might be worth mentioning
> that in the documentation to make that more clear. Or alternatively,
> just always calling wpc->ops->writeback_submit() in iomap_writepages()
> and having the caller check that wpc->wb_ctx is valid.
Do you mean the callee here? Otherwise I'm a bit confused about this
sentence.
> > - - ``submit_ioend``: Allows the file systems to hook into writeback bio
> > - submission.
> > - This might include pre-write space accounting updates, or installing
> > - a custom ``->bi_end_io`` function for internal purposes, such as
> > - deferring the ioend completion to a workqueue to run metadata update
> > - transactions from process context before submitting the bio.
> > - This function is optional.
> > + - ``writeback_submit``: Submit the previous built writeback context.
>
> It might be helpful here to add "This function must be supplied by the
> filesystem", especially since the paragraph above has that line for
> writeback_range()
Ok.
> > struct iomap_writeback_ops {
> > /*
> > - * Required, performs writeback on the passed in range
> > + * Performs writeback on the passed in range
>
> Is the reasoning behind removing "Required" that it's understood that
> the default is it's required, so there's no need to explicitly state
> that?
Yes.
next prev parent reply other threads:[~2025-06-18 4:41 UTC|newest]
Thread overview: 27+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-06-17 10:54 refactor the iomap writeback code v2 Christoph Hellwig
2025-06-17 10:55 ` [PATCH 01/11] iomap: pass more arguments using struct iomap_writepage_ctx Christoph Hellwig
2025-06-17 17:54 ` Joanne Koong
2025-06-18 4:35 ` Christoph Hellwig
2025-06-17 10:55 ` [PATCH 02/11] iomap: cleanup the pending writeback tracking in iomap_writepage_map_blocks Christoph Hellwig
2025-06-17 10:55 ` [PATCH 03/11] iomap: refactor the writeback interface Christoph Hellwig
2025-06-17 18:33 ` Joanne Koong
2025-06-18 4:39 ` Christoph Hellwig
2025-06-17 10:55 ` [PATCH 04/11] iomap: hide ioends from the generic writeback code Christoph Hellwig
2025-06-17 19:22 ` Joanne Koong
2025-06-18 4:41 ` Christoph Hellwig [this message]
2025-06-17 10:55 ` [PATCH 05/11] iomap: add public helpers for uptodate state manipulation Christoph Hellwig
2025-06-17 10:55 ` [PATCH 06/11] iomap: move all ioend handling to ioend.c Christoph Hellwig
2025-06-17 19:35 ` Joanne Koong
2025-06-17 10:55 ` [PATCH 07/11] iomap: rename iomap_writepage_map to iomap_writeback_folio Christoph Hellwig
2025-06-17 19:44 ` Joanne Koong
2025-06-18 4:42 ` Christoph Hellwig
2025-06-17 10:55 ` [PATCH 08/11] iomap: move folio_unlock out of iomap_writeback_folio Christoph Hellwig
2025-06-17 10:55 ` [PATCH 09/11] iomap: export iomap_writeback_folio Christoph Hellwig
2025-06-17 22:00 ` Joanne Koong
2025-06-17 10:55 ` [PATCH 10/11] iomap: replace iomap_folio_ops with iomap_write_ops Christoph Hellwig
2025-06-17 22:25 ` Joanne Koong
2025-06-18 4:43 ` Christoph Hellwig
2025-06-17 10:55 ` [PATCH 11/11] iomap: add read_folio_range() handler for buffered writes Christoph Hellwig
2025-06-26 14:59 ` refactor the iomap writeback code v2 Andrew Price
2025-06-27 7:02 ` Christoph Hellwig
2025-07-07 12:07 ` Andrew Price
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=20250618044123.GC28041@lst.de \
--to=hch@lst.de \
--cc=brauner@kernel.org \
--cc=djwong@kernel.org \
--cc=gfs2@lists.linux.dev \
--cc=joannelkoong@gmail.com \
--cc=linux-block@vger.kernel.org \
--cc=linux-doc@vger.kernel.org \
--cc=linux-fsdevel@vger.kernel.org \
--cc=linux-xfs@vger.kernel.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.