Re: [PATCH v2 0/2] btrfs: subpage: pack all subpage bitmaps into a larger bitmap
From: Nikolay Borisov <hidden>
Date: 2021-08-17 13:44:29
On 17.08.21 г. 12:38, Qu Wenruo wrote:
Currently we use u16 bitmap to make 4k sectorsize work for 64K page size. But this u16 bitmap is not large enough to contain larger page size like 128K, nor is space efficient for 16K page size. To handle both cases, here we pack all subpage bitmaps into a larger bitmap, now btrfs_subpage::bitmaps[] will be the ultimate bitmap for subpage usage. This is the first step towards more page size support. Although to really enable extra page size like 16K and 128K, we need to rework the metadata alignment check. Which will happen in another patchset. Changelog: v2: - Add two refactor patches to make btrfs_alloc_subpage() more readable - Fix a break inside two loops bug - Rename subpage_info::*_start to subpage_info::*_offset - Add extra comment on what each subpage_info::*_offset works
Overall this looks better, with my small nits addressed: Reviewed-by: Nikolay Borisov <redacted>
Qu Wenruo (4):
btrfs: only call btrfs_alloc_subpage() when sectorsize is smaller than
PAGE_SIZE
btrfs: make btrfs_alloc_subpage() to return struct btrfs_subpage *
directly
btrfs: introduce btrfs_subpage_bitmap_info
btrfs: subpage: pack all subpage bitmaps into a larger bitmap
fs/btrfs/ctree.h | 1 +
fs/btrfs/disk-io.c | 12 ++-
fs/btrfs/extent_io.c | 76 +++++++++-------
fs/btrfs/subpage.c | 205 ++++++++++++++++++++++++++++++-------------
fs/btrfs/subpage.h | 54 ++++++++----
5 files changed, 238 insertions(+), 110 deletions(-)