Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Macros | Functions | Variables
lock.c File Reference
#include <linux/types.h>
#include <linux/rbtree.h>
#include <linux/slab.h>
#include "dlm_internal.h"
#include <linux/dlm_device.h>
#include "memory.h"
#include "lowcomms.h"
#include "requestqueue.h"
#include "util.h"
#include "dir.h"
#include "member.h"
#include "lockspace.h"
#include "ast.h"
#include "lock.h"
#include "rcom.h"
#include "recover.h"
#include "lvb_table.h"
#include "user.h"
#include "config.h"

Go to the source code of this file.

Macros

#define modes_compat(gr, rq)   __dlm_compat_matrix[(gr)->lkb_grmode + 1][(rq)->lkb_rqmode + 1]
 

Functions

int dlm_modes_compat (int mode1, int mode2)
 
void dlm_print_lkb (struct dlm_lkb *lkb)
 
void dlm_dump_rsb (struct dlm_rsb *r)
 
void dlm_unlock_recovery (struct dlm_ls *ls)
 
int dlm_lock_recovery_try (struct dlm_ls *ls)
 
void dlm_hold_rsb (struct dlm_rsb *r)
 
void dlm_put_rsb (struct dlm_rsb *r)
 
int dlm_search_rsb_tree (struct rb_root *tree, char *name, int len, struct dlm_rsb **r_ret)
 
int dlm_master_lookup (struct dlm_ls *ls, int from_nodeid, char *name, int len, unsigned int flags, int *r_nodeid, int *result)
 
void dlm_dump_rsb_name (struct dlm_ls *ls, char *name, int len)
 
int dlm_put_lkb (struct dlm_lkb *lkb)
 
void dlm_scan_waiters (struct dlm_ls *ls)
 
void dlm_scan_rsbs (struct dlm_ls *ls)
 
void dlm_scan_timeout (struct dlm_ls *ls)
 
void dlm_adjust_timeouts (struct dlm_ls *ls)
 
int dlm_lock (dlm_lockspace_t *lockspace, int mode, struct dlm_lksb *lksb, uint32_t flags, void *name, unsigned int namelen, uint32_t parent_lkid, void(*ast)(void *astarg), void *astarg, void(*bast)(void *astarg, int mode))
 
int dlm_unlock (dlm_lockspace_t *lockspace, uint32_t lkid, uint32_t flags, struct dlm_lksb *lksb, void *astarg)
 
void dlm_receive_message_saved (struct dlm_ls *ls, struct dlm_message *ms, uint32_t saved_seq)
 
void dlm_receive_buffer (union dlm_packet *p, int nodeid)
 
void dlm_recover_waiters_pre (struct dlm_ls *ls)
 
int dlm_recover_waiters_post (struct dlm_ls *ls)
 
void dlm_purge_mstcpy_locks (struct dlm_rsb *r)
 
void dlm_recover_purge (struct dlm_ls *ls)
 
void dlm_recover_grant (struct dlm_ls *ls)
 
int dlm_recover_master_copy (struct dlm_ls *ls, struct dlm_rcom *rc)
 
int dlm_recover_process_copy (struct dlm_ls *ls, struct dlm_rcom *rc)
 
int dlm_user_request (struct dlm_ls *ls, struct dlm_user_args *ua, int mode, uint32_t flags, void *name, unsigned int namelen, unsigned long timeout_cs)
 
int dlm_user_convert (struct dlm_ls *ls, struct dlm_user_args *ua_tmp, int mode, uint32_t flags, uint32_t lkid, char *lvb_in, unsigned long timeout_cs)
 
int dlm_user_unlock (struct dlm_ls *ls, struct dlm_user_args *ua_tmp, uint32_t flags, uint32_t lkid, char *lvb_in)
 
int dlm_user_cancel (struct dlm_ls *ls, struct dlm_user_args *ua_tmp, uint32_t flags, uint32_t lkid)
 
int dlm_user_deadlock (struct dlm_ls *ls, uint32_t flags, uint32_t lkid)
 
void dlm_clear_proc_locks (struct dlm_ls *ls, struct dlm_user_proc *proc)
 
int dlm_user_purge (struct dlm_ls *ls, struct dlm_user_proc *proc, int nodeid, int pid)
 

Variables

const int dlm_lvb_operations [8][8]
 

Macro Definition Documentation

#define modes_compat (   gr,
  rq 
)    __dlm_compat_matrix[(gr)->lkb_grmode + 1][(rq)->lkb_rqmode + 1]

Definition at line 136 of file lock.c.

Function Documentation

void dlm_adjust_timeouts ( struct dlm_ls ls)

Definition at line 1914 of file lock.c.

void dlm_clear_proc_locks ( struct dlm_ls ls,
struct dlm_user_proc proc 
)

Definition at line 6079 of file lock.c.

void dlm_dump_rsb ( struct dlm_rsb r)

Definition at line 181 of file lock.c.

void dlm_dump_rsb_name ( struct dlm_ls ls,
char name,
int  len 
)

Definition at line 1102 of file lock.c.

void dlm_hold_rsb ( struct dlm_rsb r)

Definition at line 341 of file lock.c.

int dlm_lock ( dlm_lockspace_t lockspace,
int  mode,
struct dlm_lksb lksb,
uint32_t  flags,
void name,
unsigned int  namelen,
uint32_t  parent_lkid,
void(*)(void *astarg)  ast,
void astarg,
void(*)(void *astarg, int mode bast 
)

Definition at line 3399 of file lock.c.

int dlm_lock_recovery_try ( struct dlm_ls ls)

Definition at line 215 of file lock.c.

int dlm_master_lookup ( struct dlm_ls ls,
int  from_nodeid,
char name,
int  len,
unsigned int  flags,
int r_nodeid,
int result 
)

Definition at line 911 of file lock.c.

int dlm_modes_compat ( int  mode1,
int  mode2 
)

Definition at line 139 of file lock.c.

void dlm_print_lkb ( struct dlm_lkb lkb)

Definition at line 162 of file lock.c.

void dlm_purge_mstcpy_locks ( struct dlm_rsb r)

Definition at line 5374 of file lock.c.

int dlm_put_lkb ( struct dlm_lkb lkb)

Definition at line 1273 of file lock.c.

void dlm_put_rsb ( struct dlm_rsb r)

Definition at line 359 of file lock.c.

void dlm_receive_buffer ( union dlm_packet p,
int  nodeid 
)

Definition at line 5008 of file lock.c.

void dlm_receive_message_saved ( struct dlm_ls ls,
struct dlm_message ms,
uint32_t  saved_seq 
)

Definition at line 4997 of file lock.c.

void dlm_recover_grant ( struct dlm_ls ls)

Definition at line 5493 of file lock.c.

int dlm_recover_master_copy ( struct dlm_ls ls,
struct dlm_rcom rc 
)

Definition at line 5608 of file lock.c.

int dlm_recover_process_copy ( struct dlm_ls ls,
struct dlm_rcom rc 
)

Definition at line 5689 of file lock.c.

void dlm_recover_purge ( struct dlm_ls ls)

Definition at line 5411 of file lock.c.

int dlm_recover_waiters_post ( struct dlm_ls ls)

Definition at line 5255 of file lock.c.

void dlm_recover_waiters_pre ( struct dlm_ls ls)

Definition at line 5106 of file lock.c.

void dlm_scan_rsbs ( struct dlm_ls ls)

Definition at line 1793 of file lock.c.

void dlm_scan_timeout ( struct dlm_ls ls)

Definition at line 1847 of file lock.c.

void dlm_scan_waiters ( struct dlm_ls ls)

Definition at line 1399 of file lock.c.

int dlm_search_rsb_tree ( struct rb_root tree,
char name,
int  len,
struct dlm_rsb **  r_ret 
)

Definition at line 447 of file lock.c.

int dlm_unlock ( dlm_lockspace_t lockspace,
uint32_t  lkid,
uint32_t  flags,
struct dlm_lksb lksb,
void astarg 
)

Definition at line 3452 of file lock.c.

void dlm_unlock_recovery ( struct dlm_ls ls)

Definition at line 210 of file lock.c.

int dlm_user_cancel ( struct dlm_ls ls,
struct dlm_user_args ua_tmp,
uint32_t  flags,
uint32_t  lkid 
)

Definition at line 5921 of file lock.c.

int dlm_user_convert ( struct dlm_ls ls,
struct dlm_user_args ua_tmp,
int  mode,
uint32_t  flags,
uint32_t  lkid,
char lvb_in,
unsigned long  timeout_cs 
)

Definition at line 5818 of file lock.c.

int dlm_user_deadlock ( struct dlm_ls ls,
uint32_t  flags,
uint32_t  lkid 
)

Definition at line 5959 of file lock.c.

int dlm_user_purge ( struct dlm_ls ls,
struct dlm_user_proc proc,
int  nodeid,
int  pid 
)

Definition at line 6195 of file lock.c.

int dlm_user_request ( struct dlm_ls ls,
struct dlm_user_args ua,
int  mode,
uint32_t  flags,
void name,
unsigned int  namelen,
unsigned long  timeout_cs 
)

Definition at line 5753 of file lock.c.

int dlm_user_unlock ( struct dlm_ls ls,
struct dlm_user_args ua_tmp,
uint32_t  flags,
uint32_t  lkid,
char lvb_in 
)

Definition at line 5872 of file lock.c.

Variable Documentation

const int dlm_lvb_operations[8][8]
Initial value:
= {
{ -1, 1, 1, 1, 1, 1, 1, -1 },
{ -1, 1, 1, 1, 1, 1, 1, 0 },
{ -1, -1, 1, 1, 1, 1, 1, 0 },
{ -1, -1, -1, 1, 1, 1, 1, 0 },
{ -1, -1, -1, -1, 1, 1, 1, 0 },
{ -1, 0, 0, 0, 0, 0, 1, 0 },
{ -1, 0, 0, 0, 0, 0, 0, 0 },
{ -1, 0, 0, 0, 0, 0, 0, 0 }
}

Definition at line 124 of file lock.c.