From 6c3525dc27a923609253d3b5c6785f836ac41551 Mon Sep 17 00:00:00 2001 From: David Cantrell Date: Tue, 7 Aug 2007 18:11:31 +0000 Subject: [PATCH] - Detect Xen virtual block devices and set model name appropriately --- parted-1.8.6-xvd.patch | 50 ++++++++++++++++++++++++++++++++++++++++++ parted.spec | 7 +++++- 2 files changed, 56 insertions(+), 1 deletion(-) create mode 100644 parted-1.8.6-xvd.patch diff --git a/parted-1.8.6-xvd.patch b/parted-1.8.6-xvd.patch new file mode 100644 index 0000000..17ec29a --- /dev/null +++ b/parted-1.8.6-xvd.patch @@ -0,0 +1,50 @@ +diff -up parted-1.8.6/libparted/arch/linux.c.xvd parted-1.8.6/libparted/arch/linux.c +--- parted-1.8.6/libparted/arch/linux.c.xvd 2007-08-07 14:05:59.000000000 -0400 ++++ parted-1.8.6/libparted/arch/linux.c 2007-08-07 14:07:13.000000000 -0400 +@@ -248,6 +248,7 @@ struct blkdev_ioctl_param { + #define VIODASD_MAJOR 112 + #define SX8_MAJOR1 160 + #define SX8_MAJOR2 161 ++#define XVD_MAJOR 202 + + #define SCSI_BLK_MAJOR(M) ( \ + (M) == SCSI_DISK0_MAJOR \ +@@ -450,6 +451,8 @@ _device_probe_type (PedDevice* dev) + } else if (_is_dm_major(dev_major)) { + dev->type = PED_DEVICE_DM; + #endif ++ } else if (dev_major == XVD_MAJOR && (dev_minor % 0x10 == 0)) { ++ dev->type = PED_DEVICE_XVD; + } else { + dev->type = PED_DEVICE_UNKNOWN; + } +@@ -1152,6 +1155,11 @@ linux_new (const char* path) + break; + #endif + ++ case PED_DEVICE_XVD: ++ if (!init_generic (dev, _("Xen Virtual Block Device"))) ++ goto error_free_arch_specific; ++ break; ++ + case PED_DEVICE_UNKNOWN: + if (!init_generic (dev, _("Unknown"))) + goto error_free_arch_specific; +diff -up parted-1.8.6/include/parted/device.h.xvd parted-1.8.6/include/parted/device.h +--- parted-1.8.6/include/parted/device.h.xvd 2007-01-12 10:15:10.000000000 -0500 ++++ parted-1.8.6/include/parted/device.h 2007-08-07 14:07:13.000000000 -0400 +@@ -45,11 +45,11 @@ typedef enum { + PED_DEVICE_UBD = 8, + PED_DEVICE_DASD = 9, + PED_DEVICE_VIODASD = 10, +- PED_DEVICE_SX8 = 11 ++ PED_DEVICE_SX8 = 11, + #ifdef ENABLE_DEVICE_MAPPER +- , +- PED_DEVICE_DM = 12 ++ PED_DEVICE_DM = 12, + #endif ++ PED_DEVICE_XVD = 13 + } PedDeviceType; + + typedef struct _PedDevice PedDevice; diff --git a/parted.spec b/parted.spec index b8baaee..329ead1 100644 --- a/parted.spec +++ b/parted.spec @@ -4,7 +4,7 @@ Summary: The GNU disk partition manipulation program Name: parted Version: 1.8.6 -Release: 5%{?dist} +Release: 6%{?dist} License: GPL Group: Applications/System URL: http://www.gnu.org/software/parted @@ -14,6 +14,7 @@ Patch0: %{name}-1.8.6-warnings.patch Patch1: %{name}-1.8.6-notransname.patch Patch2: %{name}-1.8.6-off-by-one.patch Patch3: %{name}-1.8.6-primary-boundary.patch +Patch4: %{name}-1.8.6-xvd.patch Buildroot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) BuildRequires: e2fsprogs-devel readline-devel ncurses-devel @@ -47,6 +48,7 @@ Parted library, you need to install this package. %patch1 -p1 -b .notransname %patch2 -p1 -b .offbyone %patch3 -p1 -b .boundary +%patch4 -p1 -b .xvd %build %configure --enable-device-mapper --enable-selinux --disable-static @@ -91,6 +93,9 @@ fi %{_libdir}/pkgconfig/libparted.pc %changelog +* Tue Aug 07 2007 David Cantrell - 1.8.6-6 +- Detect Xen virtual block devices and set model name appropriately + * Thu Apr 19 2007 David Cantrell - 1.8.6-5 - Spec file cleanups for merge review (#226230)