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) {
_______________________________________________
[email protected] mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "[email protected]"

Reply via email to