summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--usr/idbm.c6
-rw-r--r--usr/iscsistart.c4
2 files changed, 8 insertions, 2 deletions
diff --git a/usr/idbm.c b/usr/idbm.c
index b94b617..e1a9021 100644
--- a/usr/idbm.c
+++ b/usr/idbm.c
@@ -2458,6 +2458,12 @@ int idbm_add_node(node_rec_t *newrec, discovery_rec_t *drec, int overwrite)
rc = idbm_delete_node(&rec);
if (rc)
goto unlock;
+
+ if (drec->type == DISCOVERY_TYPE_FW) {
+ log_debug(8, "setting firmware node 'startup' to 'onboot'");
+ newrec->startup = ISCSI_STARTUP_ONBOOT;
+ newrec->conn[0].startup = ISCSI_STARTUP_ONBOOT;
+ }
log_debug(7, "overwriting existing record");
} else
log_debug(7, "adding new DB record");
diff --git a/usr/iscsistart.c b/usr/iscsistart.c
index 206cd4c..7eb573e 100644
--- a/usr/iscsistart.c
+++ b/usr/iscsistart.c
@@ -361,7 +361,7 @@ int main(int argc, char *argv[])
struct boot_context *context, boot_context;
struct sigaction sa_old;
struct sigaction sa_new;
- struct user_param *param;
+ struct user_param *param, *tmp_param;
int control_fd, mgmt_ipc_fd, err;
pid_t pid;
@@ -556,7 +556,7 @@ int main(int argc, char *argv[])
mgmt_ipc_close(mgmt_ipc_fd);
free_initiator();
sysfs_cleanup();
- list_for_each_entry(param, &user_params, list) {
+ list_for_each_entry_safe(param, tmp_param, &user_params, list) {
list_del(&param->list);
idbm_free_user_param(param);
}