block/iscsi: add support for request timeouts
commit5dd7a535b71a0f2f8e7af75c5d694174359ce323
authorPeter Lieven <pl@kamp.de>
Tue, 16 Jun 2015 11:45:07 +0000 (16 13:45 +0200)
committerStefan Hajnoczi <stefanha@redhat.com>
Thu, 2 Jul 2015 08:20:18 +0000 (2 09:20 +0100)
tree9de63a7dd6885647e979ee077458bef9900ce70b
parentd2966f804d70a244f5dde395fc5d22a50ed3e74e
block/iscsi: add support for request timeouts

libiscsi starting with 1.15 will properly support timeout of iscsi
commands. The default will remain no timeout, but this can
be changed via cmdline parameters, e.g.:

qemu -iscsi timeout=30 -drive file=iscsi://...

If a timeout occurs a reconnect is scheduled and the timed out command
will be requeued for processing after a successful reconnect.

The required API call iscsi_set_timeout is present since libiscsi
1.10 which was released in October 2013. However, due to some bugs
in the libiscsi code the use is not recommended before version 1.15.

Please note that this patch bumps the libiscsi requirement to 1.10
to have all function and macros defined. The patch fixes also a
off-by-one error in the NOP timeout calculation which was fixed
while touching these code parts.

Signed-off-by: Peter Lieven <pl@kamp.de>
Message-id: 1434455107-19328-1-git-send-email-pl@kamp.de
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
block/iscsi.c
configure
qemu-options.hx