#include "../util.h"
#include "reiserfs.h"
+struct reiserfs_super_block {
+ __u32 blocks_count;
+ __u32 free_blocks;
+ __u32 root_block;
+ __u32 journal_block;
+ __u32 journal_dev;
+ __u32 orig_journal_size;
+ __u32 dummy2[5];
+ __u16 blocksize;
+ __u16 dummy3[3];
+ __u8 magic[12];
+ __u32 dummy4[5];
+ __u8 uuid[16];
+ __u8 label[16];
+} __attribute__((__packed__));
+
#define REISERFS1_SUPERBLOCK_OFFSET 0x2000
#define REISERFS_SUPERBLOCK_OFFSET 0x10000
int volume_id_probe_reiserfs(struct volume_id *id, __u64 off)
{
- struct reiserfs_super_block {
- __u32 blocks_count;
- __u32 free_blocks;
- __u32 root_block;
- __u32 journal_block;
- __u32 journal_dev;
- __u32 orig_journal_size;
- __u32 dummy2[5];
- __u16 blocksize;
- __u16 dummy3[3];
- __u8 magic[12];
- __u32 dummy4[5];
- __u8 uuid[16];
- __u8 label[16];
- } __attribute__((__packed__)) *rs;
+ struct reiserfs_super_block *rs;
+
+ dbg("probing at offset %llu", off);
rs = (struct reiserfs_super_block *) volume_id_get_buffer(id, off + REISERFS_SUPERBLOCK_OFFSET, 0x200);
if (rs == NULL)