diff options
| author | Grzegorz Kostka <kostka.grzegorz@gmail.com> | 2018-03-01 19:58:03 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2018-03-01 19:58:03 +0100 |
| commit | 96b4563a7ed9f603a6f66cbe21cbd1acb2f0294a (patch) | |
| tree | a18f586eec116b1b3a27d40a4c0db992b37c0520 /src | |
| parent | 66168642b95814725e1f6662729b112d80ab3abb (diff) | |
| parent | 151cd9f6e9120e3c41600875c6cfa42dc1321a0b (diff) | |
Merge pull request #36 from mmmaisel/dev
Improvements from ext4-browser project
Diffstat (limited to 'src')
| -rw-r--r-- | src/ext4_mbr.c | 6 | ||||
| -rw-r--r-- | src/ext4_mkfs.c | 3 |
2 files changed, 6 insertions, 3 deletions
diff --git a/src/ext4_mbr.c b/src/ext4_mbr.c index 14fe252..0376545 100644 --- a/src/ext4_mbr.c +++ b/src/ext4_mbr.c @@ -59,7 +59,8 @@ struct ext4_part_entry { }; struct ext4_mbr { - uint8_t bootstrap[446]; + uint8_t bootstrap[442]; + uint32_t disk_id; struct ext4_part_entry part_entry[4]; uint16_t signature; }; @@ -126,7 +127,7 @@ int ext4_mbr_scan(struct ext4_blockdev *parent, struct ext4_mbr_bdevs *bdevs) return r; } -int ext4_mbr_write(struct ext4_blockdev *parent, struct ext4_mbr_parts *parts) +int ext4_mbr_write(struct ext4_blockdev *parent, struct ext4_mbr_parts *parts, uint32_t disk_id) { int r; uint64_t disk_size; @@ -157,6 +158,7 @@ int ext4_mbr_write(struct ext4_blockdev *parent, struct ext4_mbr_parts *parts) struct ext4_mbr *mbr = (void *)parent->bdif->ph_bbuf; memset(mbr, 0, sizeof(struct ext4_mbr)); + mbr->disk_id = disk_id; uint32_t cyl_it = 0; for (int i = 0; i < 4; ++i) { diff --git a/src/ext4_mkfs.c b/src/ext4_mkfs.c index 649c272..0dfc91f 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)); |
