Re: [parted-devel] [PATCH] set swap flag on GPT partitions

2016-12-02 Thread Arvin Schnell
On Fri, Dec 02, 2016 at 11:35:44AM +0800, Wang Dong wrote:
> Hi,
> 
> I think it will be better if you can send your patch with #git send-email.
> 
> It is not convenient to comment your patch if you put it in attaches file.
> 
> So I just paste it out. I got some comments below.;-)
> 
> 
> On 12/1/2016 7:28 PM, Arvin Schnell wrote:

> >   gpt_part_data->boot
> > +  = gpt_part_data->swap
> > +  = gpt_part_data->raid
> > +  = gpt_part_data->bios_grub
> > +  = gpt_part_data->hp_service
> > +  = gpt_part_data->msftres
> > +  = gpt_part_data->msftdata
> > +  = gpt_part_data->msftrecv
> > +  = gpt_part_data->prep
> > +  = gpt_part_data->irst
> > +  = gpt_part_data->atvrecv = 0;
> > +  return gpt_partition_set_system (part, part->fs_type);
> Lines above except *gpt_part_data->swap exist before. *I didn't see any
> changes compared to the source code.

An 'int swap' is added to the struct GPTPartitionData in the
patch, right at the beginning.

> I guess this patch is not based on the master?

It is based on master.

ciao Arvin

-- 
Arvin Schnell, 
Senior Software Engineer, Research & Development
SUSE Linux GmbH, GF: Felix Imendörffer, Jane Smithard, Graham Norton, HRB 21284 
(AG Nürnberg)
Maxfeldstraße 5
90409 Nürnberg
Germany



Re: [parted-devel] [PATCH] set swap flag on GPT partitions

2016-12-01 Thread Wang Dong

Hi,

I think it will be better if you can send your patch with #git send-email.

It is not convenient to comment your patch if you put it in attaches file.

So I just paste it out. I got some comments below.;-)


On 12/1/2016 7:28 PM, Arvin Schnell wrote:

Hi,

attached is a patch to support displaying and setting (on already
existing partitions) the swap flag on GPT partitions.

So far the swap flag can only be set when creating a partition
and setting the file-system to linux-swap.

Output of print looks like:

Model: Maxtor 6 Y080L0 (scsi)
Disk /dev/sdb: 82.0GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:

Number  Start   End SizeFile system Name  Flags
  1  1049kB  8197MB  8196MB  linux-swap(v1)swap
  2  8197MB  16.4GB  8196MB

Note that "linux-swap(v1)" and "swap" are independent, any
combination is possible.

Feedback is welcome.

ciao
   Arvin
diff --git a/libparted/labels/gpt.c b/libparted/labels/gpt.c

index d69377a..4b5f89a 100644

--- a/libparted/labels/gpt.c

+++ b/libparted/labels/gpt.c

@@ -290,6 +290,7 @@ typedef struct _GPTPartitionData

efi_char16_t name[37];

char *translated_name;

int lvm;

+  int swap;

int raid;

int boot;

int bios_grub;

@@ -818,7 +819,8 @@ _parse_part_entry (PedDisk *disk, GuidPartitionEntry_t *pte)

gpt_part_data->name[i] = 0;

gpt_part_data->translated_name = 0;



-  gpt_part_data->lvm = gpt_part_data->raid

+  gpt_part_data->lvm = gpt_part_data->swap

+= gpt_part_data->raid

  = gpt_part_data->boot = gpt_part_data->hp_service

  = gpt_part_data->hidden = gpt_part_data->msftres

  = gpt_part_data->msftdata

@@ -841,6 +843,8 @@ _parse_part_entry (PedDisk *disk, GuidPartitionEntry_t *pte)

  gpt_part_data->raid = 1;

else if (!guid_cmp (gpt_part_data->type, PARTITION_LVM_GUID))

  gpt_part_data->lvm = 1;

+  else if (!guid_cmp (gpt_part_data->type, PARTITION_SWAP_GUID))

+gpt_part_data->swap = 1;

else if (!guid_cmp (gpt_part_data->type, PARTITION_HPSERVICE_GUID))

  gpt_part_data->hp_service = 1;

else if (!guid_cmp (gpt_part_data->type, PARTITION_MSFT_RESERVED_GUID))

@@ -1361,6 +1365,7 @@ gpt_partition_new (const PedDisk *disk,



gpt_part_data->type = PARTITION_LINUX_DATA_GUID;

gpt_part_data->lvm = 0;

+  gpt_part_data->swap = 0;

gpt_part_data->raid = 0;

gpt_part_data->boot = 0;

gpt_part_data->bios_grub = 0;

@@ -1449,6 +1454,11 @@ gpt_partition_set_system (PedPartition *part,

gpt_part_data->type = PARTITION_LVM_GUID;

return 1;

  }

+  if (gpt_part_data->swap)

+{

+  gpt_part_data->type = PARTITION_SWAP_GUID;

+  return 1;

+}

if (gpt_part_data->raid)

  {

gpt_part_data->type = PARTITION_RAID_GUID;

@@ -1636,6 +1646,7 @@ gpt_partition_set_flag (PedPartition *part, 
PedPartitionFlag flag, int state)

if (state)

  gpt_part_data->raid

= gpt_part_data->lvm

+  = gpt_part_data->swap

= gpt_part_data->bios_grub

= gpt_part_data->hp_service

= gpt_part_data->msftres

@@ -1650,6 +1661,7 @@ gpt_partition_set_flag (PedPartition *part, 
PedPartitionFlag flag, int state)

if (state)

  gpt_part_data->raid

= gpt_part_data->lvm

+  = gpt_part_data->swap

= gpt_part_data->boot

= gpt_part_data->hp_service

= gpt_part_data->msftres

@@ -1664,6 +1676,7 @@ gpt_partition_set_flag (PedPartition *part, 
PedPartitionFlag flag, int state)

if (state)

  gpt_part_data->boot

= gpt_part_data->lvm

+  = gpt_part_data->swap

= gpt_part_data->bios_grub

= gpt_part_data->hp_service

= gpt_part_data->msftres

@@ -1677,6 +1690,22 @@ gpt_partition_set_flag (PedPartition *part, 
PedPartitionFlag flag, int state)

gpt_part_data->lvm = state;

if (state)

  gpt_part_data->boot

+  = gpt_part_data->swap

+  = gpt_part_data->raid

+  = gpt_part_data->bios_grub

+  = gpt_part_data->hp_service

+  = gpt_part_data->msftres

+  = gpt_part_data->msftdata

+  = gpt_part_data->msftrecv

+  = gpt_part_data->prep

+  = gpt_part_data->irst

+  = gpt_part_data->atvrecv = 0;

+  return gpt_partition_set_system (part, part->fs_type);
Lines above except *gpt_part_data->swap exist before. *I didn't see any 
changes compared to the source code.

+case PED_PARTITION_SWAP:

+  gpt_part_data->swap = state;

+  if (state)

+gpt_part_data->boot

+  = gpt_part_data->lvm

I guess this patch is not based on the master?
Because I saw swap here is not implemented. Just one line

*case PED_PARTITION_SWAP: *But your code shows not like this.**This case is new 
so other flag should be set to 0*, *and line
related this should be new line, but I could see them.**



[parted-devel] [PATCH] set swap flag on GPT partitions

2016-12-01 Thread Arvin Schnell

Hi,

attached is a patch to support displaying and setting (on already
existing partitions) the swap flag on GPT partitions.

So far the swap flag can only be set when creating a partition
and setting the file-system to linux-swap.

Output of print looks like:

Model: Maxtor 6 Y080L0 (scsi)
Disk /dev/sdb: 82.0GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags: 

Number  Start   End SizeFile system Name  Flags
 1  1049kB  8197MB  8196MB  linux-swap(v1)swap
 2  8197MB  16.4GB  8196MB

Note that "linux-swap(v1)" and "swap" are independent, any
combination is possible.

Feedback is welcome.

ciao
  Arvin

-- 
Arvin Schnell, 
Senior Software Engineer, Research & Development
SUSE Linux GmbH, GF: Felix Imendörffer, Jane Smithard, Graham Norton, HRB 21284 
(AG Nürnberg)
Maxfeldstraße 5
90409 Nürnberg
Germany
diff --git a/libparted/labels/gpt.c b/libparted/labels/gpt.c
index d69377a..4b5f89a 100644
--- a/libparted/labels/gpt.c
+++ b/libparted/labels/gpt.c
@@ -290,6 +290,7 @@ typedef struct _GPTPartitionData
   efi_char16_t name[37];
   char *translated_name;
   int lvm;
+  int swap;
   int raid;
   int boot;
   int bios_grub;
@@ -818,7 +819,8 @@ _parse_part_entry (PedDisk *disk, GuidPartitionEntry_t *pte)
   gpt_part_data->name[i] = 0;
   gpt_part_data->translated_name = 0;
 
-  gpt_part_data->lvm = gpt_part_data->raid
+  gpt_part_data->lvm = gpt_part_data->swap
+= gpt_part_data->raid
 = gpt_part_data->boot = gpt_part_data->hp_service
 = gpt_part_data->hidden = gpt_part_data->msftres
 = gpt_part_data->msftdata
@@ -841,6 +843,8 @@ _parse_part_entry (PedDisk *disk, GuidPartitionEntry_t *pte)
 gpt_part_data->raid = 1;
   else if (!guid_cmp (gpt_part_data->type, PARTITION_LVM_GUID))
 gpt_part_data->lvm = 1;
+  else if (!guid_cmp (gpt_part_data->type, PARTITION_SWAP_GUID))
+gpt_part_data->swap = 1;
   else if (!guid_cmp (gpt_part_data->type, PARTITION_HPSERVICE_GUID))
 gpt_part_data->hp_service = 1;
   else if (!guid_cmp (gpt_part_data->type, PARTITION_MSFT_RESERVED_GUID))
@@ -1361,6 +1365,7 @@ gpt_partition_new (const PedDisk *disk,
 
   gpt_part_data->type = PARTITION_LINUX_DATA_GUID;
   gpt_part_data->lvm = 0;
+  gpt_part_data->swap = 0;
   gpt_part_data->raid = 0;
   gpt_part_data->boot = 0;
   gpt_part_data->bios_grub = 0;
@@ -1449,6 +1454,11 @@ gpt_partition_set_system (PedPartition *part,
   gpt_part_data->type = PARTITION_LVM_GUID;
   return 1;
 }
+  if (gpt_part_data->swap)
+{
+  gpt_part_data->type = PARTITION_SWAP_GUID;
+  return 1;
+}
   if (gpt_part_data->raid)
 {
   gpt_part_data->type = PARTITION_RAID_GUID;
@@ -1636,6 +1646,7 @@ gpt_partition_set_flag (PedPartition *part, PedPartitionFlag flag, int state)
   if (state)
 gpt_part_data->raid
   = gpt_part_data->lvm
+  = gpt_part_data->swap
   = gpt_part_data->bios_grub
   = gpt_part_data->hp_service
   = gpt_part_data->msftres
@@ -1650,6 +1661,7 @@ gpt_partition_set_flag (PedPartition *part, PedPartitionFlag flag, int state)
   if (state)
 gpt_part_data->raid
   = gpt_part_data->lvm
+  = gpt_part_data->swap
   = gpt_part_data->boot
   = gpt_part_data->hp_service
   = gpt_part_data->msftres
@@ -1664,6 +1676,7 @@ gpt_partition_set_flag (PedPartition *part, PedPartitionFlag flag, int state)
   if (state)
 gpt_part_data->boot
   = gpt_part_data->lvm
+  = gpt_part_data->swap
   = gpt_part_data->bios_grub
   = gpt_part_data->hp_service
   = gpt_part_data->msftres
@@ -1677,6 +1690,22 @@ gpt_partition_set_flag (PedPartition *part, PedPartitionFlag flag, int state)
   gpt_part_data->lvm = state;
   if (state)
 gpt_part_data->boot
+  = gpt_part_data->swap
+  = gpt_part_data->raid
+  = gpt_part_data->bios_grub
+  = gpt_part_data->hp_service
+  = gpt_part_data->msftres
+  = gpt_part_data->msftdata
+  = gpt_part_data->msftrecv
+  = gpt_part_data->prep
+  = gpt_part_data->irst
+  = gpt_part_data->atvrecv = 0;
+  return gpt_partition_set_system (part, part->fs_type);
+case PED_PARTITION_SWAP:
+  gpt_part_data->swap = state;
+  if (state)
+gpt_part_data->boot
+  = gpt_part_data->lvm
   = gpt_part_data->raid
   = gpt_part_data->bios_grub
   = gpt_part_data->hp_service
@@ -1693,6 +1722,7 @@ gpt_partition_set_flag (PedPartition *part, PedPartitionFlag flag, int state)
 gpt_part_data->boot
   = gpt_part_data->raid
   = gpt_part_data->lvm
+  = gpt_part_data->swap
   = gpt_part_data->bios_grub
   = gpt_part_data->msftres
   = gpt_part_data->msftdata
@@ -1707,6 +1737,7 @@ gpt_partition_set_flag (PedPartition *part, PedPartitionFlag flag, int state)
 gpt_part_data->boot