btrfs: Add support for new RAID1C34 profiles
New 3- and 4-copy variants of RAID1 were merged into Linux kernel 5.5. Add the two new profiles to the list of recognized ones. As this builds on the same code as RAID1, only the redundancy level needs to be adjusted, the rest is done by the existing code. Signed-off-by: David Sterba <dsterba@suse.com> Reviewed-by: Daniel Kiper <daniel.kiper@oracle.com>
This commit is contained in:
parent
e2c09aed97
commit
495781f5ed
1 changed files with 9 additions and 2 deletions
|
@ -136,6 +136,8 @@ struct grub_btrfs_chunk_item
|
|||
#define GRUB_BTRFS_CHUNK_TYPE_RAID10 0x40
|
||||
#define GRUB_BTRFS_CHUNK_TYPE_RAID5 0x80
|
||||
#define GRUB_BTRFS_CHUNK_TYPE_RAID6 0x100
|
||||
#define GRUB_BTRFS_CHUNK_TYPE_RAID1C3 0x200
|
||||
#define GRUB_BTRFS_CHUNK_TYPE_RAID1C4 0x400
|
||||
grub_uint8_t dummy2[0xc];
|
||||
grub_uint16_t nstripes;
|
||||
grub_uint16_t nsubstripes;
|
||||
|
@ -964,14 +966,19 @@ grub_btrfs_read_logical (struct grub_btrfs_data *data, grub_disk_addr_t addr,
|
|||
csize = (stripen + 1) * stripe_length - off;
|
||||
break;
|
||||
}
|
||||
case GRUB_BTRFS_CHUNK_TYPE_RAID1C4:
|
||||
redundancy++;
|
||||
/* fall through */
|
||||
case GRUB_BTRFS_CHUNK_TYPE_RAID1C3:
|
||||
redundancy++;
|
||||
/* fall through */
|
||||
case GRUB_BTRFS_CHUNK_TYPE_DUPLICATED:
|
||||
case GRUB_BTRFS_CHUNK_TYPE_RAID1:
|
||||
{
|
||||
grub_dprintf ("btrfs", "RAID1\n");
|
||||
grub_dprintf ("btrfs", "RAID1 (copies: %d)\n", ++redundancy);
|
||||
stripen = 0;
|
||||
stripe_offset = off;
|
||||
csize = grub_le_to_cpu64 (chunk->size) - off;
|
||||
redundancy = 2;
|
||||
break;
|
||||
}
|
||||
case GRUB_BTRFS_CHUNK_TYPE_RAID0:
|
||||
|
|
Loading…
Reference in a new issue