| Upstream-Status: Backport |
| Signed-off-by: Ross Burton <ross.burton@intel.com> |
| |
| From da3f129710929abe9a403901fa7d168355b0e95a Mon Sep 17 00:00:00 2001 |
| From: Felix Janda <felix.janda@posteo.de> |
| Date: Sun, 3 May 2015 10:33:15 +0200 |
| Subject: [PATCH] libparted/arch/linux.c: Compile without ENABLE_DEVICE_MAPPER |
| |
| Signed-off-by: Brian C. Lane <bcl@redhat.com> |
| --- |
| libparted/arch/linux.c | 21 +++++++++++++++++---- |
| 1 file changed, 17 insertions(+), 4 deletions(-) |
| |
| diff --git a/libparted/arch/linux.c b/libparted/arch/linux.c |
| index a15854f..7f12f58 100644 |
| --- a/libparted/arch/linux.c |
| +++ b/libparted/arch/linux.c |
| @@ -2305,6 +2305,7 @@ zasprintf (const char *format, ...) |
| return r < 0 ? NULL : resultp; |
| } |
| |
| +#ifdef ENABLE_DEVICE_MAPPER |
| static char * |
| dm_canonical_path (PedDevice const *dev) |
| { |
| @@ -2327,14 +2328,21 @@ dm_canonical_path (PedDevice const *dev) |
| err: |
| return NULL; |
| } |
| +#endif |
| |
| static char* |
| _device_get_part_path (PedDevice const *dev, int num) |
| { |
| - char *devpath = (dev->type == PED_DEVICE_DM |
| - ? dm_canonical_path (dev) : dev->path); |
| - size_t path_len = strlen (devpath); |
| + char *devpath; |
| + size_t path_len; |
| char *result; |
| +#ifdef ENABLE_DEVICE_MAPPER |
| + devpath = (dev->type == PED_DEVICE_DM |
| + ? dm_canonical_path (dev) : dev->path); |
| +#else |
| + devpath = dev->path; |
| +#endif |
| + path_len = strlen (devpath); |
| /* Check for devfs-style /disc => /partN transformation |
| unconditionally; the system might be using udev with devfs rules, |
| and if not the test is harmless. */ |
| @@ -2350,8 +2358,10 @@ _device_get_part_path (PedDevice const *dev, int num) |
| ? "p" : ""); |
| result = zasprintf ("%s%s%d", devpath, p, num); |
| } |
| +#ifdef ENABLE_DEVICE_MAPPER |
| if (dev->type == PED_DEVICE_DM) |
| free (devpath); |
| +#endif |
| return result; |
| } |
| |
| @@ -2946,12 +2956,15 @@ _disk_sync_part_table (PedDisk* disk) |
| unsigned long long *length); |
| |
| |
| +#ifdef ENABLE_DEVICE_MAPPER |
| if (disk->dev->type == PED_DEVICE_DM) { |
| add_partition = _dm_add_partition; |
| remove_partition = _dm_remove_partition; |
| resize_partition = _dm_resize_partition; |
| get_partition_start_and_length = _dm_get_partition_start_and_length; |
| - } else { |
| + } else |
| +#endif |
| + { |
| add_partition = _blkpg_add_partition; |
| remove_partition = _blkpg_remove_partition; |
| #ifdef BLKPG_RESIZE_PARTITION |
| -- |
| 2.11.0 |
| |