svn commit: r363822 - stable/12/usr.sbin/ctld
Alexander Motin
mav at FreeBSD.org
Tue Aug 4 02:31:53 UTC 2020
Author: mav
Date: Tue Aug 4 02:31:52 2020
New Revision: 363822
URL: https://svnweb.freebsd.org/changeset/base/363822
Log:
MFC r363656: 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.
Modified:
stable/12/usr.sbin/ctld/kernel.c
Directory Properties:
stable/12/ (props changed)
Modified: stable/12/usr.sbin/ctld/kernel.c
==============================================================================
--- stable/12/usr.sbin/ctld/kernel.c Tue Aug 4 02:20:15 2020 (r363821)
+++ stable/12/usr.sbin/ctld/kernel.c Tue Aug 4 02:31:52 2020 (r363822)
@@ -776,6 +776,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) {
More information about the svn-src-all
mailing list