Print this page
OS-406


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