1 /* SPDX-License-Identifier: GPL-2.0-only */
5 * OCFS1 volume header definitions. OCFS2 creates valid but unmountable
6 * OCFS1 volume headers on the first two sectors of an OCFS2 volume.
7 * This allows an OCFS1 volume to see the partition and cleanly fail to
10 * Copyright (C) 2002, 2004 Oracle. All rights reserved.
13 #ifndef _OCFS1_FS_COMPAT_H
14 #define _OCFS1_FS_COMPAT_H
16 #define OCFS1_MAX_VOL_SIGNATURE_LEN 128
17 #define OCFS1_MAX_MOUNT_POINT_LEN 128
18 #define OCFS1_MAX_VOL_ID_LENGTH 16
19 #define OCFS1_MAX_VOL_LABEL_LEN 64
20 #define OCFS1_MAX_CLUSTER_NAME_LEN 64
22 #define OCFS1_MAJOR_VERSION (2)
23 #define OCFS1_MINOR_VERSION (0)
24 #define OCFS1_VOLUME_SIGNATURE "OracleCFS"
27 * OCFS1 superblock. Lives at sector 0.
29 struct ocfs1_vol_disk_hdr
31 /*00*/ __u32 minor_version
;
33 /*08*/ __u8 signature
[OCFS1_MAX_VOL_SIGNATURE_LEN
];
34 /*88*/ __u8 mount_point
[OCFS1_MAX_MOUNT_POINT_LEN
];
35 /*108*/ __u64 serial_num
;
36 /*110*/ __u64 device_size
;
38 /*120*/ __u64 bitmap_off
;
40 /*130*/ __u64 vote_off
;
41 __u64 root_bitmap_off
;
42 /*140*/ __u64 data_start_off
;
43 __u64 root_bitmap_size
;
44 /*150*/ __u64 root_off
;
46 /*160*/ __u64 cluster_size
;
48 /*170*/ __u64 num_clusters
;
50 /*180*/ __u64 file_node_size
;
52 /*190*/ __u64 node_cfg_off
;
54 /*1A0*/ __u64 new_cfg_off
;
61 struct ocfs1_disk_lock
63 /*00*/ __u32 curr_master
;
65 __u8 compat_pad
[3]; /* Not in original definition. Used to
66 make the already existing alignment
68 __u64 last_write_time
;
69 /*10*/ __u64 last_read_time
;
70 __u32 writer_node_num
;
71 __u32 reader_node_num
;
72 /*20*/ __u64 oin_node_map
;
78 * OCFS1 volume label. Lives at sector 1.
80 struct ocfs1_vol_label
82 /*00*/ struct ocfs1_disk_lock disk_lock
;
83 /*30*/ __u8 label
[OCFS1_MAX_VOL_LABEL_LEN
];
84 /*70*/ __u16 label_len
;
85 /*72*/ __u8 vol_id
[OCFS1_MAX_VOL_ID_LENGTH
];
86 /*82*/ __u16 vol_id_len
;
87 /*84*/ __u8 cluster_name
[OCFS1_MAX_CLUSTER_NAME_LEN
];
88 /*A4*/ __u16 cluster_name_len
;
93 #endif /* _OCFS1_FS_COMPAT_H */