libfdisk: (gpt) fix attributes endianess
The new libfdisk/gpt test (4a4a0927
) discovered that we read and write
partition attributes wrongly on BE systems.
Our temporarily used char[8] bits are always LE and do not need to be
converted.
CC: Michael Marineau <michael.marineau@coreos.com>
Signed-off-by: Ruediger Meier <ruediger.meier@ga-group.nl>
This commit is contained in:
parent
b3f5d0bc28
commit
159652d937
|
@ -1415,7 +1415,7 @@ static int gpt_entry_attrs_to_string(struct gpt_entry *e, char **res)
|
||||||
assert(res);
|
assert(res);
|
||||||
|
|
||||||
*res = NULL;
|
*res = NULL;
|
||||||
attrs = le64_to_cpu(e->attrs);
|
attrs = e->attrs;
|
||||||
if (!attrs)
|
if (!attrs)
|
||||||
return 0; /* no attributes at all */
|
return 0; /* no attributes at all */
|
||||||
|
|
||||||
|
@ -1530,7 +1530,7 @@ static int gpt_entry_attrs_from_string(
|
||||||
p++;
|
p++;
|
||||||
}
|
}
|
||||||
|
|
||||||
e->attrs = cpu_to_le64(attrs);
|
e->attrs = attrs;
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2517,7 +2517,7 @@ static int gpt_toggle_partition_flag(
|
||||||
if ((uint32_t) i >= le32_to_cpu(gpt->pheader->npartition_entries))
|
if ((uint32_t) i >= le32_to_cpu(gpt->pheader->npartition_entries))
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
|
|
||||||
attrs = le64_to_cpu(gpt->ents[i].attrs);
|
attrs = gpt->ents[i].attrs;
|
||||||
bits = (char *) &attrs;
|
bits = (char *) &attrs;
|
||||||
|
|
||||||
switch (flag) {
|
switch (flag) {
|
||||||
|
@ -2558,7 +2558,7 @@ static int gpt_toggle_partition_flag(
|
||||||
else
|
else
|
||||||
clrbit(bits, bit);
|
clrbit(bits, bit);
|
||||||
|
|
||||||
gpt->ents[i].attrs = cpu_to_le64(attrs);
|
gpt->ents[i].attrs = attrs;
|
||||||
|
|
||||||
if (flag == GPT_FLAG_GUIDSPECIFIC)
|
if (flag == GPT_FLAG_GUIDSPECIFIC)
|
||||||
fdisk_info(cxt, isset(bits, bit) ?
|
fdisk_info(cxt, isset(bits, bit) ?
|
||||||
|
|
Loading…
Reference in New Issue