diff options
author | garypen <none@none> | 2006-09-11 05:47:34 -0700 |
---|---|---|
committer | garypen <none@none> | 2006-09-11 05:47:34 -0700 |
commit | fb30ca63f87a9c0edbb4c0693515b012d8e0686d (patch) | |
tree | 6679ccad568c552b97871ff95ac7db818c00851e /usr/src/lib/libpool | |
parent | 32f863ec9791c52750cd5b747bc5e500ea1dccd3 (diff) | |
download | illumos-gate-fb30ca63f87a9c0edbb4c0693515b012d8e0686d.tar.gz |
6462462 pool_set_status() must set the pool error code if the pool service enable/disable fails
Diffstat (limited to 'usr/src/lib/libpool')
-rw-r--r-- | usr/src/lib/libpool/common/pool.c | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/usr/src/lib/libpool/common/pool.c b/usr/src/lib/libpool/common/pool.c index 5c6c6a9c1b..167cd8be5b 100644 --- a/usr/src/lib/libpool/common/pool.c +++ b/usr/src/lib/libpool/common/pool.c @@ -734,18 +734,18 @@ pool_set_status(int state) */ if (getenv("SMF_FMRI") == NULL) { FILE *p; + char *cmd; + if (state) { - char *cmd = "/usr/sbin/svcadm enable -s " \ + cmd = "/usr/sbin/svcadm enable -s " \ SMF_SVC_INSTANCE; - if ((p = popen(cmd, "wF")) == NULL || - pclose(p) != 0) - return (PO_FAIL); } else { - char *cmd = "/usr/sbin/svcadm disable -s " \ + cmd = "/usr/sbin/svcadm disable -s " \ SMF_SVC_INSTANCE; - if ((p = popen(cmd, "wF")) == NULL || - pclose(p) != 0) - return (PO_FAIL); + } + if ((p = popen(cmd, "wF")) == NULL || pclose(p) != 0) { + pool_seterror(POE_SYSTEM); + return (PO_FAIL); } return (PO_SUCCESS); } |