On Wed, Jan 21, 2026 at 4:44 PM Darrick J. Wong <[email protected]> wrote: > > On Wed, Jan 21, 2026 at 07:43:18AM +0100, Christoph Hellwig wrote: > > Move the NULL check into the callers to simplify the callees. Not sure > > how fuse worked before, given that it was missing the NULL check.
In fuse, ctx->read_ctx is always valid. It gets initialized to point to a local struct before it calls into iomap_read_folio()/iomap_readahead() > > Let's cc Joanne to find out then...? [done] > > --D > > > Signed-off-by: Christoph Hellwig <[email protected]> > > --- > > fs/iomap/bio.c | 5 +---- > > fs/iomap/buffered-io.c | 4 ++-- > > 2 files changed, 3 insertions(+), 6 deletions(-) > > > > diff --git a/fs/iomap/bio.c b/fs/iomap/bio.c > > index cb60d1facb5a..80bbd328bd3c 100644 > > --- a/fs/iomap/bio.c > > +++ b/fs/iomap/bio.c > > @@ -21,10 +21,7 @@ static void iomap_read_end_io(struct bio *bio) > > static void iomap_bio_submit_read(const struct iomap_iter *iter, > > struct iomap_read_folio_ctx *ctx) > > { > > - struct bio *bio = ctx->read_ctx; > > - > > - if (bio) > > - submit_bio(bio); > > + submit_bio(ctx->read_ctx); > > } > > > > static void iomap_read_alloc_bio(const struct iomap_iter *iter, > > diff --git a/fs/iomap/buffered-io.c b/fs/iomap/buffered-io.c > > index 4a15c6c153c4..6367f7f38f0c 100644 > > --- a/fs/iomap/buffered-io.c > > +++ b/fs/iomap/buffered-io.c > > @@ -572,7 +572,7 @@ void iomap_read_folio(const struct iomap_ops *ops, > > iter.status = iomap_read_folio_iter(&iter, ctx, > > &bytes_submitted); > > > > - if (ctx->ops->submit_read) > > + if (ctx->read_ctx && ctx->ops->submit_read) > > ctx->ops->submit_read(&iter, ctx); > > > > iomap_read_end(folio, bytes_submitted); > > @@ -636,7 +636,7 @@ void iomap_readahead(const struct iomap_ops *ops, > > iter.status = iomap_readahead_iter(&iter, ctx, > > &cur_bytes_submitted); > > > > - if (ctx->ops->submit_read) > > + if (ctx->read_ctx && ctx->ops->submit_read) > > ctx->ops->submit_read(&iter, ctx); I wonder if it makes sense to just have submit_read() take in the void *read_ctx directly instead of it taking in the entire struct iomap_read_folio_ctx. afaict, the other fields aren't used/necessary. This patch as-is makes sense to me though. Reviewed-by: Joanne Koong <[email protected]> Thanks, Joanne > > > > if (ctx->cur_folio) > > -- > > 2.47.3 > > > >
