• Peter Lieven's avatar
    block/iscsi: allow caching of the allocation map · e1123a3b
    Peter Lieven authored
    until now the allocation map was used only as a hint if a cluster
    is allocated or not. If a block was not allocated (or Qemu had
    no info about the allocation status) a get_block_status call was
    issued to check the allocation status and possibly avoid
    a subsequent read of unallocated sectors. If a block known to be
    allocated the get_block_status call was omitted. In the other case
    a get_block_status call was issued before every read to avoid
    the necessity for a consistent allocation map. To avoid the
    potential overhead of calling get_block_status for each and
    every read request this took only place for the bigger requests.
    This patch enhances this mechanism to cache the allocation
    status and avoid calling get_block_status for blocks where
    the allocation status has been queried before. This allows
    for bypassing the read request even for smaller requests and
    additionally omits calling get_block_status for known to be
    unallocated blocks.
    Signed-off-by: 's avatarPeter Lieven <pl@kamp.de>
    Message-Id: <1468831940-15556-3-git-send-email-pl@kamp.de>
    Signed-off-by: 's avatarPaolo Bonzini <pbonzini@redhat.com>
iscsi.c 62.4 KB