When starting a running coordinator, the command should succeed
no matter how many times the command runs.
And this should be the same for stopping a stopped coordinator.
Signed-off-by: Li Xi <lixi@ddn.com>
Change-Id: I99169de35d6fcc11e03604ac63cdc4358e25b3d2
Reviewed-on: https://review.whamcloud.com/43720
Tested-by: jenkins <devops@whamcloud.com>
Tested-by: Maloo <maloo@whamcloud.com>
Reviewed-by: Andreas Dilger <adilger@whamcloud.com>
Reviewed-by: Sergey Cheremencev <sergey.cheremencev@hpe.com>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
rc = set_cdt_state(cdt, CDT_RUNNING);
mdt_hsm_cdt_event(cdt);
wake_up(&cdt->cdt_waitq);
rc = set_cdt_state(cdt, CDT_RUNNING);
mdt_hsm_cdt_event(cdt);
wake_up(&cdt->cdt_waitq);
+ } else if (cdt->cdt_state == CDT_RUNNING) {
+ rc = 0;
} else {
rc = mdt_hsm_cdt_start(mdt);
}
} else if (strncmp(buffer, CDT_STOP_CMD, strlen(CDT_STOP_CMD)) == 0) {
} else {
rc = mdt_hsm_cdt_start(mdt);
}
} else if (strncmp(buffer, CDT_STOP_CMD, strlen(CDT_STOP_CMD)) == 0) {
- if ((cdt->cdt_state == CDT_STOPPING) ||
- (cdt->cdt_state == CDT_STOPPED)) {
- CERROR("%s: Coordinator already stopped\n",
+ if (cdt->cdt_state == CDT_STOPPING) {
+ CERROR("%s: Coordinator is already stopping\n",
mdt_obd_name(mdt));
rc = -EALREADY;
mdt_obd_name(mdt));
rc = -EALREADY;
+ } else if (cdt->cdt_state == CDT_STOPPED) {
+ rc = 0;
} else {
rc = mdt_hsm_cdt_stop(mdt);
}
} else {
rc = mdt_hsm_cdt_stop(mdt);
}