summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Incremental.c8
-rw-r--r--Manage.c16
-rw-r--r--mdadm.c2
-rw-r--r--mdadm.h2
4 files changed, 14 insertions, 14 deletions
diff --git a/Incremental.c b/Incremental.c
index fbaa29fe..06415ed6 100644
--- a/Incremental.c
+++ b/Incremental.c
@@ -1278,7 +1278,7 @@ static int try_spare(char *devname, int *dfdp, struct dev_policy *pol,
return rv;
}
-int IncrementalScan(int verbose)
+int IncrementalScan(int verbose, char *devnm)
{
/* look at every device listed in the 'map' file.
* If one is found that is not running then:
@@ -1298,7 +1298,11 @@ int IncrementalScan(int verbose)
mdu_array_info_t array;
mdu_bitmap_file_t bmf;
struct mdinfo *sra;
- int mdfd = open_dev(me->devnm);
+ int mdfd;
+
+ if (devnm && strcmp(devnm, me->devnm) != 0)
+ continue;
+ mdfd = open_dev(me->devnm);
if (mdfd < 0)
continue;
diff --git a/Manage.c b/Manage.c
index b107289e..53f47946 100644
--- a/Manage.c
+++ b/Manage.c
@@ -175,23 +175,19 @@ int Manage_run(char *devname, int fd, int verbose)
/* Run the array. Array must already be configured
* Requires >= 0.90.0
*/
- mdu_param_t param; /* unused */
- int rv = 0;
+ char nm[32], *nmp;
if (md_get_version(fd) < 9000) {
pr_err("need md driver version 0.90.0 or later\n");
return 1;
}
-
- if (ioctl(fd, RUN_ARRAY, &param)) {
- if (verbose >= 0)
- pr_err("failed to run array %s: %s\n",
- devname, strerror(errno));
+ nmp = fd2devnm(fd);
+ if (!nmp) {
+ pr_err("Cannot find %s in sysfs!!\n", devname);
return 1;
}
- if (verbose >= 0)
- pr_err("started %s\n", devname);
- return rv;
+ strcpy(nm, nmp);
+ return IncrementalScan(verbose, nm);
}
int Manage_stop(char *devname, int fd, int verbose, int will_retry)
diff --git a/mdadm.c b/mdadm.c
index 86a4fad2..ca86300a 100644
--- a/mdadm.c
+++ b/mdadm.c
@@ -1535,7 +1535,7 @@ int main(int argc, char *argv[])
pr_err("--incremental --scan --fail not supported.\n");
break;
}
- rv = IncrementalScan(c.verbose);
+ rv = IncrementalScan(c.verbose, NULL);
}
if (!devlist) {
if (!rebuild_map && !c.scan) {
diff --git a/mdadm.h b/mdadm.h
index 43f3a57d..91d27139 100644
--- a/mdadm.h
+++ b/mdadm.h
@@ -1235,7 +1235,7 @@ extern int WaitClean(char *dev, int sock, int verbose);
extern int Incremental(char *devname, struct context *c,
struct supertype *st);
extern void RebuildMap(void);
-extern int IncrementalScan(int verbose);
+extern int IncrementalScan(int verbose, char *devnm);
extern int IncrementalRemove(char *devname, char *path, int verbose);
extern int CreateBitmap(char *filename, int force, char uuid[16],
unsigned long chunksize, unsigned long daemon_sleep,