rpms/dmraid/F-7 dmraid-1.0.0.rc14-ERROR.patch, NONE, 1.1 dmraid-1.0.0.rc14-UUID.patch, NONE, 1.1 dmraid.spec, 1.83, 1.84

Ian Kent (iankent) fedora-extras-commits at redhat.com
Wed Nov 14 03:54:09 UTC 2007


Author: iankent

Update of /cvs/pkgs/rpms/dmraid/F-7
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv26855

Modified Files:
	dmraid.spec 
Added Files:
	dmraid-1.0.0.rc14-ERROR.patch dmraid-1.0.0.rc14-UUID.patch 
Log Message:
* Wed Nov 14 2007 Ian Kent <ikent at redhat.com> - 1.0.0.rc14-5
- Bug 379911: dmraid needs to generate UUIDs for lib device-mapper
- Bug 379951: dmraid needs to activate device-mapper mirror resynchronization error handling


dmraid-1.0.0.rc14-ERROR.patch:

--- NEW FILE dmraid-1.0.0.rc14-ERROR.patch ---
--- 1.0.0.rc14/lib/activate/activate.c	2006-09-15 15:22:44.000000000 +0200
+++ current/lib/activate/activate.c	2007-11-13 13:48:47.000000000 +0100
@@ -398,7 +398,11 @@
 			goto err;
 	}
 
-	return 1;
+	/* Append the flag/feature required for dmraid1 
+	 * event handling in the kernel driver 
+	 */
+	if(p_fmt(lc, table, " 1 handle_errors"))
+		return 1;
 
    err:
 	return log_alloc_err(lc, __func__);

dmraid-1.0.0.rc14-UUID.patch:

--- NEW FILE dmraid-1.0.0.rc14-UUID.patch ---
--- 1.0.0.rc14/lib/activate/devmapper.c	2006-09-15 15:52:11.000000000 +0200
+++ current/lib/activate/devmapper.c	2007-11-13 13:51:11.000000000 +0100
@@ -21,6 +21,8 @@
 #include "internal.h"
 #include "devmapper.h"
 
+#include <linux/dm-ioctl.h>
+
 /* Make up a dm path. */
 char *mkdm_path(struct lib_context *lc, const char *name)
 {
@@ -147,24 +149,46 @@
 	return handle_table(lc, NULL, table, get_target_list());
 }
 
+/* Build a UUID for a dmraid device 
+ * Return 1 for sucess; 0 for failure*/
+static int dmraid_uuid(char *uuid, struct lib_context *lc,
+		       struct raid_set *rs, uint uuid_len) {
+	/* Clear garbage data from uuid string */
+	memset(uuid, 0, uuid_len);
+	
+	/* Insert volume name into string */
+	return !!memcpy(uuid, rs->name, strlen(rs->name));
+}
+
 /* Create a task, set its name and run it. */
 static int run_task(struct lib_context *lc, struct raid_set *rs,
 		    char *table, int type)
 {
+	/* DM_UUID_LEN is defined in dm-ioctl.h as 129 characters;
+	 * though not all 129 must be used (md uses just 16 from 
+	 * a quick review of md.c. 
+	 * We will be using: (len vol grp name)*/ 
+	char uuid[DM_UUID_LEN];
 	int ret;
 	struct dm_task *dmt;
 
 	_init_dm();
-	ret = (dmt = dm_task_create(type)) && dm_task_set_name(dmt, rs->name);
+	ret = (dmt = dm_task_create(type)) &&
+	      dm_task_set_name(dmt, rs->name);
 	if (ret && table)
 		ret = parse_table(lc, dmt, table);
 
-	if (ret)
+	if (ret) {
+		if (DM_DEVICE_CREATE == type &&
+		    dmraid_uuid(uuid, lc, rs, DM_UUID_LEN))
+				dm_task_set_uuid(dmt, uuid);
 		ret = dm_task_run(dmt);
+	}
 
 	_exit_dm(dmt);
 	return ret;
 }
+	
 /* Create a mapped device. */
 int dm_create(struct lib_context *lc, struct raid_set *rs, char *table)
 {


Index: dmraid.spec
===================================================================
RCS file: /cvs/pkgs/rpms/dmraid/F-7/dmraid.spec,v
retrieving revision 1.83
retrieving revision 1.84
diff -u -r1.83 -r1.84
--- dmraid.spec	22 Oct 2007 08:17:03 -0000	1.83
+++ dmraid.spec	14 Nov 2007 03:53:37 -0000	1.84
@@ -7,7 +7,7 @@
 Summary: Device-mapper RAID tool and library.
 Name: dmraid
 Version: 1.0.0.rc14
-Release: 4%{?dist}
+Release: 5%{?dist}
 License: GPL
 Group: System Environment/Base
 URL: http://people.redhat.com/heinzm/sw/dmraid
@@ -20,6 +20,8 @@
 Source: ftp://people.redhat.com/heinzm/sw/dmraid/src/%{name}-%{version}.tar.bz2
 Patch0: dmraid-1.0.0.rc14-jmicron-name.patch
 Patch1: dmraid-1.0.0.rc14-solitary-meta-block.patch
+Patch2: dmraid-1.0.0.rc14-UUID.patch
+Patch3: dmraid-1.0.0.rc14-ERROR.patch
 
 %description
 DMRAID supports RAID device discovery, RAID set activation and display of
@@ -37,6 +39,8 @@
 %setup -q -n dmraid/%{version}
 %patch0 -p1 -b .jmicron-name
 %patch1 -p1 -b .solitary-meta-block
+%patch2 -p1 -b .UUID
+%patch3 -p1 -b .ERROR
 
 %build
 %configure --prefix=${RPM_BUILD_ROOT}/usr --sbindir=${RPM_BUILD_ROOT}/sbin --libdir=${RPM_BUILD_ROOT}/%{_libdir} --mandir=${RPM_BUILD_ROOT}/%{_mandir} --includedir=${RPM_BUILD_ROOT}/%{_includedir} --enable-debug --enable-libselinux --enable-libsepol --enable-static_link
@@ -82,6 +86,10 @@
 %{_libdir}/libdmraid.so
 
 %changelog
+* Wed Nov 14 2007 Ian Kent <ikent at redhat.com> - 1.0.0.rc14-5
+- Bug 379911: dmraid needs to generate UUIDs for lib device-mapper
+- Bug 379951: dmraid needs to activate device-mapper mirror resynchronization error handling
+
 * Tue Oct 22 2007 Ian Kent <ikent at redhat.com> - 1.0.0.rc14-4
 - Fix SEGV on "dmraid -r -E" (bz 236891).
 




More information about the fedora-extras-commits mailing list