From: Qu Wenruo <quwenruo.btrfs@gmx.com>
To: Tal Zussman <tz2294@columbia.edu>,
David Sterba <dsterba@suse.com>, Chris Mason <mason@kernel.org>
Cc: linux-btrfs@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH 08/10] btrfs: keep the free space cache inode mapping at order 0
Date: Mon, 7 Sep 2026 08:40:02 +0930 [thread overview]
Message-ID: <e626273b-b3a4-4ba2-a95d-8c56cc16529b@gmx.com> (raw)
In-Reply-To: <20260906-btrfs-folio-conversions-v1-8-834b9d7b06f5@columbia.edu>
在 2026/9/7 07:59, Tal Zussman 写道:
> The free space cache inode is a data inode, so the read path enables
> large folios on its mapping. The v1 cache code assumes one page per
> folio. With a large folio, consecutive __filemap_get_folio() calls in
> io_ctl_prepare_pages() would return the same folio and deadlock on the
> second FGP_LOCK.
>
> The v1 on-disk format is PAGE_SIZE granular, so keep the mapping at
> order 0 rather than teaching the io_ctl code about large folios.
>
> Signed-off-by: Tal Zussman <tz2294@columbia.edu>
V1 space cache is already disabled by commit 545e560a5b0f ("btrfs:
disable v1 space cache").
I do not think you should add such check for things that we're already
planning to fully remove.
> ---
> fs/btrfs/btrfs_inode.h | 7 +++++++
> 1 file changed, 7 insertions(+)
>
> diff --git a/fs/btrfs/btrfs_inode.h b/fs/btrfs/btrfs_inode.h
> index 89e5e9c0c904..5d85aa69db13 100644
> --- a/fs/btrfs/btrfs_inode.h
> +++ b/fs/btrfs/btrfs_inode.h
> @@ -502,6 +502,13 @@ static inline void btrfs_set_inode_mapping_order(struct btrfs_inode *inode)
> /* Metadata inode should not reach here. */
> ASSERT(is_data_inode(inode));
>
> + /*
> + * The v1 free space cache operates on PAGE_SIZE chunks and assumes
> + * one page per folio. Leave it at order 0.
> + */
> + if (btrfs_is_free_space_inode(inode))
> + return;
> +
> mapping_set_folio_order_range(inode->vfs_inode.i_mapping,
> inode->root->fs_info->block_min_order,
> inode->root->fs_info->block_max_order);
>
next prev parent reply other threads:[~2026-09-06 23:10 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-09-06 22:29 [PATCH 00/10] btrfs: convert some struct page users to folios Tal Zussman
2026-09-06 22:29 ` [PATCH 01/10] btrfs: tests: rename process_page_range() to process_folio_range() Tal Zussman
2026-09-07 6:30 ` Qu Wenruo
2026-09-06 22:29 ` [PATCH 02/10] btrfs: tests: convert test_find_delalloc() to use folios Tal Zussman
2026-09-07 6:29 ` Qu Wenruo
2026-09-06 22:29 ` [PATCH 03/10] btrfs: tests: use eb folio helpers in extent buffer memory checks Tal Zussman
2026-09-07 6:33 ` Qu Wenruo
2026-09-06 22:29 ` [PATCH 04/10] btrfs: convert btrfs_compr_pool_scan() to use folios Tal Zussman
2026-09-07 6:36 ` Qu Wenruo
2026-09-06 22:29 ` [PATCH 05/10] btrfs: convert heuristic_collect_sample() " Tal Zussman
2026-09-07 6:44 ` Qu Wenruo
2026-09-06 22:29 ` [PATCH 06/10] btrfs: fix stale function references in compression comments Tal Zussman
2026-09-07 6:44 ` Qu Wenruo
2026-09-06 22:29 ` [PATCH 07/10] btrfs: use folios for reading super blocks from the block device Tal Zussman
2026-09-07 6:51 ` Qu Wenruo
2026-09-06 22:29 ` [PATCH 08/10] btrfs: keep the free space cache inode mapping at order 0 Tal Zussman
2026-09-06 23:10 ` Qu Wenruo [this message]
2026-09-06 22:29 ` [PATCH 09/10] btrfs: convert struct btrfs_io_ctl to use folios Tal Zussman
2026-09-06 22:29 ` [PATCH 10/10] btrfs: rename io_ctl page helpers to folio helpers Tal Zussman
2026-09-06 23:12 ` Qu Wenruo
2026-09-06 23:20 ` Tal Zussman
2026-09-07 0:23 ` Qu Wenruo
2026-09-07 0:58 ` Tal Zussman
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=e626273b-b3a4-4ba2-a95d-8c56cc16529b@gmx.com \
--to=quwenruo.btrfs@gmx.com \
--cc=dsterba@suse.com \
--cc=linux-btrfs@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mason@kernel.org \
--cc=tz2294@columbia.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 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.