aboutsummaryrefslogtreecommitdiffstats
path: root/block/partitions/efi.c
diff options
context:
space:
mode:
authorStephen Warren <swarren@nvidia.com>2012-11-08 19:12:25 -0500
committerJens Axboe <axboe@kernel.dk>2012-11-23 08:28:53 -0500
commit1ad7e89940d5ac411928189e1a4a01901dbf590f (patch)
tree64bfe2bceb4d157320465d529869783443e031bf /block/partitions/efi.c
parentd48c152a41c8cd6de832397b4ea6f0429ad86318 (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.c7
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,