[sheepdog] [PATCH for QEMU v3] sheepdog: add discard/trim support for sheepdog
MORITA Kazutaka
morita.kazutaka at gmail.com
Mon Apr 15 17:10:52 CEST 2013
At Sun, 14 Apr 2013 13:16:44 +0800,
Liu Yuan wrote:
>
> From: Liu Yuan <tailai.ly at taobao.com>
>
> The 'TRIM' command from VM that is to release underlying data storage for
> better thin-provision is already supported by the Sheepdog.
>
> This patch adds the TRIM support at QEMU part.
>
> For older Sheepdog that doesn't support it, we return EIO to upper layer.
I think we can safely return 0 without doing anything when the server
doesn't support SD_OP_DISCARD. Actually, if the block driver doesn't
support the discard operation, bdrv_co_discard() in block.c returns 0.
> diff --git a/block/sheepdog.c b/block/sheepdog.c
> index 987018e..e852d4e 100644
> --- a/block/sheepdog.c
> +++ b/block/sheepdog.c
> @@ -34,6 +34,7 @@
> #define SD_OP_GET_VDI_INFO 0x14
> #define SD_OP_READ_VDIS 0x15
> #define SD_OP_FLUSH_VDI 0x16
> +#define SD_OP_DISCARD 0x17
This is an opcode for objects, so I prefer SD_OP_DISCARD_OBJ.
>
> +static int sd_co_discard(BlockDriverState *bs, int64_t sector_num,
> + int nb_sectors)
Should add coroutine_fn.
Thanks,
Kazutaka
More information about the sheepdog
mailing list