1512 val_desc_t *vdp, uint_t val_cnt, uint_t flags, datalink_media_t media)
1513 {
1514 dladm_status_t status = DLADM_STATUS_OK;
1515 zoneid_t zid_old, zid_new;
1516 dld_ioc_zid_t *dzp;
1517
1518 if (val_cnt != 1)
1519 return (DLADM_STATUS_BADVALCNT);
1520
1521 dzp = (dld_ioc_zid_t *)vdp->vd_val;
1522
1523 status = i_dladm_get_public_prop(handle, linkid, pdp->pd_name, flags,
1524 NULL, &zid_old, sizeof (zid_old));
1525 if (status != DLADM_STATUS_OK)
1526 return (status);
1527
1528 zid_new = dzp->diz_zid;
1529 if (zid_new == zid_old)
1530 return (DLADM_STATUS_OK);
1531
1532 if ((status = set_public_prop(handle, pdp, linkid, vdp, val_cnt,
1533 flags, media)) != DLADM_STATUS_OK)
1534 return (status);
1535
1536 /*
1537 * It is okay to fail to update the /dev entry (some vanity-named
1538 * links do not have a /dev entry).
1539 */
1540 if (zid_old != GLOBAL_ZONEID) {
1541 (void) i_dladm_update_deventry(handle, zid_old, linkid,
1542 B_FALSE);
1543 }
1544 if (zid_new != GLOBAL_ZONEID)
1545 (void) i_dladm_update_deventry(handle, zid_new, linkid, B_TRUE);
1546
1547 return (DLADM_STATUS_OK);
1548 }
1549
1550 /* ARGSUSED */
1551 static dladm_status_t
|
1512 val_desc_t *vdp, uint_t val_cnt, uint_t flags, datalink_media_t media)
1513 {
1514 dladm_status_t status = DLADM_STATUS_OK;
1515 zoneid_t zid_old, zid_new;
1516 dld_ioc_zid_t *dzp;
1517
1518 if (val_cnt != 1)
1519 return (DLADM_STATUS_BADVALCNT);
1520
1521 dzp = (dld_ioc_zid_t *)vdp->vd_val;
1522
1523 status = i_dladm_get_public_prop(handle, linkid, pdp->pd_name, flags,
1524 NULL, &zid_old, sizeof (zid_old));
1525 if (status != DLADM_STATUS_OK)
1526 return (status);
1527
1528 zid_new = dzp->diz_zid;
1529 if (zid_new == zid_old)
1530 return (DLADM_STATUS_OK);
1531
1532 if (flags & DLADM_OPT_TRANSIENT)
1533 dzp->diz_transient = B_TRUE;
1534
1535 if ((status = set_public_prop(handle, pdp, linkid, vdp, val_cnt,
1536 flags, media)) != DLADM_STATUS_OK)
1537 return (status);
1538
1539 /*
1540 * It is okay to fail to update the /dev entry (some vanity-named
1541 * links do not have a /dev entry).
1542 */
1543 if (zid_old != GLOBAL_ZONEID) {
1544 (void) i_dladm_update_deventry(handle, zid_old, linkid,
1545 B_FALSE);
1546 }
1547 if (zid_new != GLOBAL_ZONEID)
1548 (void) i_dladm_update_deventry(handle, zid_new, linkid, B_TRUE);
1549
1550 return (DLADM_STATUS_OK);
1551 }
1552
1553 /* ARGSUSED */
1554 static dladm_status_t
|