[PATCH] sheepdog: fix data format for sheepdog request and response

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Data format of sheepdog backing store is different from that of Sheepdog.
This patch fixes data format of sheepdog request and response.

Signed-off-by: Teruaki Ishizaki <ishizaki.teruaki@xxxxxxxxxxxxx>
---
 usr/bs_sheepdog.c |   29 ++++++++++++++++++++---------
 1 files changed, 20 insertions(+), 9 deletions(-)

diff --git a/usr/bs_sheepdog.c b/usr/bs_sheepdog.c
index 2941803..7c155fe 100644
--- a/usr/bs_sheepdog.c
+++ b/usr/bs_sheepdog.c
@@ -157,9 +157,13 @@ struct sheepdog_obj_req {
 	uint32_t data_length;
 	uint64_t oid;
 	uint64_t cow_oid;
-	uint32_t copies;
+	uint8_t copies;
+	uint8_t copy_policy;
+	uint8_t ec_index;
+	uint8_t reserved;
 	uint32_t rsvd;
-	uint64_t offset;
+	uint32_t offset;
+	uint32_t pad;
 };
 
 struct sheepdog_obj_rsp {
@@ -170,7 +174,8 @@ struct sheepdog_obj_rsp {
 	uint32_t id;
 	uint32_t data_length;
 	uint32_t result;
-	uint32_t copies;
+	uint8_t copies;
+	uint8_t reserved[3];
 	uint32_t pad[6];
 };
 
@@ -186,7 +191,10 @@ struct sheepdog_vdi_req {
 	uint32_t data_length;
 	uint64_t vdi_size;
 	uint32_t vdi_id;
-	uint32_t copies;
+	uint8_t copies;
+	uint8_t copy_policy;
+	uint8_t ec_index;
+	uint8_t reserved;
 	uint32_t snapid;
 	uint32_t type;
 	uint32_t pad[2];
@@ -202,7 +210,10 @@ struct sheepdog_vdi_rsp {
 	uint32_t result;
 	uint32_t rsvd;
 	uint32_t vdi_id;
-	uint32_t pad[5];
+	uint32_t attr_id;
+	uint8_t copies;
+	uint8_t reserved[3];
+	uint32_t pad[3];
 };
 
 /*
@@ -639,7 +650,7 @@ static int find_vdi_name(struct sheepdog_access_info *ai, char *filename,
 			 uint32_t snapid, char *tag, uint32_t *vid,
 			 int for_snapshot);
 static int read_object(struct sheepdog_access_info *ai, char *buf, uint64_t oid,
-		       int copies, unsigned int datalen, uint64_t offset,
+		       int copies, unsigned int datalen, uint32_t offset,
 		       int *need_reload);
 
 static int reload_inode(struct sheepdog_access_info *ai, int is_snapshot)
@@ -679,7 +690,7 @@ static int reload_inode(struct sheepdog_access_info *ai, int is_snapshot)
 
 static int read_write_object(struct sheepdog_access_info *ai, char *buf,
 			     uint64_t oid, int copies,
-			     unsigned int datalen, uint64_t offset,
+			     unsigned int datalen, uint32_t offset,
 			     int write, int create, uint64_t old_oid,
 			     uint16_t flags, int *need_reload)
 {
@@ -738,7 +749,7 @@ static int read_write_object(struct sheepdog_access_info *ai, char *buf,
 
 static int read_object(struct sheepdog_access_info *ai, char *buf,
 		       uint64_t oid, int copies,
-		       unsigned int datalen, uint64_t offset, int *need_reload)
+		       unsigned int datalen, uint32_t offset, int *need_reload)
 {
 	return read_write_object(ai, buf, oid, copies, datalen, offset,
 				 0, 0, 0, 0, need_reload);
@@ -746,7 +757,7 @@ static int read_object(struct sheepdog_access_info *ai, char *buf,
 
 static int write_object(struct sheepdog_access_info *ai, char *buf,
 			uint64_t oid, int copies,
-			unsigned int datalen, uint64_t offset, int create,
+			unsigned int datalen, uint32_t offset, int create,
 			uint64_t old_oid, uint16_t flags, int *need_reload)
 {
 	return read_write_object(ai, buf, oid, copies, datalen, offset, 1,
-- 
1.7.1

--
To unsubscribe from this list: send the line "unsubscribe stgt" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux SCSI]     [Linux RAID]     [Linux Clusters]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]

  Powered by Linux