diff options
-rw-r--r-- | usr/idbm.c | 6 | ||||
-rw-r--r-- | usr/iscsistart.c | 4 |
2 files changed, 8 insertions, 2 deletions
@@ -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(¶m->list); idbm_free_user_param(param); } |