[sheepdog] [PATCH 1/2] sheepdog: adopting protocol update for VDI locking
Liu Yuan
namei.unix at gmail.com
Fri Aug 8 07:20:39 CEST 2014
On Thu, Aug 07, 2014 at 04:28:39PM +0900, Hitoshi Mitake wrote:
> The update is required for supporting iSCSI multipath. It doesn't
> affect behavior of QEMU driver but adding a new field to vdi request
> struct is required.
>
> Cc: Kevin Wolf <kwolf at redhat.com>
> Cc: Stefan Hajnoczi <stefanha at redhat.com>
> Cc: Liu Yuan <namei.unix at gmail.com>
> Cc: MORITA Kazutaka <morita.kazutaka at lab.ntt.co.jp>
> Signed-off-by: Hitoshi Mitake <mitake.hitoshi at lab.ntt.co.jp>
> ---
> block/sheepdog.c | 8 +++++++-
> 1 file changed, 7 insertions(+), 1 deletion(-)
>
> diff --git a/block/sheepdog.c b/block/sheepdog.c
> index 8d9350c..36f76f0 100644
> --- a/block/sheepdog.c
> +++ b/block/sheepdog.c
> @@ -103,6 +103,9 @@
> #define SD_INODE_SIZE (sizeof(SheepdogInode))
> #define CURRENT_VDI_ID 0
>
> +#define LOCK_TYPE_NORMAL 1
> +#define LOCK_TYPE_SHARED 2 /* for iSCSI multipath */
How about
#define LOCK_TYPE_NORMAL 0
#define LOCK_TYPE_SHARED 1
Then we don't need this patch. Since qemu won't make use of multipath for the
near future, we should avoid adding stuff related to multipath to qemu driver.
Thanks
Yuan
> +
> typedef struct SheepdogReq {
> uint8_t proto_ver;
> uint8_t opcode;
> @@ -166,7 +169,8 @@ typedef struct SheepdogVdiReq {
> uint8_t copy_policy;
> uint8_t reserved[2];
> uint32_t snapid;
> - uint32_t pad[3];
> + uint32_t type;
> + uint32_t pad[2];
> } SheepdogVdiReq;
>
> typedef struct SheepdogVdiRsp {
> @@ -1090,6 +1094,7 @@ static int find_vdi_name(BDRVSheepdogState *s, const char *filename,
> memset(&hdr, 0, sizeof(hdr));
> if (lock) {
> hdr.opcode = SD_OP_LOCK_VDI;
> + hdr.type = LOCK_TYPE_NORMAL;
> } else {
> hdr.opcode = SD_OP_GET_VDI_INFO;
> }
> @@ -1793,6 +1798,7 @@ static void sd_close(BlockDriverState *bs)
> memset(&hdr, 0, sizeof(hdr));
>
> hdr.opcode = SD_OP_RELEASE_VDI;
> + hdr.type = LOCK_TYPE_NORMAL;
> hdr.base_vdi_id = s->inode.vdi_id;
> wlen = strlen(s->name) + 1;
> hdr.data_length = wlen;
> --
> 1.8.3.2
>
More information about the sheepdog
mailing list