Index: uspace/srv/bd/hr/metadata/native.c
===================================================================
--- uspace/srv/bd/hr/metadata/native.c	(revision 3702c322639a50b16c81fa6003a0f62a0e365dc2)
+++ uspace/srv/bd/hr/metadata/native.c	(revision c69cbefaf6ce6c2791016356238e9b419196e39c)
@@ -122,11 +122,8 @@
 		return rc;
 
-	/* XXX: for now we just copy byte by byte as "encoding" */
 	memcpy(md->uuid, &uuid, HR_NATIVE_UUID_LEN);
-	/* uuid_encode(&uuid, metadata->uuid); */
 
 	md->data_blkno = vol->data_blkno;
 	md->truncated_blkno = vol->truncated_blkno;
-	md->data_offset = vol->data_offset;
 	md->extent_no = vol->extent_no;
 	md->level = vol->level;
@@ -158,5 +155,5 @@
 	vol->data_blkno = main_meta->data_blkno;
 	vol->truncated_blkno = main_meta->truncated_blkno;
-	vol->data_offset = main_meta->data_offset;
+	vol->data_offset = meta_native_get_data_offset();
 	vol->extent_no = main_meta->extent_no;
 	/* vol->level = main_meta->level; */ /* already set */
@@ -211,10 +208,8 @@
 	memcpy(scratch_md.magic, metadata->magic, HR_NATIVE_MAGIC_SIZE);
 	memcpy(scratch_md.uuid, metadata->uuid, HR_NATIVE_UUID_LEN);
-	/* uuid_decode((uint8_t *)scratch_md.uuid, (uuid_t *)metadata->uuid); */
 
 	scratch_md.data_blkno = host2uint64_t_le(metadata->data_blkno);
 	scratch_md.truncated_blkno = host2uint64_t_le(
 	    metadata->truncated_blkno);
-	scratch_md.data_offset = host2uint64_t_le(metadata->data_offset);
 	scratch_md.counter = host2uint64_t_le(metadata->counter);
 	scratch_md.rebuild_pos = host2uint64_t_le(metadata->rebuild_pos);
@@ -246,10 +241,8 @@
 	memcpy(metadata->magic, scratch_md.magic, HR_NATIVE_MAGIC_SIZE);
 	memcpy(metadata->uuid, scratch_md.uuid, HR_NATIVE_UUID_LEN);
-	/* uuid_decode((uint8_t *)scratch_md.uuid, (uuid_t *)metadata->uuid); */
 
 	metadata->data_blkno = uint64_t_le2host(scratch_md.data_blkno);
 	metadata->truncated_blkno = uint64_t_le2host(
 	    scratch_md.truncated_blkno);
-	metadata->data_offset = uint64_t_le2host(scratch_md.data_offset);
 	metadata->counter = uint64_t_le2host(scratch_md.counter);
 	metadata->rebuild_pos = uint64_t_le2host(scratch_md.rebuild_pos);
@@ -503,5 +496,4 @@
 	printf("\tdata_blkno: %" PRIu64 "\n", metadata->data_blkno);
 	printf("\ttruncated_blkno: %" PRIu64 "\n", metadata->truncated_blkno);
-	printf("\tdata_offset: %" PRIu64 "\n", metadata->data_offset);
 	printf("\tcounter: %" PRIu64 "\n", metadata->counter);
 	printf("\tversion: %" PRIu32 "\n", metadata->version);
Index: uspace/srv/bd/hr/metadata/native.h
===================================================================
--- uspace/srv/bd/hr/metadata/native.h	(revision 3702c322639a50b16c81fa6003a0f62a0e365dc2)
+++ uspace/srv/bd/hr/metadata/native.h	(revision c69cbefaf6ce6c2791016356238e9b419196e39c)
@@ -48,4 +48,8 @@
 #define HR_NATIVE_MAGIC_SIZE 16
 #define HR_NATIVE_UUID_LEN 16
+
+/*
+ * Bump on each superblock update.
+ */
 #define HR_NATIVE_METADATA_VERSION 1
 
@@ -55,21 +59,18 @@
 	uint8_t uuid[HR_NATIVE_UUID_LEN];
 
+	uint32_t version;
+	uint32_t extent_no;
+	uint32_t level;
+	uint32_t layout;
+
+	uint32_t index; /* index of extent in volume */
+	uint32_t strip_size;
+	uint32_t bsize;
+
 	uint64_t data_blkno; /* usable blocks */
 	uint64_t truncated_blkno; /* size of smallest extent */
 
-	uint64_t data_offset;
 	uint64_t counter;
-
 	uint64_t rebuild_pos;
-
-	uint32_t version; /* XXX: yet unused */
-	uint32_t extent_no;
-	uint32_t index; /* index of extent in volume */
-	uint32_t level;
-
-	uint32_t layout;
-	uint32_t strip_size;
-
-	uint32_t bsize;
 
 	char devname[HR_DEVNAME_LEN];
