mirror of
https://github.com/torvalds/linux.git
synced 2024-11-22 20:22:09 +00:00
btrfs: raid56: enable subpage support for RAID56
Now the btrfs RAID56 infrastructure has migrated to use sector_ptr interface, it should be safe to enable subpage support for RAID56. Signed-off-by: Qu Wenruo <wqu@suse.com> Reviewed-by: David Sterba <dsterba@suse.com> Signed-off-by: David Sterba <dsterba@suse.com>
This commit is contained in:
parent
3907ce293d
commit
a7b8e39c92
@ -3686,14 +3686,6 @@ int __cold open_ctree(struct super_block *sb, struct btrfs_fs_devices *fs_device
|
|||||||
btrfs_warn(fs_info,
|
btrfs_warn(fs_info,
|
||||||
"read-write for sector size %u with page size %lu is experimental",
|
"read-write for sector size %u with page size %lu is experimental",
|
||||||
sectorsize, PAGE_SIZE);
|
sectorsize, PAGE_SIZE);
|
||||||
if (btrfs_super_incompat_flags(fs_info->super_copy) &
|
|
||||||
BTRFS_FEATURE_INCOMPAT_RAID56) {
|
|
||||||
btrfs_err(fs_info,
|
|
||||||
"RAID56 is not yet supported for sector size %u with page size %lu",
|
|
||||||
sectorsize, PAGE_SIZE);
|
|
||||||
err = -EINVAL;
|
|
||||||
goto fail_alloc;
|
|
||||||
}
|
|
||||||
subpage_info = kzalloc(sizeof(*subpage_info), GFP_KERNEL);
|
subpage_info = kzalloc(sizeof(*subpage_info), GFP_KERNEL);
|
||||||
if (!subpage_info)
|
if (!subpage_info)
|
||||||
goto fail_alloc;
|
goto fail_alloc;
|
||||||
|
@ -1154,9 +1154,6 @@ static int rbio_add_io_sector(struct btrfs_raid_bio *rbio,
|
|||||||
ASSERT(sector_nr >= 0 && sector_nr < rbio->stripe_nsectors);
|
ASSERT(sector_nr >= 0 && sector_nr < rbio->stripe_nsectors);
|
||||||
ASSERT(sector->page);
|
ASSERT(sector->page);
|
||||||
|
|
||||||
/* We don't yet support subpage, thus pgoff should always be 0 */
|
|
||||||
ASSERT(sector->pgoff == 0);
|
|
||||||
|
|
||||||
stripe = &rbio->bioc->stripes[stripe_nr];
|
stripe = &rbio->bioc->stripes[stripe_nr];
|
||||||
disk_start = stripe->physical + sector_nr * sectorsize;
|
disk_start = stripe->physical + sector_nr * sectorsize;
|
||||||
|
|
||||||
@ -2378,9 +2375,6 @@ struct btrfs_raid_bio *raid56_parity_alloc_scrub_rbio(struct bio *bio,
|
|||||||
}
|
}
|
||||||
ASSERT(i < rbio->real_stripes);
|
ASSERT(i < rbio->real_stripes);
|
||||||
|
|
||||||
/* Now we just support the sectorsize equals to page size */
|
|
||||||
ASSERT(fs_info->sectorsize == PAGE_SIZE);
|
|
||||||
ASSERT(rbio->stripe_npages == stripe_nsectors);
|
|
||||||
bitmap_copy(rbio->dbitmap, dbitmap, stripe_nsectors);
|
bitmap_copy(rbio->dbitmap, dbitmap, stripe_nsectors);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -4063,13 +4063,6 @@ static inline int validate_convert_profile(struct btrfs_fs_info *fs_info,
|
|||||||
if (!(bargs->flags & BTRFS_BALANCE_ARGS_CONVERT))
|
if (!(bargs->flags & BTRFS_BALANCE_ARGS_CONVERT))
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
if (fs_info->sectorsize < PAGE_SIZE &&
|
|
||||||
bargs->target & BTRFS_BLOCK_GROUP_RAID56_MASK) {
|
|
||||||
btrfs_err(fs_info,
|
|
||||||
"RAID56 is not yet supported for sectorsize %u with page size %lu",
|
|
||||||
fs_info->sectorsize, PAGE_SIZE);
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
/* Profile is valid and does not have bits outside of the allowed set */
|
/* Profile is valid and does not have bits outside of the allowed set */
|
||||||
if (alloc_profile_is_valid(bargs->target, 1) &&
|
if (alloc_profile_is_valid(bargs->target, 1) &&
|
||||||
(bargs->target & ~allowed) == 0)
|
(bargs->target & ~allowed) == 0)
|
||||||
|
Loading…
Reference in New Issue
Block a user