Skip to content
  • Peter Lieven's avatar
    iscsi: add iscsi_truncate support · cb1b83e7
    Peter Lieven authored
    
    
    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: default avatarPeter 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: default avatarPaolo Bonzini <pbonzini@redhat.com>
    cb1b83e7