Print this page
usr/src/cmd/dlmgmtd/dlmgmt_door.c

@@ -20,10 +20,11 @@
  */
 
 /*
  * 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,12 +424,11 @@
                 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;
+                retvalp->lr_flags |= linkp->ll_transient ? DLMGMT_TRANSIENT : 0;
         }
 
 
         dlmgmt_table_unlock();
         retvalp->lr_err = err;

@@ -463,10 +463,11 @@
 
         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,10 +507,11 @@
         } 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,11 +1254,10 @@
                         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) {