Date: Monday, November 2, 2009 @ 09:18:22 Author: tpowa Revision: 57818
removed unneeded patches Deleted: dmraid/trunk/dmraid-1.0.0.rc15-isw-raid10.patch dmraid/trunk/dmraid-1.0.0.rc15-isw-serial.patch dmraid/trunk/dmraid-1.0.0.rc15-rm_partitions.patch dmraid/trunk/dmraid-1.0.0.rc15-whitespace.patch ---------------------------------------+ dmraid-1.0.0.rc15-isw-raid10.patch | 12 - dmraid-1.0.0.rc15-isw-serial.patch | 88 ------------ dmraid-1.0.0.rc15-rm_partitions.patch | 222 -------------------------------- dmraid-1.0.0.rc15-whitespace.patch | 16 -- 4 files changed, 338 deletions(-) Deleted: dmraid-1.0.0.rc15-isw-raid10.patch =================================================================== --- dmraid-1.0.0.rc15-isw-raid10.patch 2009-11-02 14:17:33 UTC (rev 57817) +++ dmraid-1.0.0.rc15-isw-raid10.patch 2009-11-02 14:18:22 UTC (rev 57818) @@ -1,12 +0,0 @@ -diff -up 1.0.0.rc15/lib/format/ataraid/isw.c~ 1.0.0.rc15/lib/format/ataraid/isw.c ---- 1.0.0.rc15/lib/format/ataraid/isw.c~ 2008-09-17 08:58:52.000000000 -0400 -+++ 1.0.0.rc15/lib/format/ataraid/isw.c 2009-02-05 07:04:35.576126020 -0500 -@@ -155,7 +155,7 @@ name(struct lib_context *lc, struct raid - - while (i--) { - if (disk == isw->disk + i) { -- id = i % 2; -+ id = i / 2; - goto ok; - } - } Deleted: dmraid-1.0.0.rc15-isw-serial.patch =================================================================== --- dmraid-1.0.0.rc15-isw-serial.patch 2009-11-02 14:17:33 UTC (rev 57817) +++ dmraid-1.0.0.rc15-isw-serial.patch 2009-11-02 14:18:22 UTC (rev 57818) @@ -1,88 +0,0 @@ -diff -up 1.0.0.rc15/lib/format/ataraid/isw.c~ 1.0.0.rc15/lib/format/ataraid/isw.c ---- 1.0.0.rc15/lib/format/ataraid/isw.c~ 2009-04-10 14:12:14.000000000 +0200 -+++ 1.0.0.rc15/lib/format/ataraid/isw.c 2009-04-10 14:38:56.000000000 +0200 -@@ -81,15 +81,43 @@ is_raid10(struct isw_dev *dev) - } - - /* Find a disk table slot by serial number. */ -+static const char *dev_info_serial_to_isw(const char *di_serial) -+{ -+ static char isw_serial[1024]; -+ -+ int i, isw_serial_len = 0; -+ -+ for (i = 0; di_serial[i] && isw_serial_len < 1023; i++) { -+ if (((unsigned char)di_serial[i]) > 0x20) { -+ /* ':' is reserved for use in placeholder serial -+ * numbers for missing disks */ -+ if (di_serial[i] == ':') -+ isw_serial[isw_serial_len] = ';'; -+ else -+ isw_serial[isw_serial_len] = di_serial[i]; -+ isw_serial_len++; -+ } -+ } -+ isw_serial[isw_serial_len] = 0; -+ -+ if (isw_serial_len > MAX_RAID_SERIAL_LEN) -+ memmove(isw_serial, -+ isw_serial + (isw_serial_len - MAX_RAID_SERIAL_LEN), -+ MAX_RAID_SERIAL_LEN); -+ -+ return isw_serial; -+} -+ - static struct isw_disk * - _get_disk(struct isw *isw, struct dev_info *di) - { - if (di->serial) { - int i = isw->num_disks; - struct isw_disk *disk = isw->disk; -+ const char *isw_serial = dev_info_serial_to_isw(di->serial); - - while (i--) { -- if (!strncmp(di->serial, (const char *) disk[i].serial, -+ if (!strncmp(isw_serial, (const char *) disk[i].serial, - MAX_RAID_SERIAL_LEN)) - return disk + i; - } -@@ -866,7 +894,8 @@ rd_by_serial(struct raid_set *rs, const - - list_for_each_entry(rd, &rs->devs, devs) { - if (rd->di && -- !strncmp(rd->di->serial, serial, MAX_RAID_SERIAL_LEN)) -+ !strncmp(dev_info_serial_to_isw(rd->di->serial), serial, -+ MAX_RAID_SERIAL_LEN)) - return rd; - } - -@@ -1297,7 +1326,8 @@ isw_config_disks(struct lib_context *lc, - struct raid_dev *rd; - - list_for_each_entry(rd, &rs->devs, devs) { -- strncpy((char *) disk[i].serial, rd->di->serial, -+ strncpy((char *) disk[i].serial, -+ dev_info_serial_to_isw(rd->di->serial), - MAX_RAID_SERIAL_LEN); - disk[i].totalBlocks = rd->di->sectors; - -@@ -2421,7 +2451,8 @@ update_metadata(struct lib_context *lc, - while (i--) { - /* Check if the disk is listed. */ - list_for_each_entry(di, LC_DI(lc), list) { -- if (!strncmp(di->serial, (const char *) disk[i].serial, -+ if (!strncmp(dev_info_serial_to_isw(di->serial), -+ (const char *) disk[i].serial, - MAX_RAID_SERIAL_LEN)) - goto goon; - } -@@ -2517,7 +2548,8 @@ update_metadata(struct lib_context *lc, - new_disk->status = CONFIG_ON_DISK | - DISK_SMART_EVENT_SUPPORTED | - CLAIMED_DISK | DETECTED_DISK | USABLE_DISK | CONFIGURED_DISK; -- strncpy((char *) new_disk->serial, di->serial, MAX_RAID_SERIAL_LEN); -+ strncpy((char *) new_disk->serial, dev_info_serial_to_isw(di->serial), -+ MAX_RAID_SERIAL_LEN); - - /* build new isw_disk array */ - for (i = 0; i < isw->num_disks; i++) { Deleted: dmraid-1.0.0.rc15-rm_partitions.patch =================================================================== --- dmraid-1.0.0.rc15-rm_partitions.patch 2009-11-02 14:17:33 UTC (rev 57817) +++ dmraid-1.0.0.rc15-rm_partitions.patch 2009-11-02 14:18:22 UTC (rev 57818) @@ -1,222 +0,0 @@ -diff -up 1.0.0.rc15/include/dmraid/lib_context.h.rmparts 1.0.0.rc15/include/dmraid/lib_context.h ---- 1.0.0.rc15/include/dmraid/lib_context.h.rmparts 2008-06-20 16:17:35.000000000 +0200 -+++ 1.0.0.rc15/include/dmraid/lib_context.h 2009-02-13 12:03:57.000000000 +0100 -@@ -169,6 +169,7 @@ enum action { - PARTCHAR = 0x20000000, - - #endif -+ RMPARTITIONS = 0x40000000, - }; - - /* Arguments allowed ? */ -diff -up 1.0.0.rc15/lib/Makefile.in.rmparts 1.0.0.rc15/lib/Makefile.in ---- 1.0.0.rc15/lib/Makefile.in.rmparts 2008-06-11 15:07:04.000000000 +0200 -+++ 1.0.0.rc15/lib/Makefile.in 2009-02-13 12:03:57.000000000 +0100 -@@ -12,6 +12,7 @@ SOURCES=\ - activate/activate.c \ - activate/devmapper.c \ - device/ata.c \ -+ device/partition.c \ - device/scan.c \ - device/scsi.c \ - display/display.c \ -diff -up 1.0.0.rc15/lib/device/dev-io.h.rmparts 1.0.0.rc15/lib/device/dev-io.h ---- 1.0.0.rc15/lib/device/dev-io.h.rmparts 2008-06-12 12:54:32.000000000 +0200 -+++ 1.0.0.rc15/lib/device/dev-io.h 2009-02-13 12:03:57.000000000 +0100 -@@ -19,5 +19,6 @@ - - int discover_devices(struct lib_context *lc, char **devnodes); - int removable_device(struct lib_context *lc, char *dev_path); -+int remove_device_partitions(struct lib_context *lc, void *rs, int dummy); - - #endif -diff -up /dev/null 1.0.0.rc15/lib/device/partition.c ---- /dev/null 2009-02-13 08:38:43.364262886 +0100 -+++ 1.0.0.rc15/lib/device/partition.c 2009-02-13 12:03:57.000000000 +0100 -@@ -0,0 +1,59 @@ -+/* -+ * Copyright (C) 2009 Hans de Goede <hdego...@redhat.com>, Red Hat Inc. -+ * All rights reserved. -+ * -+ * See file LICENSE at the top of this source tree for license information. -+ */ -+#include <linux/blkpg.h> -+#include <sys/ioctl.h> -+#include <errno.h> -+#include <fcntl.h> -+#include "internal.h" -+ -+static int -+_remove_subset_partitions(struct lib_context *lc, struct raid_set *rs) -+{ -+ struct raid_dev *rd; -+ struct blkpg_partition part = { 0, }; -+ struct blkpg_ioctl_arg io = { -+ .op = BLKPG_DEL_PARTITION, -+ .datalen = sizeof(part), -+ .data = &part, -+ }; -+ -+ list_for_each_entry(rd, &rs->devs, devs) { -+ int fd = open(rd->di->path, O_RDWR); -+ if (fd < 0) -+ LOG_ERR(lc, 0, "opening %s: %s\n", rd->di->path, -+ strerror(errno)); -+ -+ /* There is no way to enumerate partitions */ -+ for (part.pno = 1; part.pno <= 256; part.pno++) { -+ if (ioctl(fd, BLKPG, &io) < 0 && errno != ENXIO && -+ (part.pno < 16 || errno != EINVAL)) -+ LOG_ERR(lc, 0, -+ "removing part %d from %s: %s\n", -+ part.pno, rd->di->path, -+ strerror(errno)); -+ } -+ } -+ return 1; -+} -+ -+/* Remove the partition block devices (ie sda1) from block devices (ie sda) -+ used in the set, so that things like hal / blkid won't try to access the -+ disks directly */ -+int -+remove_device_partitions(struct lib_context *lc, void *v, int dummy) -+{ -+ struct raid_set *subset, *rs = v; -+ -+ /* Recursively walk down the chain of stacked RAID sets */ -+ list_for_each_entry(subset, &rs->sets, list) { -+ /* Remove partitions from devices of set below this one */ -+ if (!T_GROUP(rs) && !remove_device_partitions(lc, subset, 0)) -+ return 0; -+ } -+ -+ return _remove_subset_partitions(lc, rs); -+} -diff -up 1.0.0.rc15/lib/metadata/metadata.c.rmparts 1.0.0.rc15/lib/metadata/metadata.c ---- 1.0.0.rc15/lib/metadata/metadata.c.rmparts 2008-09-17 14:58:31.000000000 +0200 -+++ 1.0.0.rc15/lib/metadata/metadata.c 2009-02-13 12:03:57.000000000 +0100 -@@ -2147,6 +2147,9 @@ lib_perform(struct lib_context *lc, enum - if (get_metadata(lc, action, p, argv)) - ret = p->post(lc, p->pre ? p->pre(p->arg) : p->arg); - -+ if (ret && (RMPARTITIONS & action)) -+ process_sets(lc, remove_device_partitions, 0, SETS); -+ - if (LOCK == p->lock) - unlock_resource(lc, NULL); - -diff -up 1.0.0.rc15/man/dmraid.8.rmparts 1.0.0.rc15/man/dmraid.8 ---- 1.0.0.rc15/man/dmraid.8.rmparts 2008-06-11 15:07:20.000000000 +0200 -+++ 1.0.0.rc15/man/dmraid.8 2009-02-13 12:10:11.000000000 +0100 -@@ -8,6 +8,7 @@ dmraid \- discover, configure and activa - [-f|--format FORMAT[,FORMAT...]] - [{-P|--partchar} CHAR] - [-p|--no_partitions] -+ [-Z|--rm_partitions] - [--separator SEPARATOR] - [-t|--test] - [RAID-set...] -@@ -110,7 +111,11 @@ In case metadata format handlers are cho - Useful if devices have multiple metadata signatures. - When activating RAID sets, - .B -p --disables the activation of partitions on them. -+disables the activation of partitions on them, and -+.B -Z -+will make dmraid tell the kernel to remove the partitions from the disks -+underlying the set, ie if sda is part of the set, remove sda1, sda2, etc. -+This prevents applications from directly accessiong the disks bypassing dmraid. - RAID set names given on command line don't need to be fully specified - (eg, "dmraid -ay sil" would activate all discovered Silicon Image Medley - RAID sets). -diff -up 1.0.0.rc15/tools/commands.c.rmparts 1.0.0.rc15/tools/commands.c ---- 1.0.0.rc15/tools/commands.c.rmparts 2008-06-20 22:25:33.000000000 +0200 -+++ 1.0.0.rc15/tools/commands.c 2009-02-13 12:03:57.000000000 +0100 -@@ -38,7 +38,7 @@ static char const *short_opts = "a:hipP: - #endif - "rR:s::tv" - #endif -- "VC:S::"; -+ "VC:S::Z"; - - #ifdef HAVE_GETOPTLONG - static struct option long_opts[] = { -@@ -73,6 +73,7 @@ static struct option long_opts[] = { - {"version", no_argument, NULL, 'V'}, - {"create", required_argument, NULL, 'C'}, - {"spare", optional_argument, NULL, 'S'}, -+ {"rm_partitions", no_argument, NULL, 'Z'}, - {NULL, no_argument, NULL, 0} - }; - #endif /* #ifdef HAVE_GETOPTLONG */ -@@ -209,6 +210,7 @@ help(struct lib_context *lc, int arg) - "\t[-f|--format FORMAT[,FORMAT...]]\n" - "\t[-P|--partchar CHAR]\n" - "\t[-p|--no_partitions]\n" -+ "\t[-Z|--rm_partitions]\n" - "\t[--separator SEPARATOR]\n" "\t[RAID-set...]\n", c); - log_print(lc, "%s\t{-h|--help}\n", c); - log_print(lc, "%s\t{-V/--version}\n", c); -@@ -221,7 +223,7 @@ help(struct lib_context *lc, int arg) - "\t[-f|--format FORMAT[,FORMAT...]]\n" - "\t[-P|--partchar CHAR]\n" "\t[-p|--no_partitions]\n" - "\t[--separator SEPARATOR]\n" "\t[-t|--test]\n" -- "\t[RAID-set...]\n", c); -+ "\t[-Z|--rm_partitions] [RAID-set...]\n", c); - log_print(lc, - "%s\t{-b|--block_devices} *\n" - "\t[-c|--display_columns][FIELD[,FIELD...]]...\n" -@@ -274,7 +276,7 @@ static struct actions actions[] = { - UNDEF, /* Set in check_activate() by mandatory option argument. */ - UNDEF, - ACTIVATE | DEACTIVATE | FORMAT | HELP | IGNORELOCKING | NOPARTITIONS | -- SEPARATOR -+ SEPARATOR | RMPARTITIONS - #ifndef DMRAID_MINI - | DBG | TEST | VERBOSE - #endif -@@ -293,7 +295,8 @@ static struct actions actions[] = { - # endif - | RAID_DEVICES | RAID_SETS, - ACTIVE | INACTIVE | COLUMN | DBG | DUMP | DMERASE | GROUP | HELP | -- IGNORELOCKING | NOPARTITIONS | SEPARATOR | TEST | VERBOSE -+ IGNORELOCKING | NOPARTITIONS | SEPARATOR | TEST | VERBOSE | -+ RMPARTITIONS - #else - , UNDEF - #endif -@@ -310,7 +313,7 @@ static struct actions actions[] = { - {'P', - PARTCHAR, - ACTIVATE | DEACTIVATE, -- FORMAT | HELP | IGNORELOCKING | SEPARATOR -+ FORMAT | HELP | IGNORELOCKING | SEPARATOR | RMPARTITIONS - #ifndef DMRAID_MINI - | DBG | TEST | VERBOSE - #endif -@@ -323,7 +326,7 @@ static struct actions actions[] = { - {'p', - NOPARTITIONS, - ACTIVATE | DEACTIVATE, -- FORMAT | HELP | IGNORELOCKING | SEPARATOR -+ FORMAT | HELP | IGNORELOCKING | SEPARATOR | RMPARTITIONS - #ifndef DMRAID_MINI - | DBG | TEST | VERBOSE - #endif -@@ -573,6 +576,15 @@ static struct actions actions[] = { - check_spare_argument, - LC_HOT_SPARE_SET, - }, -+ {'Z', -+ RMPARTITIONS, -+ ACTIVATE, /* We cannot undo this on DEACTIVATE ! */ -+ DBG | FORMAT | HELP | IGNORELOCKING | NOPARTITIONS | VERBOSE | -+ SEPARATOR, -+ ARGS, -+ NULL, -+ 0, -+ }, - }; - - /* Deleted: dmraid-1.0.0.rc15-whitespace.patch =================================================================== --- dmraid-1.0.0.rc15-whitespace.patch 2009-11-02 14:17:33 UTC (rev 57817) +++ dmraid-1.0.0.rc15-whitespace.patch 2009-11-02 14:18:22 UTC (rev 57818) @@ -1,16 +0,0 @@ -=================================================================== -RCS file: /cvs/dm/dmraid/lib/device/scsi.c,v -retrieving revision 1.3 -retrieving revision 1.4 -diff -u -r1.3 -r1.4 ---- dmraid/lib/device/scsi.c 2008/09/19 14:31:11 1.3 -+++ dmraid/lib/device/scsi.c 2008/10/31 12:22:35 1.4 -@@ -110,7 +110,7 @@ - } - - ret = ret && -- (di->serial = dbg_strdup((char *) &response[p->start + 1])); -+ (di->serial = dbg_strdup(remove_white_space (lc, (char *) &response[p->start + 1], serial_len))); - } - - dbg_free(response);