Blame SOURCES/0062-libparted-set-swap-flag-on-GPT-partitions.patch

0cb0b9
From f209b71efc693b97b7c812678e811698ffd2bc79 Mon Sep 17 00:00:00 2001
0cb0b9
From: Arvin Schnell <aschnell@suse.com>
0cb0b9
Date: Thu, 22 Dec 2016 14:36:43 -0800
0cb0b9
Subject: [PATCH 62/75] libparted: set swap flag on GPT partitions
0cb0b9
0cb0b9
The filesystem type is still detected as befor, but now setting the
0cb0b9
'swap' flag will set the partition GUID to PARTITION_SWAP_GUID.
0cb0b9
0cb0b9
Signed-off-by: Brian C. Lane <bcl@redhat.com>
0cb0b9
---
0cb0b9
 libparted/labels/gpt.c | 42 +++++++++++++++++++++++++++++++++++++++---
0cb0b9
 1 file changed, 39 insertions(+), 3 deletions(-)
0cb0b9
0cb0b9
diff --git a/libparted/labels/gpt.c b/libparted/labels/gpt.c
0cb0b9
index 6027eb3..4f922b2 100644
0cb0b9
--- a/libparted/labels/gpt.c
0cb0b9
+++ b/libparted/labels/gpt.c
0cb0b9
@@ -290,6 +290,7 @@ typedef struct _GPTPartitionData
0cb0b9
   efi_char16_t name[37];
0cb0b9
   char *translated_name;
0cb0b9
   int lvm;
0cb0b9
+  int swap;
0cb0b9
   int raid;
0cb0b9
   int boot;
0cb0b9
   int bios_grub;
0cb0b9
@@ -818,7 +819,8 @@ _parse_part_entry (PedDisk *disk, GuidPartitionEntry_t *pte)
0cb0b9
   gpt_part_data->name[i] = 0;
0cb0b9
   gpt_part_data->translated_name = 0;
0cb0b9
 
0cb0b9
-  gpt_part_data->lvm = gpt_part_data->raid
0cb0b9
+  gpt_part_data->lvm = gpt_part_data->swap
0cb0b9
+    = gpt_part_data->raid
0cb0b9
     = gpt_part_data->boot = gpt_part_data->hp_service
0cb0b9
     = gpt_part_data->hidden = gpt_part_data->msftres
0cb0b9
     = gpt_part_data->msftdata
0cb0b9
@@ -841,6 +843,8 @@ _parse_part_entry (PedDisk *disk, GuidPartitionEntry_t *pte)
0cb0b9
     gpt_part_data->raid = 1;
0cb0b9
   else if (!guid_cmp (gpt_part_data->type, PARTITION_LVM_GUID))
0cb0b9
     gpt_part_data->lvm = 1;
0cb0b9
+  else if (!guid_cmp (gpt_part_data->type, PARTITION_SWAP_GUID))
0cb0b9
+    gpt_part_data->swap = 1;
0cb0b9
   else if (!guid_cmp (gpt_part_data->type, PARTITION_HPSERVICE_GUID))
0cb0b9
     gpt_part_data->hp_service = 1;
0cb0b9
   else if (!guid_cmp (gpt_part_data->type, PARTITION_MSFT_RESERVED_GUID))
0cb0b9
@@ -1361,6 +1365,7 @@ gpt_partition_new (const PedDisk *disk,
0cb0b9
 
0cb0b9
   gpt_part_data->type = PARTITION_LINUX_DATA_GUID;
0cb0b9
   gpt_part_data->lvm = 0;
0cb0b9
+  gpt_part_data->swap = 0;
0cb0b9
   gpt_part_data->raid = 0;
0cb0b9
   gpt_part_data->boot = 0;
0cb0b9
   gpt_part_data->bios_grub = 0;
0cb0b9
@@ -1449,6 +1454,11 @@ gpt_partition_set_system (PedPartition *part,
0cb0b9
       gpt_part_data->type = PARTITION_LVM_GUID;
0cb0b9
       return 1;
0cb0b9
     }
0cb0b9
+  if (gpt_part_data->swap)
0cb0b9
+    {
0cb0b9
+      gpt_part_data->type = PARTITION_SWAP_GUID;
0cb0b9
+      return 1;
0cb0b9
+    }
0cb0b9
   if (gpt_part_data->raid)
0cb0b9
     {
0cb0b9
       gpt_part_data->type = PARTITION_RAID_GUID;
0cb0b9
@@ -1636,6 +1646,7 @@ gpt_partition_set_flag (PedPartition *part, PedPartitionFlag flag, int state)
0cb0b9
       if (state)
0cb0b9
         gpt_part_data->raid
0cb0b9
           = gpt_part_data->lvm
0cb0b9
+          = gpt_part_data->swap
0cb0b9
           = gpt_part_data->bios_grub
0cb0b9
           = gpt_part_data->hp_service
0cb0b9
           = gpt_part_data->msftres
0cb0b9
@@ -1650,6 +1661,7 @@ gpt_partition_set_flag (PedPartition *part, PedPartitionFlag flag, int state)
0cb0b9
       if (state)
0cb0b9
         gpt_part_data->raid
0cb0b9
           = gpt_part_data->lvm
0cb0b9
+          = gpt_part_data->swap
0cb0b9
           = gpt_part_data->boot
0cb0b9
           = gpt_part_data->hp_service
0cb0b9
           = gpt_part_data->msftres
0cb0b9
@@ -1664,6 +1676,7 @@ gpt_partition_set_flag (PedPartition *part, PedPartitionFlag flag, int state)
0cb0b9
       if (state)
0cb0b9
         gpt_part_data->boot
0cb0b9
           = gpt_part_data->lvm
0cb0b9
+          = gpt_part_data->swap
0cb0b9
           = gpt_part_data->bios_grub
0cb0b9
           = gpt_part_data->hp_service
0cb0b9
           = gpt_part_data->msftres
0cb0b9
@@ -1677,6 +1690,22 @@ gpt_partition_set_flag (PedPartition *part, PedPartitionFlag flag, int state)
0cb0b9
       gpt_part_data->lvm = state;
0cb0b9
       if (state)
0cb0b9
         gpt_part_data->boot
0cb0b9
+          = gpt_part_data->swap
0cb0b9
+          = gpt_part_data->raid
0cb0b9
+          = gpt_part_data->bios_grub
0cb0b9
+          = gpt_part_data->hp_service
0cb0b9
+          = gpt_part_data->msftres
0cb0b9
+          = gpt_part_data->msftdata
0cb0b9
+          = gpt_part_data->msftrecv
0cb0b9
+          = gpt_part_data->prep
0cb0b9
+          = gpt_part_data->irst
0cb0b9
+          = gpt_part_data->atvrecv = 0;
0cb0b9
+      return gpt_partition_set_system (part, part->fs_type);
0cb0b9
+    case PED_PARTITION_SWAP:
0cb0b9
+      gpt_part_data->swap = state;
0cb0b9
+      if (state)
0cb0b9
+        gpt_part_data->boot
0cb0b9
+          = gpt_part_data->lvm
0cb0b9
           = gpt_part_data->raid
0cb0b9
           = gpt_part_data->bios_grub
0cb0b9
           = gpt_part_data->hp_service
0cb0b9
@@ -1693,6 +1722,7 @@ gpt_partition_set_flag (PedPartition *part, PedPartitionFlag flag, int state)
0cb0b9
         gpt_part_data->boot
0cb0b9
           = gpt_part_data->raid
0cb0b9
           = gpt_part_data->lvm
0cb0b9
+          = gpt_part_data->swap
0cb0b9
           = gpt_part_data->bios_grub
0cb0b9
           = gpt_part_data->msftres
0cb0b9
           = gpt_part_data->msftdata
0cb0b9
@@ -1707,6 +1737,7 @@ gpt_partition_set_flag (PedPartition *part, PedPartitionFlag flag, int state)
0cb0b9
         gpt_part_data->boot
0cb0b9
           = gpt_part_data->raid
0cb0b9
           = gpt_part_data->lvm
0cb0b9
+          = gpt_part_data->swap
0cb0b9
           = gpt_part_data->bios_grub
0cb0b9
           = gpt_part_data->hp_service
0cb0b9
           = gpt_part_data->msftdata
0cb0b9
@@ -1721,6 +1752,7 @@ gpt_partition_set_flag (PedPartition *part, PedPartitionFlag flag, int state)
0cb0b9
         gpt_part_data->boot
0cb0b9
           = gpt_part_data->raid
0cb0b9
           = gpt_part_data->lvm
0cb0b9
+          = gpt_part_data->swap
0cb0b9
           = gpt_part_data->bios_grub
0cb0b9
           = gpt_part_data->hp_service
0cb0b9
           = gpt_part_data->msftres
0cb0b9
@@ -1739,6 +1771,7 @@ gpt_partition_set_flag (PedPartition *part, PedPartitionFlag flag, int state)
0cb0b9
         gpt_part_data->boot
0cb0b9
           = gpt_part_data->raid
0cb0b9
           = gpt_part_data->lvm
0cb0b9
+          = gpt_part_data->swap
0cb0b9
           = gpt_part_data->bios_grub
0cb0b9
           = gpt_part_data->hp_service
0cb0b9
           = gpt_part_data->msftdata
0cb0b9
@@ -1753,6 +1786,7 @@ gpt_partition_set_flag (PedPartition *part, PedPartitionFlag flag, int state)
0cb0b9
         gpt_part_data->boot
0cb0b9
           = gpt_part_data->raid
0cb0b9
           = gpt_part_data->lvm
0cb0b9
+          = gpt_part_data->swap
0cb0b9
           = gpt_part_data->bios_grub
0cb0b9
           = gpt_part_data->hp_service
0cb0b9
           = gpt_part_data->msftres
0cb0b9
@@ -1766,6 +1800,7 @@ gpt_partition_set_flag (PedPartition *part, PedPartitionFlag flag, int state)
0cb0b9
         gpt_part_data->boot
0cb0b9
           = gpt_part_data->raid
0cb0b9
           = gpt_part_data->lvm
0cb0b9
+          = gpt_part_data->swap
0cb0b9
           = gpt_part_data->bios_grub
0cb0b9
           = gpt_part_data->hp_service
0cb0b9
           = gpt_part_data->msftres
0cb0b9
@@ -1779,6 +1814,7 @@ gpt_partition_set_flag (PedPartition *part, PedPartitionFlag flag, int state)
0cb0b9
         gpt_part_data->boot
0cb0b9
           = gpt_part_data->raid
0cb0b9
           = gpt_part_data->lvm
0cb0b9
+          = gpt_part_data->swap
0cb0b9
           = gpt_part_data->bios_grub
0cb0b9
           = gpt_part_data->hp_service
0cb0b9
           = gpt_part_data->msftres
0cb0b9
@@ -1793,7 +1829,6 @@ gpt_partition_set_flag (PedPartition *part, PedPartitionFlag flag, int state)
0cb0b9
     case PED_PARTITION_LEGACY_BOOT:
0cb0b9
       gpt_part_data->legacy_boot = state;
0cb0b9
       return 1;
0cb0b9
-    case PED_PARTITION_SWAP:
0cb0b9
     case PED_PARTITION_ROOT:
0cb0b9
     case PED_PARTITION_LBA:
0cb0b9
     default:
0cb0b9
@@ -1839,6 +1874,7 @@ gpt_partition_get_flag (const PedPartition *part, PedPartitionFlag flag)
0cb0b9
     case PED_PARTITION_IRST:
0cb0b9
       return gpt_part_data->irst;
0cb0b9
     case PED_PARTITION_SWAP:
0cb0b9
+	return gpt_part_data->swap;
0cb0b9
     case PED_PARTITION_LBA:
0cb0b9
     case PED_PARTITION_ROOT:
0cb0b9
     default:
0cb0b9
@@ -1855,6 +1891,7 @@ gpt_partition_is_flag_available (const PedPartition *part,
0cb0b9
     {
0cb0b9
     case PED_PARTITION_RAID:
0cb0b9
     case PED_PARTITION_LVM:
0cb0b9
+    case PED_PARTITION_SWAP:
0cb0b9
     case PED_PARTITION_BOOT:
0cb0b9
     case PED_PARTITION_BIOS_GRUB:
0cb0b9
     case PED_PARTITION_HPSERVICE:
0cb0b9
@@ -1868,7 +1905,6 @@ gpt_partition_is_flag_available (const PedPartition *part,
0cb0b9
     case PED_PARTITION_IRST:
0cb0b9
     case PED_PARTITION_ESP:
0cb0b9
       return 1;
0cb0b9
-    case PED_PARTITION_SWAP:
0cb0b9
     case PED_PARTITION_ROOT:
0cb0b9
     case PED_PARTITION_LBA:
0cb0b9
     default:
0cb0b9
-- 
0cb0b9
2.9.3
0cb0b9