From 151cd9f6e9120e3c41600875c6cfa42dc1321a0b Mon Sep 17 00:00:00 2001 From: Max Maisel Date: Thu, 1 Mar 2018 17:31:32 +0100 Subject: [PATCH] ext4_mkfs: Added UUID parameter to create new filesystems with non-zero UUID --- include/ext4_mkfs.h | 1 + src/ext4_mkfs.c | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/include/ext4_mkfs.h b/include/ext4_mkfs.h index 2438e7d..53f1820 100644 --- a/include/ext4_mkfs.h +++ b/include/ext4_mkfs.h @@ -63,6 +63,7 @@ struct ext4_mkfs_info { uint16_t feat_incompat; uint32_t bg_desc_reserve_blocks; uint16_t dsc_size; + uint8_t uuid[UUID_SIZE]; bool journal; const char *label; }; diff --git a/src/ext4_mkfs.c b/src/ext4_mkfs.c index 5942055..355b20a 100644 --- a/src/ext4_mkfs.c +++ b/src/ext4_mkfs.c @@ -95,6 +95,7 @@ static int sb2info(struct ext4_sblock *sb, struct ext4_mkfs_info *info) info->label = sb->volume_name; info->len = (uint64_t)info->block_size * ext4_sb_get_blocks_cnt(sb); info->dsc_size = to_le16(sb->desc_size); + memcpy(info->uuid, sb->uuid, UUID_SIZE); return EOK; } @@ -260,7 +261,7 @@ static void fill_sb(struct fs_aux_info *aux_info, struct ext4_mkfs_info *info) sb->features_incompatible = to_le32(info->feat_incompat); sb->features_read_only = to_le32(info->feat_ro_compat); - memset(sb->uuid, 0, sizeof(sb->uuid)); + memcpy(sb->uuid, info->uuid, UUID_SIZE); memset(sb->volume_name, 0, sizeof(sb->volume_name)); strncpy(sb->volume_name, info->label, sizeof(sb->volume_name)); -- 2.30.2