Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Data Structures | Macros | Typedefs | Enumerations | Functions
dlmcommon.h File Reference
#include <linux/kref.h>

Go to the source code of this file.

Data Structures

struct  dlm_master_list_entry
 
struct  dlm_recovery_ctxt
 
struct  dlm_ctxt
 
struct  dlm_request_all_locks_priv
 
struct  dlm_mig_lockres_priv
 
struct  dlm_assert_master_priv
 
struct  dlm_deref_lockres_priv
 
struct  dlm_work_item
 
struct  dlm_lock_resource
 
struct  dlm_migratable_lock
 
struct  dlm_lock
 
struct  dlm_node_iter
 
struct  dlm_reco_node_data
 
struct  dlm_master_request
 
struct  dlm_assert_master
 
struct  dlm_migrate_request
 
struct  dlm_master_requery
 
struct  dlm_migratable_lockres
 
struct  dlm_create_lock
 
struct  dlm_convert_lock
 
struct  dlm_unlock_lock
 
struct  dlm_proxy_ast
 
struct  dlm_query_join_packet
 
union  dlm_query_join_response
 
struct  dlm_lock_request
 
struct  dlm_reco_data_done
 
struct  dlm_begin_reco
 
struct  dlm_query_join_request
 
struct  dlm_assert_joined
 
struct  dlm_cancel_join
 
struct  dlm_query_region
 
struct  dlm_node_info
 
struct  dlm_query_nodeinfo
 
struct  dlm_exit_domain
 
struct  dlm_finalize_reco
 
struct  dlm_deref_lockres
 

Macros

#define DLM_HB_NODE_DOWN_PRI   (0xf000000)
 
#define DLM_HB_NODE_UP_PRI   (0x8000000)
 
#define DLM_LOCKID_NAME_MAX   32
 
#define DLM_DOMAIN_NAME_MAX_LEN   255
 
#define DLM_LOCK_RES_OWNER_UNKNOWN   O2NM_MAX_NODES
 
#define DLM_THREAD_SHUFFLE_INTERVAL   5
 
#define DLM_THREAD_MS   200
 
#define DLM_HASH_SIZE_DEFAULT   (1 << 17)
 
#define DLM_HASH_PAGES   (DLM_HASH_SIZE_DEFAULT / PAGE_SIZE)
 
#define DLM_BUCKETS_PER_PAGE   (PAGE_SIZE / sizeof(struct hlist_head))
 
#define DLM_HASH_BUCKETS   (DLM_HASH_PAGES * DLM_BUCKETS_PER_PAGE)
 
#define dlm_lockid_hash(_n, _l)   full_name_hash(_n, _l)
 
#define LKM_VALID_FLAGS
 
#define DLM_RECOVERY_LOCK_NAME   "$RECOVERY"
 
#define DLM_RECOVERY_LOCK_NAME_LEN   9
 
#define DLM_RECO_STATE_ACTIVE   0x0001
 
#define DLM_RECO_STATE_FINALIZE   0x0002
 
#define DLM_LOCK_RES_UNINITED   0x00000001
 
#define DLM_LOCK_RES_RECOVERING   0x00000002
 
#define DLM_LOCK_RES_READY   0x00000004
 
#define DLM_LOCK_RES_DIRTY   0x00000008
 
#define DLM_LOCK_RES_IN_PROGRESS   0x00000010
 
#define DLM_LOCK_RES_MIGRATING   0x00000020
 
#define DLM_LOCK_RES_DROPPING_REF   0x00000040
 
#define DLM_LOCK_RES_BLOCK_DIRTY   0x00001000
 
#define DLM_LOCK_RES_SETREF_INPROG   0x00002000
 
#define DLM_NODE_DEATH_WAIT_MAX   (5 * 1000)
 
#define DLM_PURGE_INTERVAL_MS   (8 * 1000)
 
#define DLM_LKSB_UNUSED1   0x01
 
#define DLM_LKSB_PUT_LVB   0x02
 
#define DLM_LKSB_GET_LVB   0x04
 
#define DLM_LKSB_UNUSED2   0x08
 
#define DLM_LKSB_UNUSED3   0x10
 
#define DLM_LKSB_UNUSED4   0x20
 
#define DLM_LKSB_UNUSED5   0x40
 
#define DLM_LKSB_UNUSED6   0x80
 
#define DLM_ASSERT_RESPONSE_REASSERT   0x00000001
 
#define DLM_ASSERT_RESPONSE_MASTERY_REF   0x00000002
 
#define DLM_ASSERT_MASTER_MLE_CLEANUP   0x00000001
 
#define DLM_ASSERT_MASTER_REQUERY   0x00000002
 
#define DLM_ASSERT_MASTER_FINISH_MIGRATION   0x00000004
 
#define DLM_MIGRATE_RESPONSE_MASTERY_REF   0x00000001
 
#define DLM_MRES_RECOVERY   0x01
 
#define DLM_MRES_MIGRATION   0x02
 
#define DLM_MRES_ALL_DONE   0x04
 
#define DLM_MAX_MIGRATABLE_LOCKS   240
 
#define DLM_MIG_LOCKRES_MAX_LEN
 
#define DLM_MIG_LOCKRES_RESERVED
 
#define DLM_CONVERT_LOCK_MAX_LEN   (sizeof(struct dlm_convert_lock)+DLM_LVB_LEN)
 
#define DLM_UNLOCK_LOCK_MAX_LEN   (sizeof(struct dlm_unlock_lock)+DLM_LVB_LEN)
 
#define DLM_PROXY_AST_MAX_LEN   (sizeof(struct dlm_proxy_ast)+DLM_LVB_LEN)
 
#define DLM_MOD_KEY   (0x666c6172)
 
#define BITS_PER_BYTE   8
 
#define BITS_TO_BYTES(bits)   (((bits)+BITS_PER_BYTE-1)/BITS_PER_BYTE)
 

Typedefs

typedef voiddlm_workfunc_t )(struct dlm_work_item *, void *)
 

Enumerations

enum  dlm_mle_type { DLM_MLE_BLOCK = 0, DLM_MLE_MASTER = 1, DLM_MLE_MIGRATION = 2, DLM_MLE_NUM_TYPES = 3 }
 
enum  dlm_ast_type { DLM_AST = 0, DLM_BAST = 1, DLM_ASTUNLOCK = 2 }
 
enum  dlm_ctxt_state { DLM_CTXT_NEW = 0, DLM_CTXT_JOINED = 1, DLM_CTXT_IN_SHUTDOWN = 2, DLM_CTXT_LEAVING = 3 }
 
enum  dlm_lockres_list { DLM_GRANTED_LIST = 0, DLM_CONVERTING_LIST = 1, DLM_BLOCKED_LIST = 2 }
 
enum  {
  DLM_MASTER_REQUEST_MSG = 500, DLM_UNUSED_MSG1 = 501, DLM_ASSERT_MASTER_MSG = 502, DLM_CREATE_LOCK_MSG = 503,
  DLM_CONVERT_LOCK_MSG = 504, DLM_PROXY_AST_MSG = 505, DLM_UNLOCK_LOCK_MSG = 506, DLM_DEREF_LOCKRES_MSG = 507,
  DLM_MIGRATE_REQUEST_MSG = 508, DLM_MIG_LOCKRES_MSG = 509, DLM_QUERY_JOIN_MSG = 510, DLM_ASSERT_JOINED_MSG = 511,
  DLM_CANCEL_JOIN_MSG = 512, DLM_EXIT_DOMAIN_MSG = 513, DLM_MASTER_REQUERY_MSG = 514, DLM_LOCK_REQUEST_MSG = 515,
  DLM_RECO_DATA_DONE_MSG = 516, DLM_BEGIN_RECO_MSG = 517, DLM_FINALIZE_RECO_MSG = 518, DLM_QUERY_REGION = 519,
  DLM_QUERY_NODEINFO = 520, DLM_BEGIN_EXIT_DOMAIN_MSG = 521
}
 
enum  {
  DLM_RECO_NODE_DATA_DEAD = -1, DLM_RECO_NODE_DATA_INIT = 0, DLM_RECO_NODE_DATA_REQUESTING = 1, DLM_RECO_NODE_DATA_REQUESTED = 2,
  DLM_RECO_NODE_DATA_RECEIVING = 3, DLM_RECO_NODE_DATA_DONE = 4, DLM_RECO_NODE_DATA_FINALIZE_SENT = 5
}
 
enum  { DLM_MASTER_RESP_NO = 0, DLM_MASTER_RESP_YES = 1, DLM_MASTER_RESP_MAYBE = 2, DLM_MASTER_RESP_ERROR = 3 }
 
enum  dlm_query_join_response_code { JOIN_DISALLOW = 0, JOIN_OK = 1, JOIN_OK_NO_MAP = 2, JOIN_PROTOCOL_MISMATCH = 3 }
 

Functions

void dlm_dispatch_work (struct work_struct *work)
 
struct dlm_lockdlm_new_lock (int type, u8 node, u64 cookie, struct dlm_lockstatus *lksb)
 
void dlm_lock_get (struct dlm_lock *lock)
 
void dlm_lock_put (struct dlm_lock *lock)
 
void dlm_lock_attach_lockres (struct dlm_lock *lock, struct dlm_lock_resource *res)
 
int dlm_create_lock_handler (struct o2net_msg *msg, u32 len, void *data, void **ret_data)
 
int dlm_convert_lock_handler (struct o2net_msg *msg, u32 len, void *data, void **ret_data)
 
int dlm_proxy_ast_handler (struct o2net_msg *msg, u32 len, void *data, void **ret_data)
 
void dlm_revert_pending_convert (struct dlm_lock_resource *res, struct dlm_lock *lock)
 
void dlm_revert_pending_lock (struct dlm_lock_resource *res, struct dlm_lock *lock)
 
int dlm_unlock_lock_handler (struct o2net_msg *msg, u32 len, void *data, void **ret_data)
 
void dlm_commit_pending_cancel (struct dlm_lock_resource *res, struct dlm_lock *lock)
 
void dlm_commit_pending_unlock (struct dlm_lock_resource *res, struct dlm_lock *lock)
 
int dlm_launch_thread (struct dlm_ctxt *dlm)
 
void dlm_complete_thread (struct dlm_ctxt *dlm)
 
int dlm_launch_recovery_thread (struct dlm_ctxt *dlm)
 
void dlm_complete_recovery_thread (struct dlm_ctxt *dlm)
 
void dlm_wait_for_recovery (struct dlm_ctxt *dlm)
 
void dlm_kick_recovery_thread (struct dlm_ctxt *dlm)
 
int dlm_is_node_dead (struct dlm_ctxt *dlm, u8 node)
 
void dlm_wait_for_node_death (struct dlm_ctxt *dlm, u8 node, int timeout)
 
void dlm_wait_for_node_recovery (struct dlm_ctxt *dlm, u8 node, int timeout)
 
void dlm_put (struct dlm_ctxt *dlm)
 
struct dlm_ctxtdlm_grab (struct dlm_ctxt *dlm)
 
int dlm_domain_fully_joined (struct dlm_ctxt *dlm)
 
void __dlm_lockres_calc_usage (struct dlm_ctxt *dlm, struct dlm_lock_resource *res)
 
void dlm_lockres_calc_usage (struct dlm_ctxt *dlm, struct dlm_lock_resource *res)
 
void dlm_lockres_put (struct dlm_lock_resource *res)
 
void __dlm_unhash_lockres (struct dlm_ctxt *dlm, struct dlm_lock_resource *res)
 
void __dlm_insert_lockres (struct dlm_ctxt *dlm, struct dlm_lock_resource *res)
 
struct dlm_lock_resource__dlm_lookup_lockres_full (struct dlm_ctxt *dlm, const char *name, unsigned int len, unsigned int hash)
 
struct dlm_lock_resource__dlm_lookup_lockres (struct dlm_ctxt *dlm, const char *name, unsigned int len, unsigned int hash)
 
struct dlm_lock_resourcedlm_lookup_lockres (struct dlm_ctxt *dlm, const char *name, unsigned int len)
 
int dlm_is_host_down (int errno)
 
struct dlm_lock_resourcedlm_get_lock_resource (struct dlm_ctxt *dlm, const char *lockid, int namelen, int flags)
 
struct dlm_lock_resourcedlm_new_lockres (struct dlm_ctxt *dlm, const char *name, unsigned int namelen)
 
void dlm_lockres_set_refmap_bit (struct dlm_ctxt *dlm, struct dlm_lock_resource *res, int bit)
 
void dlm_lockres_clear_refmap_bit (struct dlm_ctxt *dlm, struct dlm_lock_resource *res, int bit)
 
void dlm_lockres_drop_inflight_ref (struct dlm_ctxt *dlm, struct dlm_lock_resource *res)
 
void dlm_lockres_grab_inflight_ref (struct dlm_ctxt *dlm, struct dlm_lock_resource *res)
 
void dlm_queue_ast (struct dlm_ctxt *dlm, struct dlm_lock *lock)
 
void dlm_queue_bast (struct dlm_ctxt *dlm, struct dlm_lock *lock)
 
void __dlm_queue_ast (struct dlm_ctxt *dlm, struct dlm_lock *lock)
 
void __dlm_queue_bast (struct dlm_ctxt *dlm, struct dlm_lock *lock)
 
void dlm_do_local_ast (struct dlm_ctxt *dlm, struct dlm_lock_resource *res, struct dlm_lock *lock)
 
int dlm_do_remote_ast (struct dlm_ctxt *dlm, struct dlm_lock_resource *res, struct dlm_lock *lock)
 
void dlm_do_local_bast (struct dlm_ctxt *dlm, struct dlm_lock_resource *res, struct dlm_lock *lock, int blocked_type)
 
int dlm_send_proxy_ast_msg (struct dlm_ctxt *dlm, struct dlm_lock_resource *res, struct dlm_lock *lock, int msg_type, int blocked_type, int flags)
 
void dlm_print_one_lock_resource (struct dlm_lock_resource *res)
 
void __dlm_print_one_lock_resource (struct dlm_lock_resource *res)
 
u8 dlm_nm_this_node (struct dlm_ctxt *dlm)
 
void dlm_kick_thread (struct dlm_ctxt *dlm, struct dlm_lock_resource *res)
 
void __dlm_dirty_lockres (struct dlm_ctxt *dlm, struct dlm_lock_resource *res)
 
int dlm_nm_init (struct dlm_ctxt *dlm)
 
int dlm_heartbeat_init (struct dlm_ctxt *dlm)
 
void dlm_hb_node_down_cb (struct o2nm_node *node, int idx, void *data)
 
void dlm_hb_node_up_cb (struct o2nm_node *node, int idx, void *data)
 
int dlm_empty_lockres (struct dlm_ctxt *dlm, struct dlm_lock_resource *res)
 
int dlm_finish_migration (struct dlm_ctxt *dlm, struct dlm_lock_resource *res, u8 old_master)
 
void dlm_lockres_release_ast (struct dlm_ctxt *dlm, struct dlm_lock_resource *res)
 
void __dlm_lockres_reserve_ast (struct dlm_lock_resource *res)
 
int dlm_master_request_handler (struct o2net_msg *msg, u32 len, void *data, void **ret_data)
 
int dlm_assert_master_handler (struct o2net_msg *msg, u32 len, void *data, void **ret_data)
 
void dlm_assert_master_post_handler (int status, void *data, void *ret_data)
 
int dlm_deref_lockres_handler (struct o2net_msg *msg, u32 len, void *data, void **ret_data)
 
int dlm_migrate_request_handler (struct o2net_msg *msg, u32 len, void *data, void **ret_data)
 
int dlm_mig_lockres_handler (struct o2net_msg *msg, u32 len, void *data, void **ret_data)
 
int dlm_master_requery_handler (struct o2net_msg *msg, u32 len, void *data, void **ret_data)
 
int dlm_request_all_locks_handler (struct o2net_msg *msg, u32 len, void *data, void **ret_data)
 
int dlm_reco_data_done_handler (struct o2net_msg *msg, u32 len, void *data, void **ret_data)
 
int dlm_begin_reco_handler (struct o2net_msg *msg, u32 len, void *data, void **ret_data)
 
int dlm_finalize_reco_handler (struct o2net_msg *msg, u32 len, void *data, void **ret_data)
 
int dlm_do_master_requery (struct dlm_ctxt *dlm, struct dlm_lock_resource *res, u8 nodenum, u8 *real_master)
 
int dlm_dispatch_assert_master (struct dlm_ctxt *dlm, struct dlm_lock_resource *res, int ignore_higher, u8 request_from, u32 flags)
 
int dlm_send_one_lockres (struct dlm_ctxt *dlm, struct dlm_lock_resource *res, struct dlm_migratable_lockres *mres, u8 send_to, u8 flags)
 
void dlm_move_lockres_to_recovery_list (struct dlm_ctxt *dlm, struct dlm_lock_resource *res)
 
void __dlm_wait_on_lockres_flags (struct dlm_lock_resource *res, int flags)
 
void __dlm_wait_on_lockres_flags_set (struct dlm_lock_resource *res, int flags)
 
void __dlm_unlink_mle (struct dlm_ctxt *dlm, struct dlm_master_list_entry *mle)
 
void __dlm_insert_mle (struct dlm_ctxt *dlm, struct dlm_master_list_entry *mle)
 
int dlm_init_master_caches (void)
 
void dlm_destroy_master_caches (void)
 
int dlm_init_lock_cache (void)
 
void dlm_destroy_lock_cache (void)
 
int dlm_init_mle_cache (void)
 
void dlm_destroy_mle_cache (void)
 
void dlm_hb_event_notify_attached (struct dlm_ctxt *dlm, int idx, int node_up)
 
int dlm_drop_lockres_ref (struct dlm_ctxt *dlm, struct dlm_lock_resource *res)
 
void dlm_clean_master_list (struct dlm_ctxt *dlm, u8 dead_node)
 
void dlm_force_free_mles (struct dlm_ctxt *dlm)
 
int dlm_lock_basts_flushed (struct dlm_ctxt *dlm, struct dlm_lock *lock)
 
int __dlm_lockres_has_locks (struct dlm_lock_resource *res)
 
int __dlm_lockres_unused (struct dlm_lock_resource *res)
 

Macro Definition Documentation

#define BITS_PER_BYTE   8

Definition at line 716 of file dlmcommon.h.

#define BITS_TO_BYTES (   bits)    (((bits)+BITS_PER_BYTE-1)/BITS_PER_BYTE)

Definition at line 717 of file dlmcommon.h.

#define DLM_ASSERT_MASTER_FINISH_MIGRATION   0x00000004

Definition at line 508 of file dlmcommon.h.

#define DLM_ASSERT_MASTER_MLE_CLEANUP   0x00000001

Definition at line 506 of file dlmcommon.h.

#define DLM_ASSERT_MASTER_REQUERY   0x00000002

Definition at line 507 of file dlmcommon.h.

#define DLM_ASSERT_RESPONSE_MASTERY_REF   0x00000002

Definition at line 504 of file dlmcommon.h.

#define DLM_ASSERT_RESPONSE_REASSERT   0x00000001

Definition at line 503 of file dlmcommon.h.

#define DLM_BUCKETS_PER_PAGE   (PAGE_SIZE / sizeof(struct hlist_head))

Definition at line 46 of file dlmcommon.h.

#define DLM_CONVERT_LOCK_MAX_LEN   (sizeof(struct dlm_convert_lock)+DLM_LVB_LEN)

Definition at line 630 of file dlmcommon.h.

#define DLM_DOMAIN_NAME_MAX_LEN   255

Definition at line 35 of file dlmcommon.h.

#define DLM_HASH_BUCKETS   (DLM_HASH_PAGES * DLM_BUCKETS_PER_PAGE)

Definition at line 47 of file dlmcommon.h.

#define DLM_HASH_PAGES   (DLM_HASH_SIZE_DEFAULT / PAGE_SIZE)

Definition at line 44 of file dlmcommon.h.

#define DLM_HASH_SIZE_DEFAULT   (1 << 17)

Definition at line 40 of file dlmcommon.h.

#define DLM_HB_NODE_DOWN_PRI   (0xf000000)

Definition at line 30 of file dlmcommon.h.

#define DLM_HB_NODE_UP_PRI   (0x8000000)

Definition at line 31 of file dlmcommon.h.

#define DLM_LKSB_GET_LVB   0x04

Definition at line 382 of file dlmcommon.h.

#define DLM_LKSB_PUT_LVB   0x02

Definition at line 381 of file dlmcommon.h.

#define DLM_LKSB_UNUSED1   0x01

Definition at line 380 of file dlmcommon.h.

#define DLM_LKSB_UNUSED2   0x08

Definition at line 383 of file dlmcommon.h.

#define DLM_LKSB_UNUSED3   0x10

Definition at line 384 of file dlmcommon.h.

#define DLM_LKSB_UNUSED4   0x20

Definition at line 385 of file dlmcommon.h.

#define DLM_LKSB_UNUSED5   0x40

Definition at line 386 of file dlmcommon.h.

#define DLM_LKSB_UNUSED6   0x80

Definition at line 387 of file dlmcommon.h.

#define DLM_LOCK_RES_BLOCK_DIRTY   0x00001000

Definition at line 284 of file dlmcommon.h.

#define DLM_LOCK_RES_DIRTY   0x00000008

Definition at line 280 of file dlmcommon.h.

#define DLM_LOCK_RES_DROPPING_REF   0x00000040

Definition at line 283 of file dlmcommon.h.

#define DLM_LOCK_RES_IN_PROGRESS   0x00000010

Definition at line 281 of file dlmcommon.h.

#define DLM_LOCK_RES_MIGRATING   0x00000020

Definition at line 282 of file dlmcommon.h.

#define DLM_LOCK_RES_OWNER_UNKNOWN   O2NM_MAX_NODES

Definition at line 36 of file dlmcommon.h.

#define DLM_LOCK_RES_READY   0x00000004

Definition at line 279 of file dlmcommon.h.

#define DLM_LOCK_RES_RECOVERING   0x00000002

Definition at line 278 of file dlmcommon.h.

#define DLM_LOCK_RES_SETREF_INPROG   0x00002000

Definition at line 285 of file dlmcommon.h.

#define DLM_LOCK_RES_UNINITED   0x00000001

Definition at line 277 of file dlmcommon.h.

#define dlm_lockid_hash (   _n,
  _l 
)    full_name_hash(_n, _l)

Definition at line 50 of file dlmcommon.h.

#define DLM_LOCKID_NAME_MAX   32

Definition at line 33 of file dlmcommon.h.

#define DLM_MAX_MIGRATABLE_LOCKS   240

Definition at line 575 of file dlmcommon.h.

#define DLM_MIG_LOCKRES_MAX_LEN
Value:
(sizeof(struct dlm_migratable_lockres) + \
DLM_MAX_MIGRATABLE_LOCKS) )

Definition at line 593 of file dlmcommon.h.

#define DLM_MIG_LOCKRES_RESERVED
Value:
(NET_MAX_PAYLOAD_BYTES - \
DLM_MIG_LOCKRES_MAX_LEN)

Definition at line 600 of file dlmcommon.h.

#define DLM_MIGRATE_RESPONSE_MASTERY_REF   0x00000001

Definition at line 519 of file dlmcommon.h.

#define DLM_MOD_KEY   (0x666c6172)

Definition at line 663 of file dlmcommon.h.

#define DLM_MRES_ALL_DONE   0x04

Definition at line 543 of file dlmcommon.h.

#define DLM_MRES_MIGRATION   0x02

Definition at line 542 of file dlmcommon.h.

#define DLM_MRES_RECOVERY   0x01

Definition at line 541 of file dlmcommon.h.

#define DLM_NODE_DEATH_WAIT_MAX   (5 * 1000)

Definition at line 288 of file dlmcommon.h.

#define DLM_PROXY_AST_MAX_LEN   (sizeof(struct dlm_proxy_ast)+DLM_LVB_LEN)

Definition at line 661 of file dlmcommon.h.

#define DLM_PURGE_INTERVAL_MS   (8 * 1000)

Definition at line 290 of file dlmcommon.h.

#define DLM_RECO_STATE_ACTIVE   0x0001

Definition at line 105 of file dlmcommon.h.

#define DLM_RECO_STATE_FINALIZE   0x0002

Definition at line 106 of file dlmcommon.h.

#define DLM_RECOVERY_LOCK_NAME   "$RECOVERY"

Definition at line 94 of file dlmcommon.h.

#define DLM_RECOVERY_LOCK_NAME_LEN   9

Definition at line 95 of file dlmcommon.h.

#define DLM_THREAD_MS   200

Definition at line 38 of file dlmcommon.h.

#define DLM_THREAD_SHUFFLE_INTERVAL   5

Definition at line 37 of file dlmcommon.h.

#define DLM_UNLOCK_LOCK_MAX_LEN   (sizeof(struct dlm_unlock_lock)+DLM_LVB_LEN)

Definition at line 645 of file dlmcommon.h.

#define LKM_VALID_FLAGS
Value:
LKM_CANCEL | LKM_INVVALBLK | LKM_FORCE | \
LKM_RECOVERY | LKM_LOCAL | LKM_NOQUEUE)

Definition at line 90 of file dlmcommon.h.

Typedef Documentation

typedef void( dlm_workfunc_t)(struct dlm_work_item *, void *)

Definition at line 212 of file dlmcommon.h.

Enumeration Type Documentation

anonymous enum
Enumerator:
DLM_MASTER_REQUEST_MSG 
DLM_UNUSED_MSG1 
DLM_ASSERT_MASTER_MSG 
DLM_CREATE_LOCK_MSG 
DLM_CONVERT_LOCK_MSG 
DLM_PROXY_AST_MSG 
DLM_UNLOCK_LOCK_MSG 
DLM_DEREF_LOCKRES_MSG 
DLM_MIGRATE_REQUEST_MSG 
DLM_MIG_LOCKRES_MSG 
DLM_QUERY_JOIN_MSG 
DLM_ASSERT_JOINED_MSG 
DLM_CANCEL_JOIN_MSG 
DLM_EXIT_DOMAIN_MSG 
DLM_MASTER_REQUERY_MSG 
DLM_LOCK_REQUEST_MSG 
DLM_RECO_DATA_DONE_MSG 
DLM_BEGIN_RECO_MSG 
DLM_FINALIZE_RECO_MSG 
DLM_QUERY_REGION 
DLM_QUERY_NODEINFO 
DLM_BEGIN_EXIT_DOMAIN_MSG 

Definition at line 442 of file dlmcommon.h.

anonymous enum
Enumerator:
DLM_RECO_NODE_DATA_DEAD 
DLM_RECO_NODE_DATA_INIT 
DLM_RECO_NODE_DATA_REQUESTING 
DLM_RECO_NODE_DATA_REQUESTED 
DLM_RECO_NODE_DATA_RECEIVING 
DLM_RECO_NODE_DATA_DONE 
DLM_RECO_NODE_DATA_FINALIZE_SENT 

Definition at line 474 of file dlmcommon.h.

anonymous enum
Enumerator:
DLM_MASTER_RESP_NO 
DLM_MASTER_RESP_YES 
DLM_MASTER_RESP_MAYBE 
DLM_MASTER_RESP_ERROR 

Definition at line 485 of file dlmcommon.h.

Enumerator:
DLM_AST 
DLM_BAST 
DLM_ASTUNLOCK 

Definition at line 83 of file dlmcommon.h.

Enumerator:
DLM_CTXT_NEW 
DLM_CTXT_JOINED 
DLM_CTXT_IN_SHUTDOWN 
DLM_CTXT_LEAVING 

Definition at line 120 of file dlmcommon.h.

Enumerator:
DLM_GRANTED_LIST 
DLM_CONVERTING_LIST 
DLM_BLOCKED_LIST 

Definition at line 390 of file dlmcommon.h.

Enumerator:
DLM_MLE_BLOCK 
DLM_MLE_MASTER 
DLM_MLE_MIGRATION 
DLM_MLE_NUM_TYPES 

Definition at line 52 of file dlmcommon.h.

Enumerator:
JOIN_DISALLOW 
JOIN_OK 
JOIN_OK_NO_MAP 
JOIN_PROTOCOL_MISMATCH 

Definition at line 664 of file dlmcommon.h.

Function Documentation

void __dlm_dirty_lockres ( struct dlm_ctxt dlm,
struct dlm_lock_resource res 
)

Definition at line 463 of file dlmthread.c.

void __dlm_insert_lockres ( struct dlm_ctxt dlm,
struct dlm_lock_resource res 
)

Definition at line 171 of file dlmdomain.c.

void __dlm_insert_mle ( struct dlm_ctxt dlm,
struct dlm_master_list_entry mle 
)

Definition at line 328 of file dlmmaster.c.

void __dlm_lockres_calc_usage ( struct dlm_ctxt dlm,
struct dlm_lock_resource res 
)

Definition at line 124 of file dlmthread.c.

int __dlm_lockres_has_locks ( struct dlm_lock_resource res)

Definition at line 80 of file dlmthread.c.

void __dlm_lockres_reserve_ast ( struct dlm_lock_resource res)

Definition at line 3333 of file dlmmaster.c.

int __dlm_lockres_unused ( struct dlm_lock_resource res)

Definition at line 93 of file dlmthread.c.

struct dlm_lock_resource* __dlm_lookup_lockres ( struct dlm_ctxt dlm,
const char name,
unsigned int  len,
unsigned int  hash 
)
read

Definition at line 225 of file dlmdomain.c.

struct dlm_lock_resource* __dlm_lookup_lockres_full ( struct dlm_ctxt dlm,
const char name,
unsigned int  len,
unsigned int  hash 
)
read

Definition at line 190 of file dlmdomain.c.

void __dlm_print_one_lock_resource ( struct dlm_lock_resource res)

Definition at line 97 of file dlmdebug.c.

void __dlm_queue_ast ( struct dlm_ctxt dlm,
struct dlm_lock lock 
)

Definition at line 91 of file dlmast.c.

void __dlm_queue_bast ( struct dlm_ctxt dlm,
struct dlm_lock lock 
)

Definition at line 157 of file dlmast.c.

void __dlm_unhash_lockres ( struct dlm_ctxt dlm,
struct dlm_lock_resource res 
)

Definition at line 160 of file dlmdomain.c.

void __dlm_unlink_mle ( struct dlm_ctxt dlm,
struct dlm_master_list_entry mle 
)

Definition at line 319 of file dlmmaster.c.

void __dlm_wait_on_lockres_flags ( struct dlm_lock_resource res,
int  flags 
)

Definition at line 61 of file dlmthread.c.

void __dlm_wait_on_lockres_flags_set ( struct dlm_lock_resource res,
int  flags 
)
int dlm_assert_master_handler ( struct o2net_msg msg,
u32  len,
void data,
void **  ret_data 
)

Definition at line 1734 of file dlmmaster.c.

void dlm_assert_master_post_handler ( int  status,
void data,
void ret_data 
)

Definition at line 2004 of file dlmmaster.c.

int dlm_begin_reco_handler ( struct o2net_msg msg,
u32  len,
void data,
void **  ret_data 
)

Definition at line 2685 of file dlmrecovery.c.

void dlm_clean_master_list ( struct dlm_ctxt dlm,
u8  dead_node 
)

Definition at line 3181 of file dlmmaster.c.

void dlm_commit_pending_cancel ( struct dlm_lock_resource res,
struct dlm_lock lock 
)

Definition at line 272 of file dlmunlock.c.

void dlm_commit_pending_unlock ( struct dlm_lock_resource res,
struct dlm_lock lock 
)

Definition at line 264 of file dlmunlock.c.

void dlm_complete_recovery_thread ( struct dlm_ctxt dlm)

Definition at line 221 of file dlmrecovery.c.

void dlm_complete_thread ( struct dlm_ctxt dlm)

Definition at line 502 of file dlmthread.c.

int dlm_convert_lock_handler ( struct o2net_msg msg,
u32  len,
void data,
void **  ret_data 
)

Definition at line 421 of file dlmconvert.c.

int dlm_create_lock_handler ( struct o2net_msg msg,
u32  len,
void data,
void **  ret_data 
)

Definition at line 462 of file dlmlock.c.

int dlm_deref_lockres_handler ( struct o2net_msg msg,
u32  len,
void data,
void **  ret_data 
)

Definition at line 2214 of file dlmmaster.c.

void dlm_destroy_lock_cache ( void  )

Definition at line 78 of file dlmlock.c.

void dlm_destroy_master_caches ( void  )

Definition at line 476 of file dlmmaster.c.

void dlm_destroy_mle_cache ( void  )

Definition at line 418 of file dlmmaster.c.

int dlm_dispatch_assert_master ( struct dlm_ctxt dlm,
struct dlm_lock_resource res,
int  ignore_higher,
u8  request_from,
u32  flags 
)

Definition at line 2018 of file dlmmaster.c.

void dlm_dispatch_work ( struct work_struct work)

Definition at line 155 of file dlmrecovery.c.

void dlm_do_local_ast ( struct dlm_ctxt dlm,
struct dlm_lock_resource res,
struct dlm_lock lock 
)

Definition at line 223 of file dlmast.c.

void dlm_do_local_bast ( struct dlm_ctxt dlm,
struct dlm_lock_resource res,
struct dlm_lock lock,
int  blocked_type 
)

Definition at line 267 of file dlmast.c.

int dlm_do_master_requery ( struct dlm_ctxt dlm,
struct dlm_lock_resource res,
u8  nodenum,
u8 real_master 
)

Definition at line 1638 of file dlmrecovery.c.

int dlm_do_remote_ast ( struct dlm_ctxt dlm,
struct dlm_lock_resource res,
struct dlm_lock lock 
)

Definition at line 243 of file dlmast.c.

int dlm_domain_fully_joined ( struct dlm_ctxt dlm)

Definition at line 392 of file dlmdomain.c.

int dlm_drop_lockres_ref ( struct dlm_ctxt dlm,
struct dlm_lock_resource res 
)

Definition at line 2183 of file dlmmaster.c.

int dlm_empty_lockres ( struct dlm_ctxt dlm,
struct dlm_lock_resource res 
)

Definition at line 2625 of file dlmmaster.c.

int dlm_finalize_reco_handler ( struct o2net_msg msg,
u32  len,
void data,
void **  ret_data 
)

Definition at line 2816 of file dlmrecovery.c.

int dlm_finish_migration ( struct dlm_ctxt dlm,
struct dlm_lock_resource res,
u8  old_master 
)

Definition at line 3259 of file dlmmaster.c.

void dlm_force_free_mles ( struct dlm_ctxt dlm)

Definition at line 3376 of file dlmmaster.c.

struct dlm_lock_resource* dlm_get_lock_resource ( struct dlm_ctxt dlm,
const char lockid,
int  namelen,
int  flags 
)
read

Definition at line 701 of file dlmmaster.c.

struct dlm_ctxt* dlm_grab ( struct dlm_ctxt dlm)
read

Definition at line 369 of file dlmdomain.c.

void dlm_hb_event_notify_attached ( struct dlm_ctxt dlm,
int  idx,
int  node_up 
)

Definition at line 364 of file dlmmaster.c.

void dlm_hb_node_down_cb ( struct o2nm_node node,
int  idx,
void data 
)

Definition at line 2408 of file dlmrecovery.c.

void dlm_hb_node_up_cb ( struct o2nm_node node,
int  idx,
void data 
)

Definition at line 2429 of file dlmrecovery.c.

int dlm_heartbeat_init ( struct dlm_ctxt dlm)
int dlm_init_lock_cache ( void  )

Definition at line 68 of file dlmlock.c.

int dlm_init_master_caches ( void  )

Definition at line 456 of file dlmmaster.c.

int dlm_init_mle_cache ( void  )

Definition at line 407 of file dlmmaster.c.

int dlm_is_host_down ( int  errno)

Definition at line 132 of file dlmmaster.c.

int dlm_is_node_dead ( struct dlm_ctxt dlm,
u8  node 
)

Definition at line 344 of file dlmrecovery.c.

void dlm_kick_recovery_thread ( struct dlm_ctxt dlm)

Definition at line 194 of file dlmrecovery.c.

void dlm_kick_thread ( struct dlm_ctxt dlm,
struct dlm_lock_resource res 
)

Definition at line 451 of file dlmthread.c.

int dlm_launch_recovery_thread ( struct dlm_ctxt dlm)

Definition at line 206 of file dlmrecovery.c.

int dlm_launch_thread ( struct dlm_ctxt dlm)

Definition at line 488 of file dlmthread.c.

void dlm_lock_attach_lockres ( struct dlm_lock lock,
struct dlm_lock_resource res 
)

Definition at line 378 of file dlmlock.c.

int dlm_lock_basts_flushed ( struct dlm_ctxt dlm,
struct dlm_lock lock 
)

Definition at line 2654 of file dlmmaster.c.

void dlm_lock_get ( struct dlm_lock lock)

Definition at line 346 of file dlmlock.c.

void dlm_lock_put ( struct dlm_lock lock)

Definition at line 351 of file dlmlock.c.

void dlm_lockres_calc_usage ( struct dlm_ctxt dlm,
struct dlm_lock_resource res 
)

Definition at line 150 of file dlmthread.c.

void dlm_lockres_clear_refmap_bit ( struct dlm_ctxt dlm,
struct dlm_lock_resource res,
int  bit 
)

Definition at line 645 of file dlmmaster.c.

void dlm_lockres_drop_inflight_ref ( struct dlm_ctxt dlm,
struct dlm_lock_resource res 
)

Definition at line 669 of file dlmmaster.c.

void dlm_lockres_grab_inflight_ref ( struct dlm_ctxt dlm,
struct dlm_lock_resource res 
)

Definition at line 657 of file dlmmaster.c.

void dlm_lockres_put ( struct dlm_lock_resource res)

Definition at line 549 of file dlmmaster.c.

void dlm_lockres_release_ast ( struct dlm_ctxt dlm,
struct dlm_lock_resource res 
)

Definition at line 3357 of file dlmmaster.c.

void dlm_lockres_set_refmap_bit ( struct dlm_ctxt dlm,
struct dlm_lock_resource res,
int  bit 
)

Definition at line 634 of file dlmmaster.c.

struct dlm_lock_resource* dlm_lookup_lockres ( struct dlm_ctxt dlm,
const char name,
unsigned int  len 
)
read

Definition at line 250 of file dlmdomain.c.

int dlm_master_requery_handler ( struct o2net_msg msg,
u32  len,
void data,
void **  ret_data 
)

Definition at line 1672 of file dlmrecovery.c.

int dlm_master_request_handler ( struct o2net_msg msg,
u32  len,
void data,
void **  ret_data 
)

Definition at line 1386 of file dlmmaster.c.

int dlm_mig_lockres_handler ( struct o2net_msg msg,
u32  len,
void data,
void **  ret_data 
)

Definition at line 1351 of file dlmrecovery.c.

int dlm_migrate_request_handler ( struct o2net_msg msg,
u32  len,
void data,
void **  ret_data 
)

Definition at line 2961 of file dlmmaster.c.

void dlm_move_lockres_to_recovery_list ( struct dlm_ctxt dlm,
struct dlm_lock_resource res 
)

Definition at line 1997 of file dlmrecovery.c.

struct dlm_lock* dlm_new_lock ( int  type,
u8  node,
u64  cookie,
struct dlm_lockstatus lksb 
)
read

Definition at line 427 of file dlmlock.c.

struct dlm_lock_resource* dlm_new_lockres ( struct dlm_ctxt dlm,
const char name,
unsigned int  namelen 
)
read

Definition at line 608 of file dlmmaster.c.

int dlm_nm_init ( struct dlm_ctxt dlm)
u8 dlm_nm_this_node ( struct dlm_ctxt dlm)
void dlm_print_one_lock_resource ( struct dlm_lock_resource res)

Definition at line 50 of file dlmdebug.c.

int dlm_proxy_ast_handler ( struct o2net_msg msg,
u32  len,
void data,
void **  ret_data 
)

Definition at line 285 of file dlmast.c.

void dlm_put ( struct dlm_ctxt dlm)

Definition at line 354 of file dlmdomain.c.

void dlm_queue_ast ( struct dlm_ctxt dlm,
struct dlm_lock lock 
)

Definition at line 146 of file dlmast.c.

void dlm_queue_bast ( struct dlm_ctxt dlm,
struct dlm_lock lock 
)

Definition at line 183 of file dlmast.c.

int dlm_reco_data_done_handler ( struct o2net_msg msg,
u32  len,
void data,
void **  ret_data 
)

Definition at line 976 of file dlmrecovery.c.

int dlm_request_all_locks_handler ( struct o2net_msg msg,
u32  len,
void data,
void **  ret_data 
)

Definition at line 820 of file dlmrecovery.c.

void dlm_revert_pending_convert ( struct dlm_lock_resource res,
struct dlm_lock lock 
)

Definition at line 247 of file dlmconvert.c.

void dlm_revert_pending_lock ( struct dlm_lock_resource res,
struct dlm_lock lock 
)

Definition at line 203 of file dlmlock.c.

int dlm_send_one_lockres ( struct dlm_ctxt dlm,
struct dlm_lock_resource res,
struct dlm_migratable_lockres mres,
u8  send_to,
u8  flags 
)

Definition at line 1266 of file dlmrecovery.c.

int dlm_send_proxy_ast_msg ( struct dlm_ctxt dlm,
struct dlm_lock_resource res,
struct dlm_lock lock,
int  msg_type,
int  blocked_type,
int  flags 
)

Definition at line 448 of file dlmast.c.

int dlm_unlock_lock_handler ( struct o2net_msg msg,
u32  len,
void data,
void **  ret_data 
)

Definition at line 385 of file dlmunlock.c.

void dlm_wait_for_node_death ( struct dlm_ctxt dlm,
u8  node,
int  timeout 
)

Definition at line 365 of file dlmrecovery.c.

void dlm_wait_for_node_recovery ( struct dlm_ctxt dlm,
u8  node,
int  timeout 
)

Definition at line 382 of file dlmrecovery.c.

void dlm_wait_for_recovery ( struct dlm_ctxt dlm)

Definition at line 415 of file dlmrecovery.c.