From patchwork Mon Aug 11 02:52:32 2014 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Hitoshi Mitake X-Patchwork-Id: 378879 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id E9EEE140132 for ; Mon, 11 Aug 2014 12:53:26 +1000 (EST) Received: from localhost ([::1]:33419 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XGfjg-00037b-Vv for incoming@patchwork.ozlabs.org; Sun, 10 Aug 2014 22:53:25 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:48291) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XGfjC-0002Qw-Jw for qemu-devel@nongnu.org; Sun, 10 Aug 2014 22:53:00 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1XGfj6-0001v5-K8 for qemu-devel@nongnu.org; Sun, 10 Aug 2014 22:52:54 -0400 Received: from mail-pd0-x233.google.com ([2607:f8b0:400e:c02::233]:46232) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XGfj6-0001ux-D2 for qemu-devel@nongnu.org; Sun, 10 Aug 2014 22:52:48 -0400 Received: by mail-pd0-f179.google.com with SMTP id v10so4001652pde.24 for ; Sun, 10 Aug 2014 19:52:47 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references; bh=sSnwk3hHVDeNtv0ADseFYpwKoGCAfF9veJez/Yc1SP8=; b=mxkDp9KOpN7p+jkq0V3FYGVPRHle2ZZbrVlgKVE5gg+0+xCLkumi6nSNbR9Kb/uyd6 ghzP0fOISck/GIOlRU85krRydpxXTNDIhCmtpcROJaMcme94BekeRSHyMeIXRn6EJxlG eQX9wVk4wM0sd0lbO9jfZGOIZHN9QLMCLgnaIJDWssRIyRARIeaKP90NGYRfCEHR++Ct Swnx4XmJBkyOW8ACotlskEFazKrJ+hXWi77mpLbdgny67DdHKjhBaqqvw0NtGoZ2ddxe bRmp2Gg2k8br+2xRLuwIQSF2hDLRtQWVokcP/FF2QNrB46/fSMLb8XQHfQ5CZD5LUlPe 3Z9w== X-Received: by 10.68.223.138 with SMTP id qu10mr38924318pbc.45.1407725567311; Sun, 10 Aug 2014 19:52:47 -0700 (PDT) Received: from localhost.localdomain (p21192-ipngn4801marunouchi.tokyo.ocn.ne.jp. [153.160.172.192]) by mx.google.com with ESMTPSA id jr5sm9709473pbc.75.2014.08.10.19.52.44 for (version=TLSv1.1 cipher=ECDHE-RSA-RC4-SHA bits=128/128); Sun, 10 Aug 2014 19:52:46 -0700 (PDT) From: Hitoshi Mitake To: qemu-devel@nongnu.org Date: Mon, 11 Aug 2014 11:52:32 +0900 Message-Id: <1407725553-16357-2-git-send-email-mitake.hitoshi@lab.ntt.co.jp> X-Mailer: git-send-email 1.8.3.2 In-Reply-To: <1407725553-16357-1-git-send-email-mitake.hitoshi@lab.ntt.co.jp> References: <1407725553-16357-1-git-send-email-mitake.hitoshi@lab.ntt.co.jp> X-detected-operating-system: by eggs.gnu.org: Error: Malformed IPv6 address (bad octet value). X-Received-From: 2607:f8b0:400e:c02::233 Cc: Kevin Wolf , sheepdog@lists.wpkg.org, mitake.hitoshi@gmail.com, Hitoshi Mitake , MORITA Kazutaka , Stefan Hajnoczi , Liu Yuan Subject: [Qemu-devel] [PATCH v2 1/2] sheepdog: adopting protocol update for VDI locking X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org 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 Cc: Stefan Hajnoczi Cc: Liu Yuan Cc: MORITA Kazutaka Signed-off-by: Hitoshi Mitake --- 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 */ + 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;