qemu-e2k/block
Peter Lieven cb1b83e740 iscsi: add iscsi_truncate support
this patch adds iscsi_truncate which effectively allows for
online resizing of iscsi volumes. for this to work you have
to resize the volume on your storage and then call
block_resize command in qemu which will issue a
readcapacity16 to update the capacity.

v4:
  - factor out complete readcapacity logic into a separate function
  - handle capacity change check condition in readcapacity function
    (this happens if the block_resize cmd is the first iscsi task
    executed after a resize on the storage)

v3:
  - remove switch statement in iscsi_open
  - create separate patch for brdv_drain_all() in bdrv_truncate()

v2:
  - add a general bdrv_drain_all() before bdrv_truncate() to avoid
    in-flight AIOs while the device is truncated
  - since no AIOs are in flight we can use a sync libiscsi call
    to re-read the capacity
  - factor out the readcapacity16 logic as it is redundant
    to iscsi_open() and iscsi_truncate().

Signed-off-by: Peter Lieven <pl@kamp.de>
[allow any type of unit attention check condition in iscsi_readcapacity_sync(),
 as in Message-ID: <51263A2A.6070304@dlhnet.de> - Paolo]
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2013-03-05 17:51:51 +01:00
..
Makefile.objs build: move rules from Makefile to */Makefile.objs 2012-12-19 08:29:06 +01:00
blkdebug.c misc: move include files to include/qemu/ 2012-12-19 08:32:39 +01:00
blkverify.c misc: move include files to include/qemu/ 2012-12-19 08:32:39 +01:00
bochs.c bochs: Fix bdrv_open() error handling 2013-02-01 14:58:28 +01:00
cloop.c cloop: Fix bdrv_open() error handling 2013-02-01 14:58:28 +01:00
commit.c block: fix null-pointer bug on error case in block commit 2013-01-17 10:51:11 +01:00
cow.c block: Use error code EMEDIUMTYPE for wrong format in some block drivers 2013-01-25 18:18:35 +01:00
curl.c block/curl: only restrict protocols with libcurl>=7.19.4 2013-02-13 11:57:35 -06:00
dmg.c dmg: Use g_free instead of free 2013-02-01 14:58:29 +01:00
gluster.c error: Strip trailing '\n' from error string arguments (again) 2013-02-11 08:13:19 -06:00
iscsi.c iscsi: add iscsi_truncate support 2013-03-05 17:51:51 +01:00
linux-aio.c misc: move include files to include/qemu/ 2012-12-19 08:32:39 +01:00
mirror.c mirror: do nothing on zero-sized disk 2013-01-25 18:18:35 +01:00
nbd.c misc: move include files to include/qemu/ 2012-12-19 08:32:39 +01:00
parallels.c parallels: Fix bdrv_open() error handling 2013-02-01 14:58:29 +01:00
qcow.c block: Use error code EMEDIUMTYPE for wrong format in some block drivers 2013-01-25 18:18:35 +01:00
qcow2-cache.c block: move include files to include/block/ 2012-12-19 08:31:31 +01:00
qcow2-cluster.c block: move include files to include/block/ 2012-12-19 08:31:31 +01:00
qcow2-refcount.c qcow2: support compressed clusters in BlockFragInfo 2013-02-22 21:21:09 +01:00
qcow2-snapshot.c block: move include files to include/block/ 2012-12-19 08:31:31 +01:00
qcow2.c block: Use error code EMEDIUMTYPE for wrong format in some block drivers 2013-01-25 18:18:35 +01:00
qcow2.h block: move include files to include/block/ 2012-12-19 08:31:31 +01:00
qed-check.c qed: mark image clean after repair succeeds 2012-08-10 10:25:12 +02:00
qed-cluster.c Use glib memory allocation and free functions 2011-08-20 23:01:08 -05:00
qed-gencb.c Use glib memory allocation and free functions 2011-08-20 23:01:08 -05:00
qed-l2-cache.c qed: do not evict in-use L2 table cache entries 2012-03-12 15:14:06 +01:00
qed-table.c misc: move include files to include/qemu/ 2012-12-19 08:32:39 +01:00
qed.c block: Use error code EMEDIUMTYPE for wrong format in some block drivers 2013-01-25 18:18:35 +01:00
qed.h block: move include files to include/block/ 2012-12-19 08:31:31 +01:00
raw-aio.h block: make discard asynchronous 2013-01-15 10:03:47 +01:00
raw-posix.c block/raw-posix: detect readonly Linux block devices using BLKROGET 2013-02-12 12:22:49 +01:00
raw-win32.c block/raw-win32: Fix compiler warnings (wrong format specifiers) 2013-01-02 16:08:57 +01:00
raw.c misc: move include files to include/qemu/ 2012-12-19 08:32:39 +01:00
rbd.c misc: move include files to include/qemu/ 2012-12-19 08:32:39 +01:00
sheepdog.c sheepdog: add support for connecting to unix domain socket 2013-03-04 09:54:17 +01:00
stream.c block: move include files to include/block/ 2012-12-19 08:31:31 +01:00
vdi.c g_malloc(0) and g_malloc0(0) return NULL; simplify 2013-01-30 11:14:46 +01:00
vmdk.c vmdk: Allow space in file name 2013-02-01 14:58:29 +01:00
vpc.c Revert "block/vpc: Fix size calculation" 2013-02-12 12:25:15 +01:00
vvfat.c Replace remaining gmtime, localtime by gmtime_r, localtime_r 2013-01-11 09:44:37 +01:00
win32-aio.c win32-aio: use iov utility functions instead of open-coding them 2013-01-18 09:57:51 +01:00