diff mbox series

btrfs: add support for RAID1C3 and RAID1C4

Message ID 20191202181928.3098-2-kreijack@libero.it (mailing list archive)
State New, archived
Headers show
Series btrfs: add support for RAID1C3 and RAID1C4 | expand

Commit Message

Goffredo Baroncelli Dec. 2, 2019, 6:19 p.m. UTC
From: Goffredo Baroncelli <kreijack@inwind.it>

Signed-off-by: Goffredo Baroncelli <kreijack@inwind.it>
---
 grub-core/fs/btrfs.c | 20 ++++++++++++++++++++
 1 file changed, 20 insertions(+)
diff mbox series

Patch

diff --git a/grub-core/fs/btrfs.c b/grub-core/fs/btrfs.c
index 48bd3d04a..191c5cd63 100644
--- a/grub-core/fs/btrfs.c
+++ b/grub-core/fs/btrfs.c
@@ -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;
@@ -1088,6 +1090,24 @@  grub_btrfs_read_logical (struct grub_btrfs_data *data, grub_disk_addr_t addr,
 	      stripe_offset = chunk_stripe_length * high + low;
 	      csize = chunk_stripe_length - low;
 
+	      break;
+	    }
+	  case GRUB_BTRFS_CHUNK_TYPE_RAID1C3:
+	    {
+	      grub_dprintf ("btrfs", "RAID1C3\n");
+	      stripen = 0;
+	      stripe_offset = off;
+	      csize = grub_le_to_cpu64 (chunk->size) - off;
+	      redundancy = 3;
+	      break;
+	    }
+	  case GRUB_BTRFS_CHUNK_TYPE_RAID1C4:
+	    {
+	      grub_dprintf ("btrfs", "RAID1C4\n");
+	      stripen = 0;
+	      stripe_offset = off;
+	      csize = grub_le_to_cpu64 (chunk->size) - off;
+	      redundancy = 4;
 	      break;
 	    }
 	  default: