summaryrefslogtreecommitdiff
path: root/sysfs.c
diff options
context:
space:
mode:
authorNeilBrown <neilb@suse.de>2009-10-22 11:13:13 +1100
committerNeilBrown <neilb@suse.de>2009-10-22 11:13:13 +1100
commit4a997737a14f580e3addfa1db6be005c37e7c0f4 (patch)
tree2bb5c80319e81728d54822d5b930098746c07057 /sysfs.c
parent9739642288555dae607ee4aa0eec0e9245cecf74 (diff)
parent0eb26465c0a14d707ca00f4f7bcdb67bde36f706 (diff)
downloadmdadm-4a997737a14f580e3addfa1db6be005c37e7c0f4.tar.gz
Merge branch 'master' into devel-3.1
Diffstat (limited to 'sysfs.c')
-rw-r--r--sysfs.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/sysfs.c b/sysfs.c
index 5806fa7..35dfbd4 100644
--- a/sysfs.c
+++ b/sysfs.c
@@ -792,7 +792,7 @@ int sysfs_unique_holder(int devnum, long rdev)
static char *clean_states[] = {
"clear", "inactive", "readonly", "read-auto", "clean", NULL };
-int WaitClean(char *dev, int verbose)
+int WaitClean(char *dev, int sock, int verbose)
{
int fd;
struct mdinfo *mdi;
@@ -868,7 +868,8 @@ int WaitClean(char *dev, int verbose)
}
if (rv < 0)
rv = 1;
- else if (ping_monitor(mdi->text_version) == 0) {
+ else if (fping_monitor(sock) == 0 ||
+ ping_monitor(mdi->text_version) == 0) {
/* we need to ping to close the window between array
* state transitioning to clean and the metadata being
* marked clean