mirror of
https://github.com/torvalds/linux.git
synced 2026-05-30 18:13:41 +02:00
btrfs: raid56: enable bs > ps support
The support code for bs > ps is complete, enable it and update assertions. Signed-off-by: Qu Wenruo <wqu@suse.com> Signed-off-by: David Sterba <dsterba@suse.com>
This commit is contained in:
parent
89ca1a403e
commit
8870dbeedc
|
|
@ -3258,12 +3258,6 @@ int btrfs_check_features(struct btrfs_fs_info *fs_info, bool is_rw_mount)
|
||||||
PAGE_SIZE, fs_info->sectorsize);
|
PAGE_SIZE, fs_info->sectorsize);
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
}
|
}
|
||||||
if (fs_info->sectorsize > PAGE_SIZE && btrfs_fs_incompat(fs_info, RAID56)) {
|
|
||||||
btrfs_err(fs_info,
|
|
||||||
"RAID56 is not supported for page size %lu with sectorsize %u",
|
|
||||||
PAGE_SIZE, fs_info->sectorsize);
|
|
||||||
return -EINVAL;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* This can be called by remount, we need to protect the super block. */
|
/* This can be called by remount, we need to protect the super block. */
|
||||||
spin_lock(&fs_info->super_lock);
|
spin_lock(&fs_info->super_lock);
|
||||||
|
|
|
||||||
|
|
@ -1070,8 +1070,12 @@ static struct btrfs_raid_bio *alloc_rbio(struct btrfs_fs_info *fs_info,
|
||||||
const unsigned int sector_nsteps = fs_info->sectorsize / step;
|
const unsigned int sector_nsteps = fs_info->sectorsize / step;
|
||||||
struct btrfs_raid_bio *rbio;
|
struct btrfs_raid_bio *rbio;
|
||||||
|
|
||||||
/* PAGE_SIZE must also be aligned to sectorsize for subpage support */
|
/*
|
||||||
ASSERT(IS_ALIGNED(PAGE_SIZE, fs_info->sectorsize));
|
* For bs <= ps cases, ps must be aligned to bs.
|
||||||
|
* For bs > ps cases, bs must be aligned to ps.
|
||||||
|
*/
|
||||||
|
ASSERT(IS_ALIGNED(PAGE_SIZE, fs_info->sectorsize) ||
|
||||||
|
IS_ALIGNED(fs_info->sectorsize, PAGE_SIZE));
|
||||||
/*
|
/*
|
||||||
* Our current stripe len should be fixed to 64k thus stripe_nsectors
|
* Our current stripe len should be fixed to 64k thus stripe_nsectors
|
||||||
* (at most 16) should be no larger than BITS_PER_LONG.
|
* (at most 16) should be no larger than BITS_PER_LONG.
|
||||||
|
|
@ -3014,9 +3018,6 @@ void raid56_parity_cache_data_folios(struct btrfs_raid_bio *rbio,
|
||||||
unsigned int foffset = 0;
|
unsigned int foffset = 0;
|
||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
/* We shouldn't hit RAID56 for bs > ps cases for now. */
|
|
||||||
ASSERT(fs_info->sectorsize <= PAGE_SIZE);
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* If we hit ENOMEM temporarily, but later at
|
* If we hit ENOMEM temporarily, but later at
|
||||||
* raid56_parity_submit_scrub_rbio() time it succeeded, we just do
|
* raid56_parity_submit_scrub_rbio() time it succeeded, we just do
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user