1. 03 3月, 2018 23 次提交
  2. 02 3月, 2018 1 次提交
    • E
      nbd: Honor server's advertised minimum block size · fd8d372d
      Eric Blake 提交于
      Commit 79ba8c98 (v2.7) changed the setting of request_alignment
      to occur only during bdrv_refresh_limits(), rather than at at
      bdrv_open() time; but at the time, NBD was unaffected, because
      it still used sector-based callbacks, so the block layer
      defaulted NBD to use 512 request_alignment.
      
      Later, commit 70c4fb26 (also v2.7) changed NBD to use byte-based
      callbacks, without setting request_alignment.  This resulted in
      NBD using request_alignment of 1, which works great when the
      server supports it (as is the case for qemu-nbd), but falls apart
      miserably if the server requires alignment (but only if qemu
      actually sends a sub-sector request; qemu-io can do it, but
      most qemu operations still perform on sectors or larger).
      
      Even later, the NBD protocol was updated to document that clients
      should learn the server's minimum alignment during NBD_OPT_GO;
      and recommended that clients should assume a minimum size of 512
      unless the server understands NBD_OPT_GO and replied with a smaller
      size.  Commit 081dd1fe (v2.10) attempted to do that, by assigning
      request_alignment to whatever was learned from the server; but
      it has two flaws: the assignment is done during bdrv_open() so
      it gets unconditionally wiped out back to 1 during any later
      bdrv_refresh_limits(); and the code is not using a default of 512
      when the server did not report a minimum size.
      
      Fix these issues by moving the assignment to request_alignment
      to the right function, and by using a sane default when the
      server does not advertise a minimum size.
      
      CC: qemu-stable@nongnu.org
      Signed-off-by: NEric Blake <eblake@redhat.com>
      Message-Id: <20180215032905.27146-1-eblake@redhat.com>
      Reviewed-by: Vladimir Sementsov-Ogievskiy<vsementsov@virtuozzo.com>
      fd8d372d
  3. 01 3月, 2018 1 次提交
  4. 14 2月, 2018 14 次提交
  5. 13 2月, 2018 1 次提交