Author: mav
Date: Tue Jul 28 22:32:50 2020
New Revision: 363656
URL: https://svnweb.freebsd.org/changeset/base/363656

Log:
  When modifying LUN pass "special" options too.
  
  Before switching to nvlists CTL merged previous and new options, so
  any options not passed just kept previous value.  Now CTL completely
  replaces them, so we must pass everything still relevant.
  
  MFC after:    1 week
  Sponsored by: iXsystems, Inc.

Modified:
  head/usr.sbin/ctld/kernel.c

Modified: head/usr.sbin/ctld/kernel.c
==============================================================================
--- head/usr.sbin/ctld/kernel.c Tue Jul 28 20:06:16 2020        (r363655)
+++ head/usr.sbin/ctld/kernel.c Tue Jul 28 22:32:50 2020        (r363656)
@@ -777,6 +777,30 @@ kernel_lun_modify(struct lun *lun)
        req.reqdata.modify.lun_id = lun->l_ctl_lun;
        req.reqdata.modify.lun_size_bytes = lun->l_size;
 
+       if (lun->l_path != NULL) {
+               o = option_find(&lun->l_options, "file");
+               if (o != NULL) {
+                       option_set(o, lun->l_path);
+               } else {
+                       o = option_new(&lun->l_options, "file", lun->l_path);
+                       assert(o != NULL);
+               }
+       }
+
+       o = option_find(&lun->l_options, "ctld_name");
+       if (o != NULL) {
+               option_set(o, lun->l_name);
+       } else {
+               o = option_new(&lun->l_options, "ctld_name", lun->l_name);
+               assert(o != NULL);
+       }
+
+       o = option_find(&lun->l_options, "scsiname");
+       if (o == NULL && lun->l_scsiname != NULL) {
+               o = option_new(&lun->l_options, "scsiname", lun->l_scsiname);
+               assert(o != NULL);
+       }
+
        if (!TAILQ_EMPTY(&lun->l_options)) {
                req.args_nvl = nvlist_create(0);
                if (req.args_nvl == NULL) {
_______________________________________________
svn-src-head@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to