chiark / gitweb /
[PATCH] volume_id: version 43
[elogind.git] / extras / volume_id / volume_id / reiserfs.c
index 094062dba20c1e8f329cce4dcee6cfd65c669099..a53fc4a5a90c3171da7c4d323b9911c966ab28f3 100644 (file)
@@ -73,20 +73,24 @@ int volume_id_probe_reiserfs(struct volume_id *id, __u64 off)
        struct reiser4_super_block *rs4;
        __u8 *buf;
 
-       dbg("probing at offset %llu", off);
+       dbg("probing at offset 0x%llx", (unsigned long long) off);
 
        buf = volume_id_get_buffer(id, off + REISERFS_SUPERBLOCK_OFFSET, 0x200);
        if (buf == NULL)
                return -1;
 
        rs = (struct reiserfs_super_block *) buf;;
+       if (memcmp(rs->magic, "ReIsErFs", 8) == 0) {
+               strcpy(id->type_version, "3.5");
+               goto found;
+       }
        if (memcmp(rs->magic, "ReIsEr2Fs", 9) == 0) {
                strcpy(id->type_version, "3.6");
-               goto found_v3;
+               goto found_label;
        }
        if (memcmp(rs->magic, "ReIsEr3Fs", 9) == 0) {
                strcpy(id->type_version, "JR");
-               goto found_v3;
+               goto found_label;
        }
 
        rs4 = (struct reiser4_super_block *) buf;
@@ -104,12 +108,12 @@ int volume_id_probe_reiserfs(struct volume_id *id, __u64 off)
 
        if (memcmp(rs->magic, "ReIsErFs", 8) == 0) {
                strcpy(id->type_version, "3.5");
-               goto found_v3;
+               goto found;
        }
 
        return -1;
 
-found_v3:
+found_label:
        volume_id_set_label_raw(id, rs->label, 16);
        volume_id_set_label_string(id, rs->label, 16);
        volume_id_set_uuid(id, rs->uuid, UUID_DCE);