[Sheepdog] [PATCH] sheep: use the first vdi id for vdi attribute objects

MORITA Kazutaka morita.kazutaka at lab.ntt.co.jp
Fri Jul 29 19:46:50 CEST 2011


The vdi id can change if we get the snapshot, so there is a problem
that vdi attributes vanish after taking snapshots.

This patch uses the first vdi id, whose snapid equals 1, for a vdi
attribute object id.

Signed-off-by: MORITA Kazutaka <morita.kazutaka at lab.ntt.co.jp>
---
 sheep/group.c |    6 ++++++
 1 files changed, 6 insertions(+), 0 deletions(-)

diff --git a/sheep/group.c b/sheep/group.c
index 9e039e7..7ddc4ed 100644
--- a/sheep/group.c
+++ b/sheep/group.c
@@ -686,6 +686,12 @@ static void vdi_op(struct vdi_op_message *msg)
 				 &vid, hdr->snapid, &nr_copies);
 		if (ret != SD_RES_SUCCESS)
 			break;
+		/* the curernt vdi id can change if we take the snapshot,
+		   so we use the first vdi id for vdi attributes */
+		ret = lookup_vdi(hdr->epoch, data, SD_MAX_VDI_LEN, &vid, 1,
+				 &nr_copies);
+		if (ret != SD_RES_SUCCESS)
+			break;
 		ret = get_vdi_attr(hdr->epoch, data, hdr->data_length, vid,
 				   &attrid, hdr->flags & SD_FLAG_CMD_CREAT,
 				   hdr->flags & SD_FLAG_CMD_EXCL);
-- 
1.7.2.5




More information about the sheepdog mailing list