summaryrefslogtreecommitdiff
path: root/usr/src/lib
diff options
context:
space:
mode:
authorCathy Zhou <Cathy.Zhou@Sun.COM>2008-11-14 14:28:43 -0800
committerCathy Zhou <Cathy.Zhou@Sun.COM>2008-11-14 14:28:43 -0800
commit2d4eecfa187a743d7823497136e21cb0568eb77d (patch)
tree7003e27746705e49431f3e3830b6d4e11fb97d05 /usr/src/lib
parent71269a2275bf5a143dad6461eee2710a344e7261 (diff)
downloadillumos-joyent-2d4eecfa187a743d7823497136e21cb0568eb77d.tar.gz
6757536 nwam in maintenance after boot, ifconfig core dump with large stack
Diffstat (limited to 'usr/src/lib')
-rw-r--r--usr/src/lib/libdladm/common/libdlmgmt.c11
1 files changed, 8 insertions, 3 deletions
diff --git a/usr/src/lib/libdladm/common/libdlmgmt.c b/usr/src/lib/libdladm/common/libdlmgmt.c
index 79932c7bde..2e7d6c58aa 100644
--- a/usr/src/lib/libdladm/common/libdlmgmt.c
+++ b/usr/src/lib/libdladm/common/libdlmgmt.c
@@ -23,8 +23,6 @@
* Use is subject to license terms.
*/
-#pragma ident "%Z%%M% %I% %E% SMI"
-
#include <door.h>
#include <errno.h>
#include <assert.h>
@@ -224,8 +222,15 @@ i_dladm_phys_status(datalink_id_t linkid, uint32_t *flagsp)
/*
* No active status, this link was removed. Update its status
* in the daemon and delete all active linkprops.
+ *
+ * Note that the operation could fail. If it does, return
+ * failure now since otherwise dladm_set_linkprop() might
+ * call back to i_dladm_phys_status() recursively.
*/
- (void) dladm_destroy_datalink_id(linkid, DLADM_OPT_ACTIVE);
+ status = dladm_destroy_datalink_id(linkid, DLADM_OPT_ACTIVE);
+ if (status != DLADM_STATUS_OK)
+ return (status);
+
(void) dladm_set_linkprop(linkid, NULL, NULL, 0,
DLADM_OPT_ACTIVE);