configure: new --dynamic-libengines build option
[fio.git] / engines / libiscsi.c
index e4eb0bab9297f6977b9e7b14b823aef3859e643f..c97b5709ae779eda9af451c0418d352ad365e772 100644 (file)
@@ -109,7 +109,7 @@ static int fio_iscsi_setup_lun(struct iscsi_info *iscsi_info,
        if (iscsi_full_connect_sync(iscsi_lun->iscsi,
                                    iscsi_lun->url->portal,
                                    iscsi_lun->url->lun)) {
-               log_err("sicsi: failed to connect to LUN : %s\n",
+               log_err("iscsi: failed to connect to LUN : %s\n",
                        iscsi_get_error(iscsi_lun->iscsi));
                ret = EINVAL;
                goto out;
@@ -117,7 +117,8 @@ static int fio_iscsi_setup_lun(struct iscsi_info *iscsi_info,
 
        task = iscsi_readcapacity16_sync(iscsi_lun->iscsi, iscsi_lun->url->lun);
        if (task == NULL || task->status != SCSI_STATUS_GOOD) {
-               log_err("iscsi: failed to send readcapacity command\n");
+               log_err("iscsi: failed to send readcapacity command: %s\n",
+                       iscsi_get_error(iscsi_lun->iscsi));
                ret = EINVAL;
                goto out;
        }
@@ -350,6 +351,9 @@ static int fio_iscsi_getevents(struct thread_data *td, unsigned int min,
 
                ret = poll(iscsi_info->pfds, iscsi_info->nr_luns, -1);
                if (ret < 0) {
+                       if (errno == EINTR || errno == EAGAIN) {
+                               continue;
+                       }
                        log_err("iscsi: failed to poll events: %s.\n",
                                strerror(errno));
                        break;
@@ -379,7 +383,7 @@ static struct io_u *fio_iscsi_event(struct thread_data *td, int event)
        return io_u;
 }
 
-static struct ioengine_ops ioengine_iscsi = {
+FIO_STATIC struct ioengine_ops ioengine = {
        .name               = "libiscsi",
        .version            = FIO_IOOPS_VERSION,
        .flags              = FIO_SYNCIO | FIO_DISKLESSIO | FIO_NODISKUTIL,
@@ -398,10 +402,10 @@ static struct ioengine_ops ioengine_iscsi = {
 
 static void fio_init fio_iscsi_register(void)
 {
-       register_ioengine(&ioengine_iscsi);
+       register_ioengine(&ioengine);
 }
 
 static void fio_exit fio_iscsi_unregister(void)
 {
-       unregister_ioengine(&ioengine_iscsi);
+       unregister_ioengine(&ioengine);
 }