On 21/02/2017 03:42, Eric Blake wrote:
> + /* Send NBD_INFO_BLOCK_SIZE always, but tweak the minimum size
> + * according to whether the client requested it, and according to
> + * whether this is OPT_INFO or OPT_GO. */
> + /* minimum - 1 for back-compat, or 512 if client is new enough.
> + * TODO: consult blk_bs(blk)->request_align? */
> + sizes[0] = (opt == NBD_OPT_INFO || blocksize) ? BDRV_SECTOR_SIZE : 1;
> + /* preferred - At least 4096, but larger as appropriate. */
> + sizes[1] = MAX(blk_get_opt_transfer(exp->blk), 4096);
Can we just say zero if the preferred transfer size is unknown?
Apart from this, it looks good.
Paolo
> + /* maximum - At most 32M, but smaller as appropriate. */
> + sizes[2] = MIN(blk_get_max_transfer(exp->blk), NBD_MAX_BUFFER_SIZE);
> + TRACE("advertising minimum 0x%" PRIx32 ", preferred 0x%" PRIx32
> + ", maximum 0x%" PRIx32, sizes[0], sizes[1], sizes[2]);