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 ----