diff options
author | Stephen Warren <swarren@nvidia.com> | 2012-11-08 19:12:25 -0500 |
---|---|---|
committer | Jens Axboe <axboe@kernel.dk> | 2012-11-23 08:28:53 -0500 |
commit | 1ad7e89940d5ac411928189e1a4a01901dbf590f (patch) | |
tree | 64bfe2bceb4d157320465d529869783443e031bf /block/partitions/efi.c | |
parent | d48c152a41c8cd6de832397b4ea6f0429ad86318 (diff) |
block: store partition_meta_info.uuid as a string
This will allow other types of UUID to be stored here, aside from true
UUIDs. This also simplifies code that uses this field, since it's usually
constructed from a, used as a, or compared to other, strings.
Note: A simplistic approach here would be to set uuid_str[36]=0 whenever a
/PARTNROFF option was found to be present. However, this modifies the
input string, and causes subsequent calls to devt_from_partuuid() not to
see the /PARTNROFF option, which causes different results. In order to
avoid misleading future maintainers, this parameter is marked const.
Signed-off-by: Stephen Warren <swarren@nvidia.com>
Cc: Tejun Heo <tj@kernel.org>
Cc: Will Drewry <wad@chromium.org>
Cc: Kay Sievers <kay.sievers@vrfy.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Diffstat (limited to 'block/partitions/efi.c')
-rw-r--r-- | block/partitions/efi.c | 7 |
1 files changed, 1 insertions, 6 deletions
diff --git a/block/partitions/efi.c b/block/partitions/efi.c index 6296b403c67a..b62fb88b8711 100644 --- a/block/partitions/efi.c +++ b/block/partitions/efi.c | |||
@@ -620,7 +620,6 @@ int efi_partition(struct parsed_partitions *state) | |||
620 | gpt_entry *ptes = NULL; | 620 | gpt_entry *ptes = NULL; |
621 | u32 i; | 621 | u32 i; |
622 | unsigned ssz = bdev_logical_block_size(state->bdev) / 512; | 622 | unsigned ssz = bdev_logical_block_size(state->bdev) / 512; |
623 | u8 unparsed_guid[37]; | ||
624 | 623 | ||
625 | if (!find_valid_gpt(state, &gpt, &ptes) || !gpt || !ptes) { | 624 | if (!find_valid_gpt(state, &gpt, &ptes) || !gpt || !ptes) { |
626 | kfree(gpt); | 625 | kfree(gpt); |
@@ -649,11 +648,7 @@ int efi_partition(struct parsed_partitions *state) | |||
649 | state->parts[i + 1].flags = ADDPART_FLAG_RAID; | 648 | state->parts[i + 1].flags = ADDPART_FLAG_RAID; |
650 | 649 | ||
651 | info = &state->parts[i + 1].info; | 650 | info = &state->parts[i + 1].info; |
652 | /* Instead of doing a manual swap to big endian, reuse the | 651 | efi_guid_unparse(&ptes[i].unique_partition_guid, info->uuid); |
653 | * common ASCII hex format as the interim. | ||
654 | */ | ||
655 | efi_guid_unparse(&ptes[i].unique_partition_guid, unparsed_guid); | ||
656 | part_pack_uuid(unparsed_guid, info->uuid); | ||
657 | 652 | ||
658 | /* Naively convert UTF16-LE to 7 bits. */ | 653 | /* Naively convert UTF16-LE to 7 bits. */ |
659 | label_max = min(sizeof(info->volname) - 1, | 654 | label_max = min(sizeof(info->volname) - 1, |