Add helper function for converting uuid to tag. This will also be used in
rebuild FULLDATA mode.

Signed-off-by: Lucas Karpinski <[email protected]>
---
 lib/liberofs_uuid.h |  1 +
 lib/uuid_unparse.c  | 16 +++++++++++++++-
 mkfs/main.c         | 11 +----------
 3 files changed, 17 insertions(+), 11 deletions(-)

diff --git a/lib/liberofs_uuid.h b/lib/liberofs_uuid.h
index 63b358a..c35762a 100644
--- a/lib/liberofs_uuid.h
+++ b/lib/liberofs_uuid.h
@@ -4,6 +4,7 @@
 
 void erofs_uuid_generate(unsigned char *out);
 void erofs_uuid_unparse_lower(const unsigned char *buf, char *out);
+void erofs_uuid_unparse_as_tag(const unsigned char *buf, char *out);
 int erofs_uuid_parse(const char *in, unsigned char *uu);
 
 #endif
diff --git a/lib/uuid_unparse.c b/lib/uuid_unparse.c
index 3255c4b..18e87d1 100644
--- a/lib/uuid_unparse.c
+++ b/lib/uuid_unparse.c
@@ -8,7 +8,8 @@
 #include "erofs/config.h"
 #include "liberofs_uuid.h"
 
-void erofs_uuid_unparse_lower(const unsigned char *buf, char *out) {
+void erofs_uuid_unparse_lower(const unsigned char *buf, char *out)
+{
        sprintf(out, "%04x%04x-%04x-%04x-%04x-%04x%04x%04x",
                        (buf[0] << 8) | buf[1],
                        (buf[2] << 8) | buf[3],
@@ -19,3 +20,16 @@ void erofs_uuid_unparse_lower(const unsigned char *buf, char 
*out) {
                        (buf[12] << 8) | buf[13],
                        (buf[14] << 8) | buf[15]);
 }
+
+void erofs_uuid_unparse_as_tag(const unsigned char *buf, char *out)
+{
+       sprintf(out, "%04x%04x%04x%04x%04x%04x%04x%04x",
+                       (buf[0] << 8) | buf[1],
+                       (buf[2] << 8) | buf[3],
+                       (buf[4] << 8) | buf[5],
+                       (buf[6] << 8) | buf[7],
+                       (buf[8] << 8) | buf[9],
+                       (buf[10] << 8) | buf[11],
+                       (buf[12] << 8) | buf[13],
+                       (buf[14] << 8) | buf[15]);
+}
diff --git a/mkfs/main.c b/mkfs/main.c
index 471bce2..a8f9a5e 100644
--- a/mkfs/main.c
+++ b/mkfs/main.c
@@ -1780,16 +1780,7 @@ static int erofs_mkfs_rebuild_load_trees(struct 
erofs_inode *root)
                        memcpy(devs[idx].tag, tag, sizeof(devs[0].tag));
                else
                        /* convert UUID of the source image to a hex string */
-                       sprintf((char *)g_sbi.devs[idx].tag,
-                               "%04x%04x%04x%04x%04x%04x%04x%04x",
-                               (src->uuid[0] << 8) | src->uuid[1],
-                               (src->uuid[2] << 8) | src->uuid[3],
-                               (src->uuid[4] << 8) | src->uuid[5],
-                               (src->uuid[6] << 8) | src->uuid[7],
-                               (src->uuid[8] << 8) | src->uuid[9],
-                               (src->uuid[10] << 8) | src->uuid[11],
-                               (src->uuid[12] << 8) | src->uuid[13],
-                               (src->uuid[14] << 8) | src->uuid[15]);
+                       erofs_uuid_unparse_as_tag(src->uuid, (char 
*)g_sbi.devs[idx].tag);
        }
        return 0;
 }

-- 
Git-155)

Reply via email to