diff options
Diffstat (limited to 'include/linux/ext2_fs.h')
-rw-r--r-- | include/linux/ext2_fs.h | 72 |
1 files changed, 10 insertions, 62 deletions
diff --git a/include/linux/ext2_fs.h b/include/linux/ext2_fs.h index ce1b719e8bd4..f28dba518a4a 100644 --- a/include/linux/ext2_fs.h +++ b/include/linux/ext2_fs.h | |||
@@ -20,6 +20,8 @@ | |||
20 | #include <linux/magic.h> | 20 | #include <linux/magic.h> |
21 | #include <linux/fs.h> | 21 | #include <linux/fs.h> |
22 | 22 | ||
23 | #include <linux/ext2_fs_sb.h> | ||
24 | |||
23 | /* | 25 | /* |
24 | * The second extended filesystem constants/structures | 26 | * The second extended filesystem constants/structures |
25 | */ | 27 | */ |
@@ -66,18 +68,10 @@ | |||
66 | /* First non-reserved inode for old ext2 filesystems */ | 68 | /* First non-reserved inode for old ext2 filesystems */ |
67 | #define EXT2_GOOD_OLD_FIRST_INO 11 | 69 | #define EXT2_GOOD_OLD_FIRST_INO 11 |
68 | 70 | ||
69 | #ifdef __KERNEL__ | ||
70 | #include <linux/ext2_fs_sb.h> | ||
71 | static inline struct ext2_sb_info *EXT2_SB(struct super_block *sb) | 71 | static inline struct ext2_sb_info *EXT2_SB(struct super_block *sb) |
72 | { | 72 | { |
73 | return sb->s_fs_info; | 73 | return sb->s_fs_info; |
74 | } | 74 | } |
75 | #else | ||
76 | /* Assume that user mode programs are passing in an ext2fs superblock, not | ||
77 | * a kernel struct super_block. This will allow us to call the feature-test | ||
78 | * macros from user land. */ | ||
79 | #define EXT2_SB(sb) (sb) | ||
80 | #endif | ||
81 | 75 | ||
82 | /* | 76 | /* |
83 | * Maximal count of links to a file | 77 | * Maximal count of links to a file |
@@ -90,29 +84,12 @@ static inline struct ext2_sb_info *EXT2_SB(struct super_block *sb) | |||
90 | #define EXT2_MIN_BLOCK_SIZE 1024 | 84 | #define EXT2_MIN_BLOCK_SIZE 1024 |
91 | #define EXT2_MAX_BLOCK_SIZE 4096 | 85 | #define EXT2_MAX_BLOCK_SIZE 4096 |
92 | #define EXT2_MIN_BLOCK_LOG_SIZE 10 | 86 | #define EXT2_MIN_BLOCK_LOG_SIZE 10 |
93 | #ifdef __KERNEL__ | 87 | #define EXT2_BLOCK_SIZE(s) ((s)->s_blocksize) |
94 | # define EXT2_BLOCK_SIZE(s) ((s)->s_blocksize) | ||
95 | #else | ||
96 | # define EXT2_BLOCK_SIZE(s) (EXT2_MIN_BLOCK_SIZE << (s)->s_log_block_size) | ||
97 | #endif | ||
98 | #define EXT2_ADDR_PER_BLOCK(s) (EXT2_BLOCK_SIZE(s) / sizeof (__u32)) | 88 | #define EXT2_ADDR_PER_BLOCK(s) (EXT2_BLOCK_SIZE(s) / sizeof (__u32)) |
99 | #ifdef __KERNEL__ | 89 | #define EXT2_BLOCK_SIZE_BITS(s) ((s)->s_blocksize_bits) |
100 | # define EXT2_BLOCK_SIZE_BITS(s) ((s)->s_blocksize_bits) | ||
101 | #else | ||
102 | # define EXT2_BLOCK_SIZE_BITS(s) ((s)->s_log_block_size + 10) | ||
103 | #endif | ||
104 | #ifdef __KERNEL__ | ||
105 | #define EXT2_ADDR_PER_BLOCK_BITS(s) (EXT2_SB(s)->s_addr_per_block_bits) | 90 | #define EXT2_ADDR_PER_BLOCK_BITS(s) (EXT2_SB(s)->s_addr_per_block_bits) |
106 | #define EXT2_INODE_SIZE(s) (EXT2_SB(s)->s_inode_size) | 91 | #define EXT2_INODE_SIZE(s) (EXT2_SB(s)->s_inode_size) |
107 | #define EXT2_FIRST_INO(s) (EXT2_SB(s)->s_first_ino) | 92 | #define EXT2_FIRST_INO(s) (EXT2_SB(s)->s_first_ino) |
108 | #else | ||
109 | #define EXT2_INODE_SIZE(s) (((s)->s_rev_level == EXT2_GOOD_OLD_REV) ? \ | ||
110 | EXT2_GOOD_OLD_INODE_SIZE : \ | ||
111 | (s)->s_inode_size) | ||
112 | #define EXT2_FIRST_INO(s) (((s)->s_rev_level == EXT2_GOOD_OLD_REV) ? \ | ||
113 | EXT2_GOOD_OLD_FIRST_INO : \ | ||
114 | (s)->s_first_ino) | ||
115 | #endif | ||
116 | 93 | ||
117 | /* | 94 | /* |
118 | * Macro-instructions used to manage fragments | 95 | * Macro-instructions used to manage fragments |
@@ -120,13 +97,8 @@ static inline struct ext2_sb_info *EXT2_SB(struct super_block *sb) | |||
120 | #define EXT2_MIN_FRAG_SIZE 1024 | 97 | #define EXT2_MIN_FRAG_SIZE 1024 |
121 | #define EXT2_MAX_FRAG_SIZE 4096 | 98 | #define EXT2_MAX_FRAG_SIZE 4096 |
122 | #define EXT2_MIN_FRAG_LOG_SIZE 10 | 99 | #define EXT2_MIN_FRAG_LOG_SIZE 10 |
123 | #ifdef __KERNEL__ | 100 | #define EXT2_FRAG_SIZE(s) (EXT2_SB(s)->s_frag_size) |
124 | # define EXT2_FRAG_SIZE(s) (EXT2_SB(s)->s_frag_size) | 101 | #define EXT2_FRAGS_PER_BLOCK(s) (EXT2_SB(s)->s_frags_per_block) |
125 | # define EXT2_FRAGS_PER_BLOCK(s) (EXT2_SB(s)->s_frags_per_block) | ||
126 | #else | ||
127 | # define EXT2_FRAG_SIZE(s) (EXT2_MIN_FRAG_SIZE << (s)->s_log_frag_size) | ||
128 | # define EXT2_FRAGS_PER_BLOCK(s) (EXT2_BLOCK_SIZE(s) / EXT2_FRAG_SIZE(s)) | ||
129 | #endif | ||
130 | 102 | ||
131 | /* | 103 | /* |
132 | * Structure of a blocks group descriptor | 104 | * Structure of a blocks group descriptor |
@@ -146,16 +118,10 @@ struct ext2_group_desc | |||
146 | /* | 118 | /* |
147 | * Macro-instructions used to manage group descriptors | 119 | * Macro-instructions used to manage group descriptors |
148 | */ | 120 | */ |
149 | #ifdef __KERNEL__ | 121 | #define EXT2_BLOCKS_PER_GROUP(s) (EXT2_SB(s)->s_blocks_per_group) |
150 | # define EXT2_BLOCKS_PER_GROUP(s) (EXT2_SB(s)->s_blocks_per_group) | 122 | #define EXT2_DESC_PER_BLOCK(s) (EXT2_SB(s)->s_desc_per_block) |
151 | # define EXT2_DESC_PER_BLOCK(s) (EXT2_SB(s)->s_desc_per_block) | 123 | #define EXT2_INODES_PER_GROUP(s) (EXT2_SB(s)->s_inodes_per_group) |
152 | # define EXT2_INODES_PER_GROUP(s) (EXT2_SB(s)->s_inodes_per_group) | 124 | #define EXT2_DESC_PER_BLOCK_BITS(s) (EXT2_SB(s)->s_desc_per_block_bits) |
153 | # define EXT2_DESC_PER_BLOCK_BITS(s) (EXT2_SB(s)->s_desc_per_block_bits) | ||
154 | #else | ||
155 | # define EXT2_BLOCKS_PER_GROUP(s) ((s)->s_blocks_per_group) | ||
156 | # define EXT2_DESC_PER_BLOCK(s) (EXT2_BLOCK_SIZE(s) / sizeof (struct ext2_group_desc)) | ||
157 | # define EXT2_INODES_PER_GROUP(s) ((s)->s_inodes_per_group) | ||
158 | #endif | ||
159 | 125 | ||
160 | /* | 126 | /* |
161 | * Constants relative to the data blocks | 127 | * Constants relative to the data blocks |
@@ -296,7 +262,6 @@ struct ext2_inode { | |||
296 | 262 | ||
297 | #define i_size_high i_dir_acl | 263 | #define i_size_high i_dir_acl |
298 | 264 | ||
299 | #if defined(__KERNEL__) || defined(__linux__) | ||
300 | #define i_reserved1 osd1.linux1.l_i_reserved1 | 265 | #define i_reserved1 osd1.linux1.l_i_reserved1 |
301 | #define i_frag osd2.linux2.l_i_frag | 266 | #define i_frag osd2.linux2.l_i_frag |
302 | #define i_fsize osd2.linux2.l_i_fsize | 267 | #define i_fsize osd2.linux2.l_i_fsize |
@@ -305,23 +270,6 @@ struct ext2_inode { | |||
305 | #define i_uid_high osd2.linux2.l_i_uid_high | 270 | #define i_uid_high osd2.linux2.l_i_uid_high |
306 | #define i_gid_high osd2.linux2.l_i_gid_high | 271 | #define i_gid_high osd2.linux2.l_i_gid_high |
307 | #define i_reserved2 osd2.linux2.l_i_reserved2 | 272 | #define i_reserved2 osd2.linux2.l_i_reserved2 |
308 | #endif | ||
309 | |||
310 | #ifdef __hurd__ | ||
311 | #define i_translator osd1.hurd1.h_i_translator | ||
312 | #define i_frag osd2.hurd2.h_i_frag | ||
313 | #define i_fsize osd2.hurd2.h_i_fsize | ||
314 | #define i_uid_high osd2.hurd2.h_i_uid_high | ||
315 | #define i_gid_high osd2.hurd2.h_i_gid_high | ||
316 | #define i_author osd2.hurd2.h_i_author | ||
317 | #endif | ||
318 | |||
319 | #ifdef __masix__ | ||
320 | #define i_reserved1 osd1.masix1.m_i_reserved1 | ||
321 | #define i_frag osd2.masix2.m_i_frag | ||
322 | #define i_fsize osd2.masix2.m_i_fsize | ||
323 | #define i_reserved2 osd2.masix2.m_i_reserved2 | ||
324 | #endif | ||
325 | 273 | ||
326 | /* | 274 | /* |
327 | * File system states | 275 | * File system states |