struct path * pp;
char empty_buff[WWID_SIZE] = {0};
char params[PARAMS_SIZE] = {0};
+ int start_waiter = 0;
if (strstr(devname, "..") != NULL) {
/*
}
condlog(4,"%s: creating new map", pp->dev);
- if ((mpp = add_map_with_path(vecs, pp, 1)))
+ if ((mpp = add_map_with_path(vecs, pp, 1))) {
mpp->action = ACT_CREATE;
+ /*
+ * We don't depend on ACT_CREATE, as domap will
+ * set it to ACT_NOTHING when complete.
+ */
+ start_waiter = 1;
+ }
else
goto fail; /* leave path added to pathvec */
}
sync_map_state(mpp);
- if (mpp->action == ACT_CREATE &&
+ if ((mpp->action == ACT_CREATE ||
+ (mpp->action == ACT_NOTHING && start_waiter && !mpp->waiter)) &&
start_waiter_thread(mpp, vecs))
goto fail_map;