Problems with GROUP sets for ISW and DDF1

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

there seems to be a problem when detecting RAID sets of type t_group.
This affects only ISW and DDF1 metaformats, as there is a t_group
superset constructed:

# dmraid -s -g
*** Superset
name   : isw_dfjchjjhdi
size   : 625163612
stride : 0
type   : GROUP
status : ok
subsets: 1
devs   : 2
spares : 0
--> Subset
name   : isw_dfjchjjhdi_foo1
size   : 312576000
stride : 128
type   : mirror
status : ok
subsets: 0
devs   : 2
spares : 0

When one tries to specify explicitly the name of the actual RAID set,
here "isw_dfjchjjhdi_foo1", it is not found:

# dmraid -s isw_dfjchjjhdi_foo1
No RAID sets and with names: "isw_dfjchjjhdi_foo1"

The reason seems to be that group_set() calls want_set() which compares
the names, which does not match in this case and then deletes the
superset which in turn deletes the actual RAID set.
So when the search for actual wanted RAID set is done, it is already
deleted.

I am not completely sure how to fix this problem, but I propose the
following patch, which seems to work here.

Matthias

Index: 1.0.0.rc14/lib/metadata/metadata.c
===================================================================
--- 1.0.0.rc14.orig/lib/metadata/metadata.c
+++ 1.0.0.rc14/lib/metadata/metadata.c
@@ -797,6 +797,10 @@ static void want_set(struct lib_context
        if (name) {
                size_t len1 = strlen(rs->name), len2 = strlen(name);
 
+               /* Do not delete RAID sets of type t_group here */
+               if (T_GROUP(rs))
+                       return;
+ 
                if (len2 > len1 ||
                    strncmp(rs->name, name, min(len1, len2))) {
                        log_notice(lc, "dropping unwanted RAID set \"%s\"",

_______________________________________________
Ataraid-list mailing list
Ataraid-list@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/ataraid-list

[Index of Archives]     [Linux RAID]     [Linux Device Mapper]     [Linux IDE]     [Linux SCSI]     [Kernel]     [Linux Books]     [Linux Admin]     [GFS]     [RPM]     [Yosemite Campgrounds]     [AMD 64]

  Powered by Linux