diff options
Diffstat (limited to 'fs/dlm/dlm_internal.h')
-rw-r--r-- | fs/dlm/dlm_internal.h | 46 |
1 files changed, 27 insertions, 19 deletions
diff --git a/fs/dlm/dlm_internal.h b/fs/dlm/dlm_internal.h index bc342f7ac3af..3093207a7684 100644 --- a/fs/dlm/dlm_internal.h +++ b/fs/dlm/dlm_internal.h | |||
@@ -55,8 +55,6 @@ struct dlm_lkb; | |||
55 | struct dlm_rsb; | 55 | struct dlm_rsb; |
56 | struct dlm_member; | 56 | struct dlm_member; |
57 | struct dlm_rsbtable; | 57 | struct dlm_rsbtable; |
58 | struct dlm_dirtable; | ||
59 | struct dlm_direntry; | ||
60 | struct dlm_recover; | 58 | struct dlm_recover; |
61 | struct dlm_header; | 59 | struct dlm_header; |
62 | struct dlm_message; | 60 | struct dlm_message; |
@@ -98,18 +96,6 @@ do { \ | |||
98 | } | 96 | } |
99 | 97 | ||
100 | 98 | ||
101 | struct dlm_direntry { | ||
102 | struct list_head list; | ||
103 | uint32_t master_nodeid; | ||
104 | uint16_t length; | ||
105 | char name[1]; | ||
106 | }; | ||
107 | |||
108 | struct dlm_dirtable { | ||
109 | struct list_head list; | ||
110 | spinlock_t lock; | ||
111 | }; | ||
112 | |||
113 | struct dlm_rsbtable { | 99 | struct dlm_rsbtable { |
114 | struct rb_root keep; | 100 | struct rb_root keep; |
115 | struct rb_root toss; | 101 | struct rb_root toss; |
@@ -283,6 +269,15 @@ struct dlm_lkb { | |||
283 | }; | 269 | }; |
284 | }; | 270 | }; |
285 | 271 | ||
272 | /* | ||
273 | * res_master_nodeid is "normal": 0 is unset/invalid, non-zero is the real | ||
274 | * nodeid, even when nodeid is our_nodeid. | ||
275 | * | ||
276 | * res_nodeid is "odd": -1 is unset/invalid, zero means our_nodeid, | ||
277 | * greater than zero when another nodeid. | ||
278 | * | ||
279 | * (TODO: remove res_nodeid and only use res_master_nodeid) | ||
280 | */ | ||
286 | 281 | ||
287 | struct dlm_rsb { | 282 | struct dlm_rsb { |
288 | struct dlm_ls *res_ls; /* the lockspace */ | 283 | struct dlm_ls *res_ls; /* the lockspace */ |
@@ -291,6 +286,8 @@ struct dlm_rsb { | |||
291 | unsigned long res_flags; | 286 | unsigned long res_flags; |
292 | int res_length; /* length of rsb name */ | 287 | int res_length; /* length of rsb name */ |
293 | int res_nodeid; | 288 | int res_nodeid; |
289 | int res_master_nodeid; | ||
290 | int res_dir_nodeid; | ||
294 | uint32_t res_lvbseq; | 291 | uint32_t res_lvbseq; |
295 | uint32_t res_hash; | 292 | uint32_t res_hash; |
296 | uint32_t res_bucket; /* rsbtbl */ | 293 | uint32_t res_bucket; /* rsbtbl */ |
@@ -313,10 +310,21 @@ struct dlm_rsb { | |||
313 | char res_name[DLM_RESNAME_MAXLEN+1]; | 310 | char res_name[DLM_RESNAME_MAXLEN+1]; |
314 | }; | 311 | }; |
315 | 312 | ||
313 | /* dlm_master_lookup() flags */ | ||
314 | |||
315 | #define DLM_LU_RECOVER_DIR 1 | ||
316 | #define DLM_LU_RECOVER_MASTER 2 | ||
317 | |||
318 | /* dlm_master_lookup() results */ | ||
319 | |||
320 | #define DLM_LU_MATCH 1 | ||
321 | #define DLM_LU_ADD 2 | ||
322 | |||
316 | /* find_rsb() flags */ | 323 | /* find_rsb() flags */ |
317 | 324 | ||
318 | #define R_MASTER 1 /* only return rsb if it's a master */ | 325 | #define R_REQUEST 0x00000001 |
319 | #define R_CREATE 2 /* create/add rsb if not found */ | 326 | #define R_RECEIVE_REQUEST 0x00000002 |
327 | #define R_RECEIVE_RECOVER 0x00000004 | ||
320 | 328 | ||
321 | /* rsb_flags */ | 329 | /* rsb_flags */ |
322 | 330 | ||
@@ -509,9 +517,6 @@ struct dlm_ls { | |||
509 | struct dlm_rsbtable *ls_rsbtbl; | 517 | struct dlm_rsbtable *ls_rsbtbl; |
510 | uint32_t ls_rsbtbl_size; | 518 | uint32_t ls_rsbtbl_size; |
511 | 519 | ||
512 | struct dlm_dirtable *ls_dirtbl; | ||
513 | uint32_t ls_dirtbl_size; | ||
514 | |||
515 | struct mutex ls_waiters_mutex; | 520 | struct mutex ls_waiters_mutex; |
516 | struct list_head ls_waiters; /* lkbs needing a reply */ | 521 | struct list_head ls_waiters; /* lkbs needing a reply */ |
517 | 522 | ||
@@ -545,6 +550,7 @@ struct dlm_ls { | |||
545 | struct dentry *ls_debug_waiters_dentry; /* debugfs */ | 550 | struct dentry *ls_debug_waiters_dentry; /* debugfs */ |
546 | struct dentry *ls_debug_locks_dentry; /* debugfs */ | 551 | struct dentry *ls_debug_locks_dentry; /* debugfs */ |
547 | struct dentry *ls_debug_all_dentry; /* debugfs */ | 552 | struct dentry *ls_debug_all_dentry; /* debugfs */ |
553 | struct dentry *ls_debug_toss_dentry; /* debugfs */ | ||
548 | 554 | ||
549 | wait_queue_head_t ls_uevent_wait; /* user part of join/leave */ | 555 | wait_queue_head_t ls_uevent_wait; /* user part of join/leave */ |
550 | int ls_uevent_result; | 556 | int ls_uevent_result; |
@@ -573,6 +579,8 @@ struct dlm_ls { | |||
573 | struct mutex ls_requestqueue_mutex; | 579 | struct mutex ls_requestqueue_mutex; |
574 | struct dlm_rcom *ls_recover_buf; | 580 | struct dlm_rcom *ls_recover_buf; |
575 | int ls_recover_nodeid; /* for debugging */ | 581 | int ls_recover_nodeid; /* for debugging */ |
582 | unsigned int ls_recover_dir_sent_res; /* for log info */ | ||
583 | unsigned int ls_recover_dir_sent_msg; /* for log info */ | ||
576 | unsigned int ls_recover_locks_in; /* for log info */ | 584 | unsigned int ls_recover_locks_in; /* for log info */ |
577 | uint64_t ls_rcom_seq; | 585 | uint64_t ls_rcom_seq; |
578 | spinlock_t ls_rcom_spin; | 586 | spinlock_t ls_rcom_spin; |