Print this page
usr/src/cmd/dlmgmtd/dlmgmt_door.c
*** 20,29 ****
--- 20,30 ----
*/
/*
* Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
* Copyright 2019 Joyent, Inc.
+ * Copyright 2023 Oxide Computer Company
*/
/*
* Main door handler functions used by dlmgmtd to process the different door
* call requests. Door call requests can come from the user-land applications,
*** 423,434 ****
err = ENOSPC;
} else {
retvalp->lr_flags = linkp->ll_flags;
retvalp->lr_class = linkp->ll_class;
retvalp->lr_media = linkp->ll_media;
! retvalp->lr_flags |= (linkp->ll_trans == B_TRUE) ?
! DLMGMT_TRANSIENT : 0;
}
dlmgmt_table_unlock();
retvalp->lr_err = err;
--- 424,434 ----
err = ENOSPC;
} else {
retvalp->lr_flags = linkp->ll_flags;
retvalp->lr_class = linkp->ll_class;
retvalp->lr_media = linkp->ll_media;
! retvalp->lr_flags |= linkp->ll_transient ? DLMGMT_TRANSIENT : 0;
}
dlmgmt_table_unlock();
retvalp->lr_err = err;
*** 463,472 ****
--- 463,473 ----
retvalp->lr_linkid = linkp->ll_linkid;
retvalp->lr_flags = linkp->ll_flags;
retvalp->lr_class = linkp->ll_class;
retvalp->lr_media = linkp->ll_media;
+ retvalp->lr_flags |= linkp->ll_transient ? DLMGMT_TRANSIENT : 0;
done:
dlmgmt_table_unlock();
retvalp->lr_err = err;
}
*** 506,515 ****
--- 507,517 ----
} else {
retvalp->lr_linkid = linkp->ll_linkid;
retvalp->lr_class = linkp->ll_class;
retvalp->lr_media = linkp->ll_media;
retvalp->lr_flags = linkp->ll_flags;
+ retvalp->lr_flags |= linkp->ll_transient ? DLMGMT_TRANSIENT : 0;
}
dlmgmt_table_unlock();
retvalp->lr_err = err;
}
*** 1252,1262 ****
err = errno;
dlmgmt_log(LOG_WARNING, "unable to remove link %d from "
"zone %d: %s", linkid, oldzoneid, strerror(err));
goto done;
}
-
linkp->ll_onloan = B_FALSE;
}
if (newzoneid != GLOBAL_ZONEID) {
if (zone_add_datalink(newzoneid, linkid) != 0) {
--- 1254,1263 ----