summaryrefslogtreecommitdiff
path: root/usr/src/lib/libpool
diff options
context:
space:
mode:
authorgarypen <none@none>2006-09-11 05:47:34 -0700
committergarypen <none@none>2006-09-11 05:47:34 -0700
commitfb30ca63f87a9c0edbb4c0693515b012d8e0686d (patch)
tree6679ccad568c552b97871ff95ac7db818c00851e /usr/src/lib/libpool
parent32f863ec9791c52750cd5b747bc5e500ea1dccd3 (diff)
downloadillumos-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.c16
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);
}