diff options
author | Linus Torvalds <torvalds@g5.osdl.org> | 2005-07-12 23:21:28 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2005-07-12 23:21:28 -0400 |
commit | bd4c625c061c2a38568d0add3478f59172455159 (patch) | |
tree | 1c44a17c55bce2ee7ad5ea3d15a208ecc0955f74 /include/linux/reiserfs_fs_sb.h | |
parent | 7fa94c8868edfef8cb6a201fcc9a5078b7b961da (diff) |
reiserfs: run scripts/Lindent on reiserfs code
This was a pure indentation change, using:
scripts/Lindent fs/reiserfs/*.c include/linux/reiserfs_*.h
to make reiserfs match the regular Linux indentation style. As Jeff
Mahoney <jeffm@suse.com> writes:
The ReiserFS code is a mix of a number of different coding styles, sometimes
different even from line-to-line. Since the code has been relatively stable
for quite some time and there are few outstanding patches to be applied, it
is time to reformat the code to conform to the Linux style standard outlined
in Documentation/CodingStyle.
This patch contains the result of running scripts/Lindent against
fs/reiserfs/*.c and include/linux/reiserfs_*.h. There are places where the
code can be made to look better, but I'd rather keep those patches separate
so that there isn't a subtle by-hand hand accident in the middle of a huge
patch. To be clear: This patch is reformatting *only*.
A number of patches may follow that continue to make the code more consistent
with the Linux coding style.
Hans wasn't particularly enthusiastic about these patches, but said he
wouldn't really oppose them either.
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'include/linux/reiserfs_fs_sb.h')
-rw-r--r-- | include/linux/reiserfs_fs_sb.h | 616 |
1 files changed, 306 insertions, 310 deletions
diff --git a/include/linux/reiserfs_fs_sb.h b/include/linux/reiserfs_fs_sb.h index 31c709d0fe18..3e68592e52e9 100644 --- a/include/linux/reiserfs_fs_sb.h +++ b/include/linux/reiserfs_fs_sb.h | |||
@@ -10,7 +10,7 @@ | |||
10 | #endif | 10 | #endif |
11 | 11 | ||
12 | typedef enum { | 12 | typedef enum { |
13 | reiserfs_attrs_cleared = 0x00000001, | 13 | reiserfs_attrs_cleared = 0x00000001, |
14 | } reiserfs_super_block_flags; | 14 | } reiserfs_super_block_flags; |
15 | 15 | ||
16 | /* struct reiserfs_super_block accessors/mutators | 16 | /* struct reiserfs_super_block accessors/mutators |
@@ -61,7 +61,7 @@ typedef enum { | |||
61 | #define sb_umount_state(sbp) (le16_to_cpu((sbp)->s_v1.s_umount_state)) | 61 | #define sb_umount_state(sbp) (le16_to_cpu((sbp)->s_v1.s_umount_state)) |
62 | #define set_sb_umount_state(sbp,v) ((sbp)->s_v1.s_umount_state = cpu_to_le16(v)) | 62 | #define set_sb_umount_state(sbp,v) ((sbp)->s_v1.s_umount_state = cpu_to_le16(v)) |
63 | #define sb_fs_state(sbp) (le16_to_cpu((sbp)->s_v1.s_fs_state)) | 63 | #define sb_fs_state(sbp) (le16_to_cpu((sbp)->s_v1.s_fs_state)) |
64 | #define set_sb_fs_state(sbp,v) ((sbp)->s_v1.s_fs_state = cpu_to_le16(v)) | 64 | #define set_sb_fs_state(sbp,v) ((sbp)->s_v1.s_fs_state = cpu_to_le16(v)) |
65 | #define sb_hash_function_code(sbp) \ | 65 | #define sb_hash_function_code(sbp) \ |
66 | (le32_to_cpu((sbp)->s_v1.s_hash_function_code)) | 66 | (le32_to_cpu((sbp)->s_v1.s_hash_function_code)) |
67 | #define set_sb_hash_function_code(sbp,v) \ | 67 | #define set_sb_hash_function_code(sbp,v) \ |
@@ -103,10 +103,10 @@ typedef enum { | |||
103 | 103 | ||
104 | /* don't mess with these for a while */ | 104 | /* don't mess with these for a while */ |
105 | /* we have a node size define somewhere in reiserfs_fs.h. -Hans */ | 105 | /* we have a node size define somewhere in reiserfs_fs.h. -Hans */ |
106 | #define JOURNAL_BLOCK_SIZE 4096 /* BUG gotta get rid of this */ | 106 | #define JOURNAL_BLOCK_SIZE 4096 /* BUG gotta get rid of this */ |
107 | #define JOURNAL_MAX_CNODE 1500 /* max cnodes to allocate. */ | 107 | #define JOURNAL_MAX_CNODE 1500 /* max cnodes to allocate. */ |
108 | #define JOURNAL_HASH_SIZE 8192 | 108 | #define JOURNAL_HASH_SIZE 8192 |
109 | #define JOURNAL_NUM_BITMAPS 5 /* number of copies of the bitmaps to have floating. Must be >= 2 */ | 109 | #define JOURNAL_NUM_BITMAPS 5 /* number of copies of the bitmaps to have floating. Must be >= 2 */ |
110 | 110 | ||
111 | /* One of these for every block in every transaction | 111 | /* One of these for every block in every transaction |
112 | ** Each one is in two hash tables. First, a hash of the current transaction, and after journal_end, a | 112 | ** Each one is in two hash tables. First, a hash of the current transaction, and after journal_end, a |
@@ -117,27 +117,27 @@ typedef enum { | |||
117 | ** to a given transaction. | 117 | ** to a given transaction. |
118 | */ | 118 | */ |
119 | struct reiserfs_journal_cnode { | 119 | struct reiserfs_journal_cnode { |
120 | struct buffer_head *bh ; /* real buffer head */ | 120 | struct buffer_head *bh; /* real buffer head */ |
121 | struct super_block *sb ; /* dev of real buffer head */ | 121 | struct super_block *sb; /* dev of real buffer head */ |
122 | __u32 blocknr ; /* block number of real buffer head, == 0 when buffer on disk */ | 122 | __u32 blocknr; /* block number of real buffer head, == 0 when buffer on disk */ |
123 | long state ; | 123 | long state; |
124 | struct reiserfs_journal_list *jlist ; /* journal list this cnode lives in */ | 124 | struct reiserfs_journal_list *jlist; /* journal list this cnode lives in */ |
125 | struct reiserfs_journal_cnode *next ; /* next in transaction list */ | 125 | struct reiserfs_journal_cnode *next; /* next in transaction list */ |
126 | struct reiserfs_journal_cnode *prev ; /* prev in transaction list */ | 126 | struct reiserfs_journal_cnode *prev; /* prev in transaction list */ |
127 | struct reiserfs_journal_cnode *hprev ; /* prev in hash list */ | 127 | struct reiserfs_journal_cnode *hprev; /* prev in hash list */ |
128 | struct reiserfs_journal_cnode *hnext ; /* next in hash list */ | 128 | struct reiserfs_journal_cnode *hnext; /* next in hash list */ |
129 | }; | 129 | }; |
130 | 130 | ||
131 | struct reiserfs_bitmap_node { | 131 | struct reiserfs_bitmap_node { |
132 | int id ; | 132 | int id; |
133 | char *data ; | 133 | char *data; |
134 | struct list_head list ; | 134 | struct list_head list; |
135 | } ; | 135 | }; |
136 | 136 | ||
137 | struct reiserfs_list_bitmap { | 137 | struct reiserfs_list_bitmap { |
138 | struct reiserfs_journal_list *journal_list ; | 138 | struct reiserfs_journal_list *journal_list; |
139 | struct reiserfs_bitmap_node **bitmaps ; | 139 | struct reiserfs_bitmap_node **bitmaps; |
140 | } ; | 140 | }; |
141 | 141 | ||
142 | /* | 142 | /* |
143 | ** one of these for each transaction. The most important part here is the j_realblock. | 143 | ** one of these for each transaction. The most important part here is the j_realblock. |
@@ -146,273 +146,269 @@ struct reiserfs_list_bitmap { | |||
146 | ** and to make sure every real block in a transaction is on disk before allowing the log area | 146 | ** and to make sure every real block in a transaction is on disk before allowing the log area |
147 | ** to be overwritten */ | 147 | ** to be overwritten */ |
148 | struct reiserfs_journal_list { | 148 | struct reiserfs_journal_list { |
149 | unsigned long j_start ; | 149 | unsigned long j_start; |
150 | unsigned long j_state; | 150 | unsigned long j_state; |
151 | unsigned long j_len ; | 151 | unsigned long j_len; |
152 | atomic_t j_nonzerolen ; | 152 | atomic_t j_nonzerolen; |
153 | atomic_t j_commit_left ; | 153 | atomic_t j_commit_left; |
154 | atomic_t j_older_commits_done ; /* all commits older than this on disk*/ | 154 | atomic_t j_older_commits_done; /* all commits older than this on disk */ |
155 | struct semaphore j_commit_lock; | 155 | struct semaphore j_commit_lock; |
156 | unsigned long j_trans_id ; | 156 | unsigned long j_trans_id; |
157 | time_t j_timestamp ; | 157 | time_t j_timestamp; |
158 | struct reiserfs_list_bitmap *j_list_bitmap ; | 158 | struct reiserfs_list_bitmap *j_list_bitmap; |
159 | struct buffer_head *j_commit_bh ; /* commit buffer head */ | 159 | struct buffer_head *j_commit_bh; /* commit buffer head */ |
160 | struct reiserfs_journal_cnode *j_realblock ; | 160 | struct reiserfs_journal_cnode *j_realblock; |
161 | struct reiserfs_journal_cnode *j_freedlist ; /* list of buffers that were freed during this trans. free each of these on flush */ | 161 | struct reiserfs_journal_cnode *j_freedlist; /* list of buffers that were freed during this trans. free each of these on flush */ |
162 | /* time ordered list of all active transactions */ | 162 | /* time ordered list of all active transactions */ |
163 | struct list_head j_list; | 163 | struct list_head j_list; |
164 | 164 | ||
165 | /* time ordered list of all transactions we haven't tried to flush yet */ | 165 | /* time ordered list of all transactions we haven't tried to flush yet */ |
166 | struct list_head j_working_list; | 166 | struct list_head j_working_list; |
167 | 167 | ||
168 | /* list of tail conversion targets in need of flush before commit */ | 168 | /* list of tail conversion targets in need of flush before commit */ |
169 | struct list_head j_tail_bh_list; | 169 | struct list_head j_tail_bh_list; |
170 | /* list of data=ordered buffers in need of flush before commit */ | 170 | /* list of data=ordered buffers in need of flush before commit */ |
171 | struct list_head j_bh_list; | 171 | struct list_head j_bh_list; |
172 | int j_refcount; | 172 | int j_refcount; |
173 | } ; | 173 | }; |
174 | 174 | ||
175 | struct reiserfs_journal { | 175 | struct reiserfs_journal { |
176 | struct buffer_head ** j_ap_blocks ; /* journal blocks on disk */ | 176 | struct buffer_head **j_ap_blocks; /* journal blocks on disk */ |
177 | struct reiserfs_journal_cnode *j_last ; /* newest journal block */ | 177 | struct reiserfs_journal_cnode *j_last; /* newest journal block */ |
178 | struct reiserfs_journal_cnode *j_first ; /* oldest journal block. start here for traverse */ | 178 | struct reiserfs_journal_cnode *j_first; /* oldest journal block. start here for traverse */ |
179 | 179 | ||
180 | struct file *j_dev_file; | 180 | struct file *j_dev_file; |
181 | struct block_device *j_dev_bd; | 181 | struct block_device *j_dev_bd; |
182 | int j_1st_reserved_block; /* first block on s_dev of reserved area journal */ | 182 | int j_1st_reserved_block; /* first block on s_dev of reserved area journal */ |
183 | 183 | ||
184 | long j_state ; | 184 | long j_state; |
185 | unsigned long j_trans_id ; | 185 | unsigned long j_trans_id; |
186 | unsigned long j_mount_id ; | 186 | unsigned long j_mount_id; |
187 | unsigned long j_start ; /* start of current waiting commit (index into j_ap_blocks) */ | 187 | unsigned long j_start; /* start of current waiting commit (index into j_ap_blocks) */ |
188 | unsigned long j_len ; /* lenght of current waiting commit */ | 188 | unsigned long j_len; /* lenght of current waiting commit */ |
189 | unsigned long j_len_alloc ; /* number of buffers requested by journal_begin() */ | 189 | unsigned long j_len_alloc; /* number of buffers requested by journal_begin() */ |
190 | atomic_t j_wcount ; /* count of writers for current commit */ | 190 | atomic_t j_wcount; /* count of writers for current commit */ |
191 | unsigned long j_bcount ; /* batch count. allows turning X transactions into 1 */ | 191 | unsigned long j_bcount; /* batch count. allows turning X transactions into 1 */ |
192 | unsigned long j_first_unflushed_offset ; /* first unflushed transactions offset */ | 192 | unsigned long j_first_unflushed_offset; /* first unflushed transactions offset */ |
193 | unsigned long j_last_flush_trans_id ; /* last fully flushed journal timestamp */ | 193 | unsigned long j_last_flush_trans_id; /* last fully flushed journal timestamp */ |
194 | struct buffer_head *j_header_bh ; | 194 | struct buffer_head *j_header_bh; |
195 | 195 | ||
196 | time_t j_trans_start_time ; /* time this transaction started */ | 196 | time_t j_trans_start_time; /* time this transaction started */ |
197 | struct semaphore j_lock; | 197 | struct semaphore j_lock; |
198 | struct semaphore j_flush_sem; | 198 | struct semaphore j_flush_sem; |
199 | wait_queue_head_t j_join_wait ; /* wait for current transaction to finish before starting new one */ | 199 | wait_queue_head_t j_join_wait; /* wait for current transaction to finish before starting new one */ |
200 | atomic_t j_jlock ; /* lock for j_join_wait */ | 200 | atomic_t j_jlock; /* lock for j_join_wait */ |
201 | int j_list_bitmap_index ; /* number of next list bitmap to use */ | 201 | int j_list_bitmap_index; /* number of next list bitmap to use */ |
202 | int j_must_wait ; /* no more journal begins allowed. MUST sleep on j_join_wait */ | 202 | int j_must_wait; /* no more journal begins allowed. MUST sleep on j_join_wait */ |
203 | int j_next_full_flush ; /* next journal_end will flush all journal list */ | 203 | int j_next_full_flush; /* next journal_end will flush all journal list */ |
204 | int j_next_async_flush ; /* next journal_end will flush all async commits */ | 204 | int j_next_async_flush; /* next journal_end will flush all async commits */ |
205 | 205 | ||
206 | int j_cnode_used ; /* number of cnodes on the used list */ | 206 | int j_cnode_used; /* number of cnodes on the used list */ |
207 | int j_cnode_free ; /* number of cnodes on the free list */ | 207 | int j_cnode_free; /* number of cnodes on the free list */ |
208 | 208 | ||
209 | unsigned int j_trans_max ; /* max number of blocks in a transaction. */ | 209 | unsigned int j_trans_max; /* max number of blocks in a transaction. */ |
210 | unsigned int j_max_batch ; /* max number of blocks to batch into a trans */ | 210 | unsigned int j_max_batch; /* max number of blocks to batch into a trans */ |
211 | unsigned int j_max_commit_age ; /* in seconds, how old can an async commit be */ | 211 | unsigned int j_max_commit_age; /* in seconds, how old can an async commit be */ |
212 | unsigned int j_max_trans_age ; /* in seconds, how old can a transaction be */ | 212 | unsigned int j_max_trans_age; /* in seconds, how old can a transaction be */ |
213 | unsigned int j_default_max_commit_age ; /* the default for the max commit age */ | 213 | unsigned int j_default_max_commit_age; /* the default for the max commit age */ |
214 | 214 | ||
215 | struct reiserfs_journal_cnode *j_cnode_free_list ; | 215 | struct reiserfs_journal_cnode *j_cnode_free_list; |
216 | struct reiserfs_journal_cnode *j_cnode_free_orig ; /* orig pointer returned from vmalloc */ | 216 | struct reiserfs_journal_cnode *j_cnode_free_orig; /* orig pointer returned from vmalloc */ |
217 | 217 | ||
218 | struct reiserfs_journal_list *j_current_jl; | 218 | struct reiserfs_journal_list *j_current_jl; |
219 | int j_free_bitmap_nodes ; | 219 | int j_free_bitmap_nodes; |
220 | int j_used_bitmap_nodes ; | 220 | int j_used_bitmap_nodes; |
221 | 221 | ||
222 | int j_num_lists; /* total number of active transactions */ | 222 | int j_num_lists; /* total number of active transactions */ |
223 | int j_num_work_lists; /* number that need attention from kreiserfsd */ | 223 | int j_num_work_lists; /* number that need attention from kreiserfsd */ |
224 | 224 | ||
225 | /* debugging to make sure things are flushed in order */ | 225 | /* debugging to make sure things are flushed in order */ |
226 | int j_last_flush_id; | 226 | int j_last_flush_id; |
227 | 227 | ||
228 | /* debugging to make sure things are committed in order */ | 228 | /* debugging to make sure things are committed in order */ |
229 | int j_last_commit_id; | 229 | int j_last_commit_id; |
230 | 230 | ||
231 | struct list_head j_bitmap_nodes ; | 231 | struct list_head j_bitmap_nodes; |
232 | struct list_head j_dirty_buffers ; | 232 | struct list_head j_dirty_buffers; |
233 | spinlock_t j_dirty_buffers_lock ; /* protects j_dirty_buffers */ | 233 | spinlock_t j_dirty_buffers_lock; /* protects j_dirty_buffers */ |
234 | 234 | ||
235 | /* list of all active transactions */ | 235 | /* list of all active transactions */ |
236 | struct list_head j_journal_list; | 236 | struct list_head j_journal_list; |
237 | /* lists that haven't been touched by writeback attempts */ | 237 | /* lists that haven't been touched by writeback attempts */ |
238 | struct list_head j_working_list; | 238 | struct list_head j_working_list; |
239 | 239 | ||
240 | struct reiserfs_list_bitmap j_list_bitmap[JOURNAL_NUM_BITMAPS] ; /* array of bitmaps to record the deleted blocks */ | 240 | struct reiserfs_list_bitmap j_list_bitmap[JOURNAL_NUM_BITMAPS]; /* array of bitmaps to record the deleted blocks */ |
241 | struct reiserfs_journal_cnode *j_hash_table[JOURNAL_HASH_SIZE] ; /* hash table for real buffer heads in current trans */ | 241 | struct reiserfs_journal_cnode *j_hash_table[JOURNAL_HASH_SIZE]; /* hash table for real buffer heads in current trans */ |
242 | struct reiserfs_journal_cnode *j_list_hash_table[JOURNAL_HASH_SIZE] ; /* hash table for all the real buffer heads in all | 242 | struct reiserfs_journal_cnode *j_list_hash_table[JOURNAL_HASH_SIZE]; /* hash table for all the real buffer heads in all |
243 | the transactions */ | 243 | the transactions */ |
244 | struct list_head j_prealloc_list; /* list of inodes which have preallocated blocks */ | 244 | struct list_head j_prealloc_list; /* list of inodes which have preallocated blocks */ |
245 | int j_persistent_trans; | 245 | int j_persistent_trans; |
246 | unsigned long j_max_trans_size ; | 246 | unsigned long j_max_trans_size; |
247 | unsigned long j_max_batch_size ; | 247 | unsigned long j_max_batch_size; |
248 | 248 | ||
249 | int j_errno; | 249 | int j_errno; |
250 | 250 | ||
251 | /* when flushing ordered buffers, throttle new ordered writers */ | 251 | /* when flushing ordered buffers, throttle new ordered writers */ |
252 | struct work_struct j_work; | 252 | struct work_struct j_work; |
253 | atomic_t j_async_throttle; | 253 | atomic_t j_async_throttle; |
254 | }; | 254 | }; |
255 | 255 | ||
256 | enum journal_state_bits { | 256 | enum journal_state_bits { |
257 | J_WRITERS_BLOCKED = 1, /* set when new writers not allowed */ | 257 | J_WRITERS_BLOCKED = 1, /* set when new writers not allowed */ |
258 | J_WRITERS_QUEUED, /* set when log is full due to too many writers */ | 258 | J_WRITERS_QUEUED, /* set when log is full due to too many writers */ |
259 | J_ABORTED, /* set when log is aborted */ | 259 | J_ABORTED, /* set when log is aborted */ |
260 | }; | 260 | }; |
261 | 261 | ||
262 | #define JOURNAL_DESC_MAGIC "ReIsErLB" /* ick. magic string to find desc blocks in the journal */ | ||
262 | 263 | ||
263 | #define JOURNAL_DESC_MAGIC "ReIsErLB" /* ick. magic string to find desc blocks in the journal */ | 264 | typedef __u32(*hashf_t) (const signed char *, int); |
264 | 265 | ||
265 | typedef __u32 (*hashf_t) (const signed char *, int); | 266 | struct reiserfs_bitmap_info { |
266 | 267 | // FIXME: Won't work with block sizes > 8K | |
267 | struct reiserfs_bitmap_info | 268 | __u16 first_zero_hint; |
268 | { | 269 | __u16 free_count; |
269 | // FIXME: Won't work with block sizes > 8K | 270 | struct buffer_head *bh; /* the actual bitmap */ |
270 | __u16 first_zero_hint; | ||
271 | __u16 free_count; | ||
272 | struct buffer_head *bh; /* the actual bitmap */ | ||
273 | }; | 271 | }; |
274 | 272 | ||
275 | struct proc_dir_entry; | 273 | struct proc_dir_entry; |
276 | 274 | ||
277 | #if defined( CONFIG_PROC_FS ) && defined( CONFIG_REISERFS_PROC_INFO ) | 275 | #if defined( CONFIG_PROC_FS ) && defined( CONFIG_REISERFS_PROC_INFO ) |
278 | typedef unsigned long int stat_cnt_t; | 276 | typedef unsigned long int stat_cnt_t; |
279 | typedef struct reiserfs_proc_info_data | 277 | typedef struct reiserfs_proc_info_data { |
280 | { | 278 | spinlock_t lock; |
281 | spinlock_t lock; | 279 | int exiting; |
282 | int exiting; | 280 | int max_hash_collisions; |
283 | int max_hash_collisions; | 281 | |
284 | 282 | stat_cnt_t breads; | |
285 | stat_cnt_t breads; | 283 | stat_cnt_t bread_miss; |
286 | stat_cnt_t bread_miss; | 284 | stat_cnt_t search_by_key; |
287 | stat_cnt_t search_by_key; | 285 | stat_cnt_t search_by_key_fs_changed; |
288 | stat_cnt_t search_by_key_fs_changed; | 286 | stat_cnt_t search_by_key_restarted; |
289 | stat_cnt_t search_by_key_restarted; | 287 | |
290 | 288 | stat_cnt_t insert_item_restarted; | |
291 | stat_cnt_t insert_item_restarted; | 289 | stat_cnt_t paste_into_item_restarted; |
292 | stat_cnt_t paste_into_item_restarted; | 290 | stat_cnt_t cut_from_item_restarted; |
293 | stat_cnt_t cut_from_item_restarted; | 291 | stat_cnt_t delete_solid_item_restarted; |
294 | stat_cnt_t delete_solid_item_restarted; | 292 | stat_cnt_t delete_item_restarted; |
295 | stat_cnt_t delete_item_restarted; | 293 | |
296 | 294 | stat_cnt_t leaked_oid; | |
297 | stat_cnt_t leaked_oid; | 295 | stat_cnt_t leaves_removable; |
298 | stat_cnt_t leaves_removable; | 296 | |
299 | 297 | /* balances per level. Use explicit 5 as MAX_HEIGHT is not visible yet. */ | |
300 | /* balances per level. Use explicit 5 as MAX_HEIGHT is not visible yet. */ | 298 | stat_cnt_t balance_at[5]; /* XXX */ |
301 | stat_cnt_t balance_at[ 5 ]; /* XXX */ | 299 | /* sbk == search_by_key */ |
302 | /* sbk == search_by_key */ | 300 | stat_cnt_t sbk_read_at[5]; /* XXX */ |
303 | stat_cnt_t sbk_read_at[ 5 ]; /* XXX */ | 301 | stat_cnt_t sbk_fs_changed[5]; |
304 | stat_cnt_t sbk_fs_changed[ 5 ]; | 302 | stat_cnt_t sbk_restarted[5]; |
305 | stat_cnt_t sbk_restarted[ 5 ]; | 303 | stat_cnt_t items_at[5]; /* XXX */ |
306 | stat_cnt_t items_at[ 5 ]; /* XXX */ | 304 | stat_cnt_t free_at[5]; /* XXX */ |
307 | stat_cnt_t free_at[ 5 ]; /* XXX */ | 305 | stat_cnt_t can_node_be_removed[5]; /* XXX */ |
308 | stat_cnt_t can_node_be_removed[ 5 ]; /* XXX */ | 306 | long int lnum[5]; /* XXX */ |
309 | long int lnum[ 5 ]; /* XXX */ | 307 | long int rnum[5]; /* XXX */ |
310 | long int rnum[ 5 ]; /* XXX */ | 308 | long int lbytes[5]; /* XXX */ |
311 | long int lbytes[ 5 ]; /* XXX */ | 309 | long int rbytes[5]; /* XXX */ |
312 | long int rbytes[ 5 ]; /* XXX */ | 310 | stat_cnt_t get_neighbors[5]; |
313 | stat_cnt_t get_neighbors[ 5 ]; | 311 | stat_cnt_t get_neighbors_restart[5]; |
314 | stat_cnt_t get_neighbors_restart[ 5 ]; | 312 | stat_cnt_t need_l_neighbor[5]; |
315 | stat_cnt_t need_l_neighbor[ 5 ]; | 313 | stat_cnt_t need_r_neighbor[5]; |
316 | stat_cnt_t need_r_neighbor[ 5 ]; | 314 | |
317 | 315 | stat_cnt_t free_block; | |
318 | stat_cnt_t free_block; | 316 | struct __scan_bitmap_stats { |
319 | struct __scan_bitmap_stats { | 317 | stat_cnt_t call; |
320 | stat_cnt_t call; | 318 | stat_cnt_t wait; |
321 | stat_cnt_t wait; | 319 | stat_cnt_t bmap; |
322 | stat_cnt_t bmap; | 320 | stat_cnt_t retry; |
323 | stat_cnt_t retry; | 321 | stat_cnt_t in_journal_hint; |
324 | stat_cnt_t in_journal_hint; | 322 | stat_cnt_t in_journal_nohint; |
325 | stat_cnt_t in_journal_nohint; | 323 | stat_cnt_t stolen; |
326 | stat_cnt_t stolen; | 324 | } scan_bitmap; |
327 | } scan_bitmap; | 325 | struct __journal_stats { |
328 | struct __journal_stats { | 326 | stat_cnt_t in_journal; |
329 | stat_cnt_t in_journal; | 327 | stat_cnt_t in_journal_bitmap; |
330 | stat_cnt_t in_journal_bitmap; | 328 | stat_cnt_t in_journal_reusable; |
331 | stat_cnt_t in_journal_reusable; | 329 | stat_cnt_t lock_journal; |
332 | stat_cnt_t lock_journal; | 330 | stat_cnt_t lock_journal_wait; |
333 | stat_cnt_t lock_journal_wait; | 331 | stat_cnt_t journal_being; |
334 | stat_cnt_t journal_being; | 332 | stat_cnt_t journal_relock_writers; |
335 | stat_cnt_t journal_relock_writers; | 333 | stat_cnt_t journal_relock_wcount; |
336 | stat_cnt_t journal_relock_wcount; | 334 | stat_cnt_t mark_dirty; |
337 | stat_cnt_t mark_dirty; | 335 | stat_cnt_t mark_dirty_already; |
338 | stat_cnt_t mark_dirty_already; | 336 | stat_cnt_t mark_dirty_notjournal; |
339 | stat_cnt_t mark_dirty_notjournal; | 337 | stat_cnt_t restore_prepared; |
340 | stat_cnt_t restore_prepared; | 338 | stat_cnt_t prepare; |
341 | stat_cnt_t prepare; | 339 | stat_cnt_t prepare_retry; |
342 | stat_cnt_t prepare_retry; | 340 | } journal; |
343 | } journal; | ||
344 | } reiserfs_proc_info_data_t; | 341 | } reiserfs_proc_info_data_t; |
345 | #else | 342 | #else |
346 | typedef struct reiserfs_proc_info_data | 343 | typedef struct reiserfs_proc_info_data { |
347 | {} reiserfs_proc_info_data_t; | 344 | } reiserfs_proc_info_data_t; |
348 | #endif | 345 | #endif |
349 | 346 | ||
350 | /* reiserfs union of in-core super block data */ | 347 | /* reiserfs union of in-core super block data */ |
351 | struct reiserfs_sb_info | 348 | struct reiserfs_sb_info { |
352 | { | 349 | struct buffer_head *s_sbh; /* Buffer containing the super block */ |
353 | struct buffer_head * s_sbh; /* Buffer containing the super block */ | 350 | /* both the comment and the choice of |
354 | /* both the comment and the choice of | 351 | name are unclear for s_rs -Hans */ |
355 | name are unclear for s_rs -Hans */ | 352 | struct reiserfs_super_block *s_rs; /* Pointer to the super block in the buffer */ |
356 | struct reiserfs_super_block * s_rs; /* Pointer to the super block in the buffer */ | 353 | struct reiserfs_bitmap_info *s_ap_bitmap; |
357 | struct reiserfs_bitmap_info * s_ap_bitmap; | 354 | struct reiserfs_journal *s_journal; /* pointer to journal information */ |
358 | struct reiserfs_journal *s_journal ; /* pointer to journal information */ | 355 | unsigned short s_mount_state; /* reiserfs state (valid, invalid) */ |
359 | unsigned short s_mount_state; /* reiserfs state (valid, invalid) */ | 356 | |
360 | 357 | /* Comment? -Hans */ | |
361 | /* Comment? -Hans */ | 358 | void (*end_io_handler) (struct buffer_head *, int); |
362 | void (*end_io_handler)(struct buffer_head *, int); | 359 | hashf_t s_hash_function; /* pointer to function which is used |
363 | hashf_t s_hash_function; /* pointer to function which is used | 360 | to sort names in directory. Set on |
364 | to sort names in directory. Set on | 361 | mount */ |
365 | mount */ | 362 | unsigned long s_mount_opt; /* reiserfs's mount options are set |
366 | unsigned long s_mount_opt; /* reiserfs's mount options are set | 363 | here (currently - NOTAIL, NOLOG, |
367 | here (currently - NOTAIL, NOLOG, | 364 | REPLAYONLY) */ |
368 | REPLAYONLY) */ | 365 | |
369 | 366 | struct { /* This is a structure that describes block allocator options */ | |
370 | struct { /* This is a structure that describes block allocator options */ | 367 | unsigned long bits; /* Bitfield for enable/disable kind of options */ |
371 | unsigned long bits; /* Bitfield for enable/disable kind of options */ | 368 | unsigned long large_file_size; /* size started from which we consider file to be a large one(in blocks) */ |
372 | unsigned long large_file_size; /* size started from which we consider file to be a large one(in blocks) */ | 369 | int border; /* percentage of disk, border takes */ |
373 | int border; /* percentage of disk, border takes */ | 370 | int preallocmin; /* Minimal file size (in blocks) starting from which we do preallocations */ |
374 | int preallocmin; /* Minimal file size (in blocks) starting from which we do preallocations */ | 371 | int preallocsize; /* Number of blocks we try to prealloc when file |
375 | int preallocsize; /* Number of blocks we try to prealloc when file | 372 | reaches preallocmin size (in blocks) or |
376 | reaches preallocmin size (in blocks) or | 373 | prealloc_list is empty. */ |
377 | prealloc_list is empty. */ | 374 | } s_alloc_options; |
378 | } s_alloc_options; | 375 | |
379 | 376 | /* Comment? -Hans */ | |
380 | /* Comment? -Hans */ | 377 | wait_queue_head_t s_wait; |
381 | wait_queue_head_t s_wait; | 378 | /* To be obsoleted soon by per buffer seals.. -Hans */ |
382 | /* To be obsoleted soon by per buffer seals.. -Hans */ | 379 | atomic_t s_generation_counter; // increased by one every time the |
383 | atomic_t s_generation_counter; // increased by one every time the | 380 | // tree gets re-balanced |
384 | // tree gets re-balanced | 381 | unsigned long s_properties; /* File system properties. Currently holds |
385 | unsigned long s_properties; /* File system properties. Currently holds | 382 | on-disk FS format */ |
386 | on-disk FS format */ | 383 | |
387 | 384 | /* session statistics */ | |
388 | /* session statistics */ | 385 | int s_kmallocs; |
389 | int s_kmallocs; | 386 | int s_disk_reads; |
390 | int s_disk_reads; | 387 | int s_disk_writes; |
391 | int s_disk_writes; | 388 | int s_fix_nodes; |
392 | int s_fix_nodes; | 389 | int s_do_balance; |
393 | int s_do_balance; | 390 | int s_unneeded_left_neighbor; |
394 | int s_unneeded_left_neighbor; | 391 | int s_good_search_by_key_reada; |
395 | int s_good_search_by_key_reada; | 392 | int s_bmaps; |
396 | int s_bmaps; | 393 | int s_bmaps_without_search; |
397 | int s_bmaps_without_search; | 394 | int s_direct2indirect; |
398 | int s_direct2indirect; | 395 | int s_indirect2direct; |
399 | int s_indirect2direct; | ||
400 | /* set up when it's ok for reiserfs_read_inode2() to read from | 396 | /* set up when it's ok for reiserfs_read_inode2() to read from |
401 | disk inode with nlink==0. Currently this is only used during | 397 | disk inode with nlink==0. Currently this is only used during |
402 | finish_unfinished() processing at mount time */ | 398 | finish_unfinished() processing at mount time */ |
403 | int s_is_unlinked_ok; | 399 | int s_is_unlinked_ok; |
404 | reiserfs_proc_info_data_t s_proc_info_data; | 400 | reiserfs_proc_info_data_t s_proc_info_data; |
405 | struct proc_dir_entry *procdir; | 401 | struct proc_dir_entry *procdir; |
406 | int reserved_blocks; /* amount of blocks reserved for further allocations */ | 402 | int reserved_blocks; /* amount of blocks reserved for further allocations */ |
407 | spinlock_t bitmap_lock; /* this lock on now only used to protect reserved_blocks variable */ | 403 | spinlock_t bitmap_lock; /* this lock on now only used to protect reserved_blocks variable */ |
408 | struct dentry *priv_root; /* root of /.reiserfs_priv */ | 404 | struct dentry *priv_root; /* root of /.reiserfs_priv */ |
409 | struct dentry *xattr_root; /* root of /.reiserfs_priv/.xa */ | 405 | struct dentry *xattr_root; /* root of /.reiserfs_priv/.xa */ |
410 | struct rw_semaphore xattr_dir_sem; | 406 | struct rw_semaphore xattr_dir_sem; |
411 | 407 | ||
412 | int j_errno; | 408 | int j_errno; |
413 | #ifdef CONFIG_QUOTA | 409 | #ifdef CONFIG_QUOTA |
414 | char *s_qf_names[MAXQUOTAS]; | 410 | char *s_qf_names[MAXQUOTAS]; |
415 | int s_jquota_fmt; | 411 | int s_jquota_fmt; |
416 | #endif | 412 | #endif |
417 | }; | 413 | }; |
418 | 414 | ||
@@ -422,14 +418,14 @@ struct reiserfs_sb_info | |||
422 | 418 | ||
423 | enum reiserfs_mount_options { | 419 | enum reiserfs_mount_options { |
424 | /* Mount options */ | 420 | /* Mount options */ |
425 | REISERFS_LARGETAIL, /* large tails will be created in a session */ | 421 | REISERFS_LARGETAIL, /* large tails will be created in a session */ |
426 | REISERFS_SMALLTAIL, /* small (for files less than block size) tails will be created in a session */ | 422 | REISERFS_SMALLTAIL, /* small (for files less than block size) tails will be created in a session */ |
427 | REPLAYONLY, /* replay journal and return 0. Use by fsck */ | 423 | REPLAYONLY, /* replay journal and return 0. Use by fsck */ |
428 | REISERFS_CONVERT, /* -o conv: causes conversion of old | 424 | REISERFS_CONVERT, /* -o conv: causes conversion of old |
429 | format super block to the new | 425 | format super block to the new |
430 | format. If not specified - old | 426 | format. If not specified - old |
431 | partition will be dealt with in a | 427 | partition will be dealt with in a |
432 | manner of 3.5.x */ | 428 | manner of 3.5.x */ |
433 | 429 | ||
434 | /* -o hash={tea, rupasov, r5, detect} is meant for properly mounting | 430 | /* -o hash={tea, rupasov, r5, detect} is meant for properly mounting |
435 | ** reiserfs disks from 3.5.19 or earlier. 99% of the time, this option | 431 | ** reiserfs disks from 3.5.19 or earlier. 99% of the time, this option |
@@ -439,41 +435,41 @@ enum reiserfs_mount_options { | |||
439 | ** the existing hash on the FS, so if you have a tea hash disk, and mount | 435 | ** the existing hash on the FS, so if you have a tea hash disk, and mount |
440 | ** with -o hash=rupasov, the mount will fail. | 436 | ** with -o hash=rupasov, the mount will fail. |
441 | */ | 437 | */ |
442 | FORCE_TEA_HASH, /* try to force tea hash on mount */ | 438 | FORCE_TEA_HASH, /* try to force tea hash on mount */ |
443 | FORCE_RUPASOV_HASH, /* try to force rupasov hash on mount */ | 439 | FORCE_RUPASOV_HASH, /* try to force rupasov hash on mount */ |
444 | FORCE_R5_HASH, /* try to force rupasov hash on mount */ | 440 | FORCE_R5_HASH, /* try to force rupasov hash on mount */ |
445 | FORCE_HASH_DETECT, /* try to detect hash function on mount */ | 441 | FORCE_HASH_DETECT, /* try to detect hash function on mount */ |
446 | 442 | ||
447 | REISERFS_DATA_LOG, | 443 | REISERFS_DATA_LOG, |
448 | REISERFS_DATA_ORDERED, | 444 | REISERFS_DATA_ORDERED, |
449 | REISERFS_DATA_WRITEBACK, | 445 | REISERFS_DATA_WRITEBACK, |
450 | 446 | ||
451 | /* used for testing experimental features, makes benchmarking new | 447 | /* used for testing experimental features, makes benchmarking new |
452 | features with and without more convenient, should never be used by | 448 | features with and without more convenient, should never be used by |
453 | users in any code shipped to users (ideally) */ | 449 | users in any code shipped to users (ideally) */ |
454 | 450 | ||
455 | REISERFS_NO_BORDER, | 451 | REISERFS_NO_BORDER, |
456 | REISERFS_NO_UNHASHED_RELOCATION, | 452 | REISERFS_NO_UNHASHED_RELOCATION, |
457 | REISERFS_HASHED_RELOCATION, | 453 | REISERFS_HASHED_RELOCATION, |
458 | REISERFS_ATTRS, | 454 | REISERFS_ATTRS, |
459 | REISERFS_XATTRS, | 455 | REISERFS_XATTRS, |
460 | REISERFS_XATTRS_USER, | 456 | REISERFS_XATTRS_USER, |
461 | REISERFS_POSIXACL, | 457 | REISERFS_POSIXACL, |
462 | REISERFS_BARRIER_NONE, | 458 | REISERFS_BARRIER_NONE, |
463 | REISERFS_BARRIER_FLUSH, | 459 | REISERFS_BARRIER_FLUSH, |
464 | 460 | ||
465 | /* Actions on error */ | 461 | /* Actions on error */ |
466 | REISERFS_ERROR_PANIC, | 462 | REISERFS_ERROR_PANIC, |
467 | REISERFS_ERROR_RO, | 463 | REISERFS_ERROR_RO, |
468 | REISERFS_ERROR_CONTINUE, | 464 | REISERFS_ERROR_CONTINUE, |
469 | 465 | ||
470 | REISERFS_QUOTA, /* Some quota option specified */ | 466 | REISERFS_QUOTA, /* Some quota option specified */ |
471 | 467 | ||
472 | REISERFS_TEST1, | 468 | REISERFS_TEST1, |
473 | REISERFS_TEST2, | 469 | REISERFS_TEST2, |
474 | REISERFS_TEST3, | 470 | REISERFS_TEST3, |
475 | REISERFS_TEST4, | 471 | REISERFS_TEST4, |
476 | REISERFS_UNSUPPORTED_OPT, | 472 | REISERFS_UNSUPPORTED_OPT, |
477 | }; | 473 | }; |
478 | 474 | ||
479 | #define reiserfs_r5_hash(s) (REISERFS_SB(s)->s_mount_opt & (1 << FORCE_R5_HASH)) | 475 | #define reiserfs_r5_hash(s) (REISERFS_SB(s)->s_mount_opt & (1 << FORCE_R5_HASH)) |
@@ -504,18 +500,17 @@ enum reiserfs_mount_options { | |||
504 | #define reiserfs_error_panic(s) (REISERFS_SB(s)->s_mount_opt & (1 << REISERFS_ERROR_PANIC)) | 500 | #define reiserfs_error_panic(s) (REISERFS_SB(s)->s_mount_opt & (1 << REISERFS_ERROR_PANIC)) |
505 | #define reiserfs_error_ro(s) (REISERFS_SB(s)->s_mount_opt & (1 << REISERFS_ERROR_RO)) | 501 | #define reiserfs_error_ro(s) (REISERFS_SB(s)->s_mount_opt & (1 << REISERFS_ERROR_RO)) |
506 | 502 | ||
507 | void reiserfs_file_buffer (struct buffer_head * bh, int list); | 503 | void reiserfs_file_buffer(struct buffer_head *bh, int list); |
508 | extern struct file_system_type reiserfs_fs_type; | 504 | extern struct file_system_type reiserfs_fs_type; |
509 | int reiserfs_resize(struct super_block *, unsigned long) ; | 505 | int reiserfs_resize(struct super_block *, unsigned long); |
510 | 506 | ||
511 | #define CARRY_ON 0 | 507 | #define CARRY_ON 0 |
512 | #define SCHEDULE_OCCURRED 1 | 508 | #define SCHEDULE_OCCURRED 1 |
513 | 509 | ||
514 | |||
515 | #define SB_BUFFER_WITH_SB(s) (REISERFS_SB(s)->s_sbh) | 510 | #define SB_BUFFER_WITH_SB(s) (REISERFS_SB(s)->s_sbh) |
516 | #define SB_JOURNAL(s) (REISERFS_SB(s)->s_journal) | 511 | #define SB_JOURNAL(s) (REISERFS_SB(s)->s_journal) |
517 | #define SB_JOURNAL_1st_RESERVED_BLOCK(s) (SB_JOURNAL(s)->j_1st_reserved_block) | 512 | #define SB_JOURNAL_1st_RESERVED_BLOCK(s) (SB_JOURNAL(s)->j_1st_reserved_block) |
518 | #define SB_JOURNAL_LEN_FREE(s) (SB_JOURNAL(s)->j_journal_len_free) | 513 | #define SB_JOURNAL_LEN_FREE(s) (SB_JOURNAL(s)->j_journal_len_free) |
519 | #define SB_AP_BITMAP(s) (REISERFS_SB(s)->s_ap_bitmap) | 514 | #define SB_AP_BITMAP(s) (REISERFS_SB(s)->s_ap_bitmap) |
520 | 515 | ||
521 | #define SB_DISK_JOURNAL_HEAD(s) (SB_JOURNAL(s)->j_header_bh->) | 516 | #define SB_DISK_JOURNAL_HEAD(s) (SB_JOURNAL(s)->j_header_bh->) |
@@ -525,13 +520,14 @@ int reiserfs_resize(struct super_block *, unsigned long) ; | |||
525 | */ | 520 | */ |
526 | static inline char *reiserfs_bdevname(struct super_block *s) | 521 | static inline char *reiserfs_bdevname(struct super_block *s) |
527 | { | 522 | { |
528 | return (s == NULL) ? "Null superblock" : s -> s_id; | 523 | return (s == NULL) ? "Null superblock" : s->s_id; |
529 | } | 524 | } |
530 | 525 | ||
531 | #define reiserfs_is_journal_aborted(journal) (unlikely (__reiserfs_is_journal_aborted (journal))) | 526 | #define reiserfs_is_journal_aborted(journal) (unlikely (__reiserfs_is_journal_aborted (journal))) |
532 | static inline int __reiserfs_is_journal_aborted (struct reiserfs_journal *journal) | 527 | static inline int __reiserfs_is_journal_aborted(struct reiserfs_journal |
528 | *journal) | ||
533 | { | 529 | { |
534 | return test_bit (J_ABORTED, &journal->j_state); | 530 | return test_bit(J_ABORTED, &journal->j_state); |
535 | } | 531 | } |
536 | 532 | ||
537 | #endif /* _LINUX_REISER_FS_SB */ | 533 | #endif /* _LINUX_REISER_FS_SB */ |