diff --git a/packages/sysutils/parted/patches/parted-2.2-hi-major-sd-rh611691.diff b/packages/sysutils/parted/patches/parted-2.2-hi-major-sd-rh611691.diff new file mode 100644 index 0000000000..9a05eed179 --- /dev/null +++ b/packages/sysutils/parted/patches/parted-2.2-hi-major-sd-rh611691.diff @@ -0,0 +1,28 @@ +diff -up parted-2.1/libparted/arch/linux.c.original parted-2.1/libparted/arch/linux.c +--- parted-2.1/libparted/arch/linux.c.original 2010-07-06 15:05:19.921823935 +0900 ++++ parted-2.1/libparted/arch/linux.c 2010-07-06 16:42:16.420762063 +0900 +@@ -221,6 +221,14 @@ struct blkdev_ioctl_param { + #define SCSI_DISK5_MAJOR 69 + #define SCSI_DISK6_MAJOR 70 + #define SCSI_DISK7_MAJOR 71 ++#define SCSI_DISK8_MAJOR 128 ++#define SCSI_DISK9_MAJOR 129 ++#define SCSI_DISK10_MAJOR 130 ++#define SCSI_DISK11_MAJOR 131 ++#define SCSI_DISK12_MAJOR 132 ++#define SCSI_DISK13_MAJOR 133 ++#define SCSI_DISK14_MAJOR 134 ++#define SCSI_DISK15_MAJOR 135 + #define COMPAQ_SMART2_MAJOR 72 + #define COMPAQ_SMART2_MAJOR1 73 + #define COMPAQ_SMART2_MAJOR2 74 +@@ -259,7 +267,8 @@ struct blkdev_ioctl_param { + #define SCSI_BLK_MAJOR(M) ( \ + (M) == SCSI_DISK0_MAJOR \ + || (M) == SCSI_CDROM_MAJOR \ +- || ((M) >= SCSI_DISK1_MAJOR && (M) <= SCSI_DISK7_MAJOR)) ++ || ((M) >= SCSI_DISK1_MAJOR && (M) <= SCSI_DISK7_MAJOR) \ ++ || ((M) >= SCSI_DISK8_MAJOR && (M) <= SCSI_DISK15_MAJOR)) + + /* Maximum number of partitions supported by linux. */ + #define MAX_NUM_PARTS 64 diff --git a/packages/sysutils/parted/patches/parted-2.3-lpn.diff b/packages/sysutils/parted/patches/parted-2.3-lpn.diff new file mode 100644 index 0000000000..da9c3c2773 --- /dev/null +++ b/packages/sysutils/parted/patches/parted-2.3-lpn.diff @@ -0,0 +1,68 @@ +From 763d9aca0fd5c79c46243774c17b562013a93418 Mon Sep 17 00:00:00 2001 +From: Brian C. Lane +Date: Fri, 17 Sep 2010 09:21:24 -0700 +Subject: [PATCH] Handle syncing partition changes when using blkext majors (#634980) + +Also remove unused _device_get_partition_range function +--- + libparted/arch/linux.c | 37 ++++--------------------------------- + 1 files changed, 4 insertions(+), 33 deletions(-) + +diff --git a/libparted/arch/linux.c b/libparted/arch/linux.c +index 38f4e31..225d06b 100644 +--- a/libparted/arch/linux.c ++++ b/libparted/arch/linux.c +@@ -2391,35 +2391,6 @@ _blkpg_remove_partition (PedDisk* disk, int n) + } + + /* +- * The number of partitions that a device can have depends on the kernel. +- * If we don't find this value in /sys/block/DEV/range, we will use our own +- * value. +- */ +-static unsigned int +-_device_get_partition_range(PedDevice* dev) +-{ +- int range, r; +- char path[128]; +- FILE* fp; +- bool ok; +- +- r = snprintf(path, sizeof(path), "/sys/block/%s/range", +- last_component(dev->path)); +- if (r < 0 || r >= sizeof(path)) +- return MAX_NUM_PARTS; +- +- fp = fopen(path, "r"); +- if (!fp) +- return MAX_NUM_PARTS; +- +- ok = fscanf(fp, "%d", &range) == 1; +- fclose(fp); +- +- /* (range <= 0) is none sense.*/ +- return ok && range > 0 ? range : MAX_NUM_PARTS; +-} +- +-/* + * Sync the partition table in two step process: + * 1. Remove all of the partitions from the kernel's tables, but do not attempt + * removal of any partition for which the corresponding ioctl call fails. +@@ -2441,10 +2412,10 @@ _disk_sync_part_table (PedDisk* disk) + int lpn; + + /* lpn = largest partition number. */ +- if (ped_disk_get_max_supported_partition_count(disk, &lpn)) +- lpn = PED_MIN(lpn, _device_get_partition_range(disk->dev)); +- else +- lpn = _device_get_partition_range(disk->dev); ++ if (!ped_disk_get_max_supported_partition_count(disk, &lpn)) ++ lpn = 256; /* HDG: not pretty but there is no other way ++ as we must make sure any removed partitions ++ actually get removed from the kernels view */ + + /* Its not possible to support largest_partnum < 0. + * largest_partnum == 0 would mean does not support partitions. +-- +1.7.2.2 + diff --git a/packages/sysutils/parted/url b/packages/sysutils/parted/url index 4fb1b8256c..ee82b65033 100644 --- a/packages/sysutils/parted/url +++ b/packages/sysutils/parted/url @@ -1 +1 @@ -http://ftp.gnu.org/gnu/parted/parted-1.9.0.tar.gz +http://ftp.gnu.org/gnu/parted/parted-2.3.tar.gz