From: Eric Biggers <ebiggers@kernel.org>
To: Christoph Hellwig <hch@lst.de>
Cc: "Theodore Y. Ts'o" <tytso@mit.edu>,
Jaegeuk Kim <jaegeuk@kernel.org>,
Andreas Dilger <adilger.kernel@dilger.ca>,
Chao Yu <chao@kernel.org>, Christian Brauner <brauner@kernel.org>,
"Darrick J. Wong" <djwong@kernel.org>,
linux-fscrypt@vger.kernel.org, linux-ext4@vger.kernel.org,
linux-f2fs-devel@lists.sourceforge.net,
linux-fsdevel@vger.kernel.org
Subject: Re: [PATCH 04/14] ext4, fscrypt: merge fscrypt_mergeable_bio_bh into io_submit_need_new_bio
Date: Fri, 27 Feb 2026 13:22:47 -0800 [thread overview]
Message-ID: <20260227212247.GC2659@quark> (raw)
In-Reply-To: <20260226144954.142278-5-hch@lst.de>
On Thu, Feb 26, 2026 at 06:49:24AM -0800, Christoph Hellwig wrote:
> ext4 already has the inode and folio and can't have a NULL
> folio->mapping in this path. Open code fscrypt_mergeable_bio_bh in
> io_submit_need_new_bio based on these simplifying assumptions.
>
> Signed-off-by: Christoph Hellwig <hch@lst.de>
> ---
> fs/crypto/inline_crypt.c | 23 -----------------------
> fs/ext4/page-io.c | 8 ++++++--
> include/linux/fscrypt.h | 9 ---------
> 3 files changed, 6 insertions(+), 34 deletions(-)
>
> diff --git a/fs/crypto/inline_crypt.c b/fs/crypto/inline_crypt.c
> index c0852b920dbc..0da53956a9b1 100644
> --- a/fs/crypto/inline_crypt.c
> +++ b/fs/crypto/inline_crypt.c
> @@ -406,29 +406,6 @@ bool fscrypt_mergeable_bio(struct bio *bio, const struct inode *inode,
> }
> EXPORT_SYMBOL_GPL(fscrypt_mergeable_bio);
>
> -/**
> - * fscrypt_mergeable_bio_bh() - test whether data can be added to a bio
> - * @bio: the bio being built up
> - * @next_bh: the next buffer_head for which I/O will be submitted
> - *
> - * Same as fscrypt_mergeable_bio(), except this takes a buffer_head instead of
> - * an inode and block number directly.
> - *
> - * Return: true iff the I/O is mergeable
> - */
> -bool fscrypt_mergeable_bio_bh(struct bio *bio,
> - const struct buffer_head *next_bh)
> -{
> - const struct inode *inode;
> - u64 next_lblk;
> -
> - if (!bh_get_inode_and_lblk_num(next_bh, &inode, &next_lblk))
> - return !bio->bi_crypt_context;
> -
> - return fscrypt_mergeable_bio(bio, inode, next_lblk);
> -}
> -EXPORT_SYMBOL_GPL(fscrypt_mergeable_bio_bh);
> -
> /**
> * fscrypt_dio_supported() - check whether DIO (direct I/O) is supported on an
> * inode, as far as encryption is concerned
> diff --git a/fs/ext4/page-io.c b/fs/ext4/page-io.c
> index 88226979c503..3db3c19a29e5 100644
> --- a/fs/ext4/page-io.c
> +++ b/fs/ext4/page-io.c
> @@ -441,11 +441,15 @@ static void io_submit_init_bio(struct ext4_io_submit *io,
> }
>
> static bool io_submit_need_new_bio(struct ext4_io_submit *io,
> + struct inode *inode,
> + struct folio *io_folio,
> struct buffer_head *bh)
> {
> if (bh->b_blocknr != io->io_next_block)
> return true;
> - if (!fscrypt_mergeable_bio_bh(io->io_bio, bh))
> + if (!fscrypt_mergeable_bio(io->io_bio, inode,
> + (folio_pos(io_folio) + bh_offset(bh)) >>
> + inode->i_blkbits))
> return true;
> return false;
> }
> @@ -456,7 +460,7 @@ static void io_submit_add_bh(struct ext4_io_submit *io,
> struct folio *io_folio,
> struct buffer_head *bh)
> {
> - if (io->io_bio && io_submit_need_new_bio(io, bh)) {
> + if (io->io_bio && io_submit_need_new_bio(io, inode, io_folio, bh)) {
> submit_and_retry:
> ext4_io_submit(io);
> }
As in patch 2, this needs to use 'folio', not 'io_folio'.
- Eric
next prev parent reply other threads:[~2026-02-27 21:22 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-02-26 14:49 fscrypt API cleanups v2 Christoph Hellwig
2026-02-26 14:49 ` [PATCH 01/14] ext4: initialize the write hint in io_submit_init_bio Christoph Hellwig
2026-02-27 21:16 ` Eric Biggers
2026-02-26 14:49 ` [PATCH 02/14] ext4: open code fscrypt_set_bio_crypt_ctx_bh Christoph Hellwig
2026-02-27 21:19 ` Eric Biggers
2026-02-26 14:49 ` [PATCH 03/14] ext4: factor out a io_submit_need_new_bio helper Christoph Hellwig
2026-02-26 14:49 ` [PATCH 04/14] ext4, fscrypt: merge fscrypt_mergeable_bio_bh into io_submit_need_new_bio Christoph Hellwig
2026-02-27 21:22 ` Eric Biggers [this message]
2026-02-26 14:49 ` [PATCH 05/14] fscrypt: move fscrypt_set_bio_crypt_ctx_bh to buffer.c Christoph Hellwig
2026-02-27 21:54 ` Eric Biggers
2026-02-26 14:49 ` [PATCH 06/14] fscrypt: pass a byte offset to fscrypt_generate_dun Christoph Hellwig
2026-02-26 14:49 ` [PATCH 07/14] fscrypt: pass a byte offset to fscrypt_mergeable_bio Christoph Hellwig
2026-02-26 14:49 ` [PATCH 08/14] fscrypt: pass a byte offset to fscrypt_set_bio_crypt_ctx Christoph Hellwig
2026-02-26 14:49 ` [PATCH 09/14] fscrypt: pass a byte offset to fscrypt_zeroout_range_inline_crypt Christoph Hellwig
2026-02-26 14:49 ` [PATCH 10/14] fscrypt: pass a byte length " Christoph Hellwig
2026-02-26 14:49 ` [PATCH 11/14] fscrypt: pass a byte offset to fscrypt_zeroout_range Christoph Hellwig
2026-02-26 14:49 ` [PATCH 12/14] fscrypt: pass a byte length " Christoph Hellwig
2026-02-27 22:14 ` Eric Biggers
2026-02-26 14:49 ` [PATCH 13/14] fscrypt: pass a real sector_t " Christoph Hellwig
2026-02-26 14:49 ` [PATCH 14/14] ext4: use a byte granularity cursor in ext4_mpage_readpages Christoph Hellwig
2026-02-27 22:29 ` Eric Biggers
-- strict thread matches above, loose matches on Subject: below --
2026-03-02 14:18 fscrypt API cleanups v3 Christoph Hellwig
2026-03-02 14:18 ` [PATCH 04/14] ext4, fscrypt: merge fscrypt_mergeable_bio_bh into io_submit_need_new_bio Christoph Hellwig
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=20260227212247.GC2659@quark \
--to=ebiggers@kernel.org \
--cc=adilger.kernel@dilger.ca \
--cc=brauner@kernel.org \
--cc=chao@kernel.org \
--cc=djwong@kernel.org \
--cc=hch@lst.de \
--cc=jaegeuk@kernel.org \
--cc=linux-ext4@vger.kernel.org \
--cc=linux-f2fs-devel@lists.sourceforge.net \
--cc=linux-fscrypt@vger.kernel.org \
--cc=linux-fsdevel@vger.kernel.org \
--cc=tytso@mit.edu \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox