summaryrefslogtreecommitdiffstats
path: root/sys/cam/ctl/ctl.c
diff options
context:
space:
mode:
Diffstat (limited to 'sys/cam/ctl/ctl.c')
-rw-r--r--sys/cam/ctl/ctl.c22
1 files changed, 22 insertions, 0 deletions
diff --git a/sys/cam/ctl/ctl.c b/sys/cam/ctl/ctl.c
index 215f1cd..853a36d 100644
--- a/sys/cam/ctl/ctl.c
+++ b/sys/cam/ctl/ctl.c
@@ -3148,6 +3148,28 @@ ctl_ioctl(struct cdev *dev, u_long cmd, caddr_t addr, int flag,
sbuf_delete(sb);
break;
}
+ case CTL_ISCSI: {
+ struct ctl_iscsi *ci;
+ struct ctl_frontend *fe;
+
+ ci = (struct ctl_iscsi *)addr;
+
+ mtx_lock(&softc->ctl_lock);
+ STAILQ_FOREACH(fe, &softc->fe_list, links) {
+ if (strcmp(fe->port_name, "iscsi") == 0)
+ break;
+ }
+ mtx_unlock(&softc->ctl_lock);
+
+ if (fe == NULL) {
+ ci->status = CTL_ISCSI_ERROR;
+ snprintf(ci->error_str, sizeof(ci->error_str), "Backend \"iscsi\" not found.");
+ break;
+ }
+
+ retval = fe->ioctl(dev, cmd, addr, flag, td);
+ break;
+ }
default: {
/* XXX KDM should we fix this? */
#if 0
OpenPOWER on IntegriCloud