Root/
1 | /* |
2 | * Ceph - scalable distributed file system |
3 | * |
4 | * Copyright (C) 2004-2010 Sage Weil <sage@newdream.net> |
5 | * |
6 | * This is free software; you can redistribute it and/or |
7 | * modify it under the terms of the GNU Lesser General Public |
8 | * License version 2.1, as published by the Free Software |
9 | * Foundation. See file COPYING. |
10 | * |
11 | */ |
12 | |
13 | #ifndef CEPH_RBD_TYPES_H |
14 | #define CEPH_RBD_TYPES_H |
15 | |
16 | #include <linux/types.h> |
17 | |
18 | /* For format version 2, rbd image 'foo' consists of objects |
19 | * rbd_id.foo - id of image |
20 | * rbd_header.<id> - image metadata |
21 | * rbd_data.<id>.0000000000000000 |
22 | * rbd_data.<id>.0000000000000001 |
23 | * ... - data |
24 | * Clients do not access header data directly in rbd format 2. |
25 | */ |
26 | |
27 | #define RBD_HEADER_PREFIX "rbd_header." |
28 | #define RBD_DATA_PREFIX "rbd_data." |
29 | #define RBD_ID_PREFIX "rbd_id." |
30 | |
31 | /* |
32 | * For format version 1, rbd image 'foo' consists of objects |
33 | * foo.rbd - image metadata |
34 | * rb.<idhi>.<idlo>.00000000 |
35 | * rb.<idhi>.<idlo>.00000001 |
36 | * ... - data |
37 | * There is no notion of a persistent image id in rbd format 1. |
38 | */ |
39 | |
40 | #define RBD_SUFFIX ".rbd" |
41 | |
42 | #define RBD_DIRECTORY "rbd_directory" |
43 | #define RBD_INFO "rbd_info" |
44 | |
45 | #define RBD_DEFAULT_OBJ_ORDER 22 /* 4MB */ |
46 | #define RBD_MIN_OBJ_ORDER 16 |
47 | #define RBD_MAX_OBJ_ORDER 30 |
48 | |
49 | #define RBD_COMP_NONE 0 |
50 | #define RBD_CRYPT_NONE 0 |
51 | |
52 | #define RBD_HEADER_TEXT "<<< Rados Block Device Image >>>\n" |
53 | #define RBD_HEADER_SIGNATURE "RBD" |
54 | #define RBD_HEADER_VERSION "001.005" |
55 | |
56 | struct rbd_image_snap_ondisk { |
57 | __le64 id; |
58 | __le64 image_size; |
59 | } __attribute__((packed)); |
60 | |
61 | struct rbd_image_header_ondisk { |
62 | char text[40]; |
63 | char object_prefix[24]; |
64 | char signature[4]; |
65 | char version[8]; |
66 | struct { |
67 | __u8 order; |
68 | __u8 crypt_type; |
69 | __u8 comp_type; |
70 | __u8 unused; |
71 | } __attribute__((packed)) options; |
72 | __le64 image_size; |
73 | __le64 snap_seq; |
74 | __le32 snap_count; |
75 | __le32 reserved; |
76 | __le64 snap_names_len; |
77 | struct rbd_image_snap_ondisk snaps[0]; |
78 | } __attribute__((packed)); |
79 | |
80 | |
81 | #endif |
82 |
Branches:
ben-wpan
ben-wpan-stefan
javiroman/ks7010
jz-2.6.34
jz-2.6.34-rc5
jz-2.6.34-rc6
jz-2.6.34-rc7
jz-2.6.35
jz-2.6.36
jz-2.6.37
jz-2.6.38
jz-2.6.39
jz-3.0
jz-3.1
jz-3.11
jz-3.12
jz-3.13
jz-3.15
jz-3.16
jz-3.18-dt
jz-3.2
jz-3.3
jz-3.4
jz-3.5
jz-3.6
jz-3.6-rc2-pwm
jz-3.9
jz-3.9-clk
jz-3.9-rc8
jz47xx
jz47xx-2.6.38
master
Tags:
od-2011-09-04
od-2011-09-18
v2.6.34-rc5
v2.6.34-rc6
v2.6.34-rc7
v3.9