forked from pool/dmraid
This commit is contained in:
parent
cdc2f9118c
commit
c22ea25ade
@ -1,3 +1,11 @@
|
|||||||
|
-------------------------------------------------------------------
|
||||||
|
Mon Apr 19 23:11:39 UTC 2010 - nfbrown@novell.com
|
||||||
|
|
||||||
|
- handle_space: cope with arrays with spaces in the name stored
|
||||||
|
in the metadata (bnc#470696)
|
||||||
|
- remove_trylock: pthreads_mutex_trylock is still very new in
|
||||||
|
glibc so safest not to use it yet (bnc#594388)
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Tue Feb 2 03:46:18 UTC 2010 - nfbrown@novell.com
|
Tue Feb 2 03:46:18 UTC 2010 - nfbrown@novell.com
|
||||||
|
|
||||||
|
@ -28,7 +28,7 @@ Group: System/Base
|
|||||||
AutoReqProv: on
|
AutoReqProv: on
|
||||||
Summary: A Device-Mapper Software RAID Support Tool
|
Summary: A Device-Mapper Software RAID Support Tool
|
||||||
Version: 1.0.0.rc16
|
Version: 1.0.0.rc16
|
||||||
Release: 1
|
Release: 2
|
||||||
Source: ftp://people.redhat.com/heinzm/sw/dmraid/src/dmraid-%{version}.tar.bz2
|
Source: ftp://people.redhat.com/heinzm/sw/dmraid/src/dmraid-%{version}.tar.bz2
|
||||||
Source1: sysconfig.dmraid
|
Source1: sysconfig.dmraid
|
||||||
Source2: boot.dmraid
|
Source2: boot.dmraid
|
||||||
@ -38,6 +38,8 @@ Source5: mkinitrd-boot.sh
|
|||||||
Patch1: dmraid-1.0.0.rc16-cvs-2010-02-02.patch
|
Patch1: dmraid-1.0.0.rc16-cvs-2010-02-02.patch
|
||||||
Patch2: dmraid-1.0.0.rc13-geometry.patch
|
Patch2: dmraid-1.0.0.rc13-geometry.patch
|
||||||
Patch3: lib-install.patch
|
Patch3: lib-install.patch
|
||||||
|
Patch4: handle_spaces
|
||||||
|
Patch5: remove_trylock
|
||||||
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
||||||
PreReq: %fillup_prereq
|
PreReq: %fillup_prereq
|
||||||
|
|
||||||
@ -72,6 +74,8 @@ Authors:
|
|||||||
%patch1 -p1
|
%patch1 -p1
|
||||||
%patch2 -p1
|
%patch2 -p1
|
||||||
%patch3 -p1
|
%patch3 -p1
|
||||||
|
%patch4 -p1
|
||||||
|
%patch5 -p2
|
||||||
cp %{SOURCE3} .
|
cp %{SOURCE3} .
|
||||||
|
|
||||||
%build
|
%build
|
||||||
|
73
handle_spaces
Normal file
73
handle_spaces
Normal file
@ -0,0 +1,73 @@
|
|||||||
|
---
|
||||||
|
include/dmraid/misc.h | 1 +
|
||||||
|
lib/format/ataraid/isw.c | 7 ++++++-
|
||||||
|
lib/format/ddf/ddf1.c | 1 +
|
||||||
|
lib/misc/misc.c | 14 ++++++++++++++
|
||||||
|
4 files changed, 22 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
|
--- 1.0.0.rc16.orig/include/dmraid/misc.h
|
||||||
|
+++ 1.0.0.rc16/include/dmraid/misc.h
|
||||||
|
@@ -18,6 +18,7 @@ extern void libdmraid_exit(struct lib_co
|
||||||
|
|
||||||
|
extern void sysfs_workaround(struct lib_context *lc);
|
||||||
|
extern void mk_alpha(struct lib_context *lc, char *str, size_t len);
|
||||||
|
+extern void mk_alphanum(struct lib_context *lc, char *str, size_t len);
|
||||||
|
extern char *get_basename(struct lib_context *lc, char *str);
|
||||||
|
extern char *get_dirname(struct lib_context *lc, char *str);
|
||||||
|
extern char *remove_white_space(struct lib_context *lc, char *str, size_t len);
|
||||||
|
--- 1.0.0.rc16.orig/lib/format/ataraid/isw.c
|
||||||
|
+++ 1.0.0.rc16/lib/format/ataraid/isw.c
|
||||||
|
@@ -169,6 +169,7 @@ static size_t
|
||||||
|
_name(struct lib_context *lc, struct isw *isw, char *str, size_t len,
|
||||||
|
enum name_type nt, int num, struct isw_dev *dev, struct raid_dev *rd)
|
||||||
|
{
|
||||||
|
+ int n;
|
||||||
|
struct {
|
||||||
|
const char *fmt, *what;
|
||||||
|
} formats[] = {
|
||||||
|
@@ -189,7 +190,11 @@ _name(struct lib_context *lc, struct isw
|
||||||
|
f += (is_raid10(dev) ? 1 : 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
- return snprintf(str, len, f->fmt, isw->family_num, f->what, num);
|
||||||
|
+ n = snprintf(str, len, f->fmt, isw->family_num, f->what, num);
|
||||||
|
+ /* As '->volume' could contain anything, we need to sanitise the name */
|
||||||
|
+ if (str)
|
||||||
|
+ mk_alphanum(lc, str, n);
|
||||||
|
+ return n;
|
||||||
|
}
|
||||||
|
|
||||||
|
static char *
|
||||||
|
--- 1.0.0.rc16.orig/lib/format/ddf/ddf1.c
|
||||||
|
+++ 1.0.0.rc16/lib/format/ddf/ddf1.c
|
||||||
|
@@ -689,6 +689,7 @@ name(struct lib_context *lc, struct ddf1
|
||||||
|
i = prefix + 16;
|
||||||
|
while (!isgraph(buf[--i]));
|
||||||
|
buf[i + 1] = 0;
|
||||||
|
+ mk_alphanum(lc, buf, i);
|
||||||
|
} else {
|
||||||
|
char *b;
|
||||||
|
|
||||||
|
--- 1.0.0.rc16.orig/lib/misc/misc.c
|
||||||
|
+++ 1.0.0.rc16/lib/misc/misc.c
|
||||||
|
@@ -66,6 +66,20 @@ mk_alpha(struct lib_context *lc, char *s
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
+/* Convert a string to only have alphanum or '-' or '_'.
|
||||||
|
+ * All others become '_'
|
||||||
|
+ */
|
||||||
|
+void
|
||||||
|
+mk_alphanum(struct lib_context *lc, char *str, size_t len)
|
||||||
|
+{
|
||||||
|
+ for (; len && *str; len--, str++) {
|
||||||
|
+ if (!isalnum(*str) &&
|
||||||
|
+ *str != '-' &&
|
||||||
|
+ *str != '_')
|
||||||
|
+ *str = '_';
|
||||||
|
+ }
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
/* Remove any whitespace from a string. */
|
||||||
|
char *
|
||||||
|
remove_white_space(struct lib_context *lc, char *str, size_t size)
|
35
remove_trylock
Normal file
35
remove_trylock
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
Remove call to pthreads_mutex_trylock
|
||||||
|
|
||||||
|
Reference bnc
|
||||||
|
594388
|
||||||
|
This appears only to be in very recent releases of glibc.
|
||||||
|
Its presence causes
|
||||||
|
|
||||||
|
/sbin/dmraid -ay -p
|
||||||
|
The dynamic shared library "libdmraid-events-isw.so" could not be loaded:
|
||||||
|
/lib/libdmraid-events-isw.so: undefined symbol: pthread_mutex_trylock
|
||||||
|
|
||||||
|
on openSUSE 11.3, it is is not used for anything except a simple
|
||||||
|
logging message.
|
||||||
|
|
||||||
|
Signed-off-by: NeilBrown <neilb@suse.de>
|
||||||
|
|
||||||
|
---
|
||||||
|
1.0.0.rc16/lib/events/libdmraid-events-isw.c | 6 +-----
|
||||||
|
1 file changed, 1 insertion(+), 5 deletions(-)
|
||||||
|
|
||||||
|
--- dmraid.orig/1.0.0.rc16/lib/events/libdmraid-events-isw.c
|
||||||
|
+++ dmraid/1.0.0.rc16/lib/events/libdmraid-events-isw.c
|
||||||
|
@@ -1433,11 +1433,7 @@ void process_event(struct dm_task *dmt,
|
||||||
|
/*
|
||||||
|
* Make sure, events are processed sequentially per RAID set.
|
||||||
|
*/
|
||||||
|
- if (pthread_mutex_trylock(&rs->event_mutex)) {
|
||||||
|
- syslog(LOG_NOTICE,
|
||||||
|
- " Another thread is handling an event. Waiting...");
|
||||||
|
- pthread_mutex_lock(&rs->event_mutex);
|
||||||
|
- }
|
||||||
|
+ pthread_mutex_lock(&rs->event_mutex);
|
||||||
|
|
||||||
|
do {
|
||||||
|
next = dm_get_next_target(dmt, next, &start, &length,
|
Loading…
Reference in New Issue
Block a user