2006-01-18 12:30:29 +03:00
/******************************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* *
2007-05-18 17:59:31 +04:00
* * Copyright ( C ) 2005 - 2007 Red Hat , Inc . All rights reserved .
2006-01-18 12:30:29 +03:00
* *
* * This copyrighted material is made available to anyone wishing to use ,
* * modify , copy , or redistribute it subject to the terms and conditions
* * of the GNU General Public License v .2 .
* *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
# ifndef __LOCK_DOT_H__
# define __LOCK_DOT_H__
void dlm_print_rsb ( struct dlm_rsb * r ) ;
2006-08-18 20:54:25 +04:00
void dlm_dump_rsb ( struct dlm_rsb * r ) ;
2006-07-13 01:44:04 +04:00
void dlm_print_lkb ( struct dlm_lkb * lkb ) ;
2007-09-28 00:53:38 +04:00
void dlm_receive_message_saved ( struct dlm_ls * ls , struct dlm_message * ms ) ;
void dlm_receive_buffer ( struct dlm_header * hd , int nodeid ) ;
2006-01-18 12:30:29 +03:00
int dlm_modes_compat ( int mode1 , int mode2 ) ;
void dlm_put_rsb ( struct dlm_rsb * r ) ;
void dlm_hold_rsb ( struct dlm_rsb * r ) ;
int dlm_put_lkb ( struct dlm_lkb * lkb ) ;
void dlm_scan_rsbs ( struct dlm_ls * ls ) ;
2007-05-18 17:58:15 +04:00
int dlm_lock_recovery_try ( struct dlm_ls * ls ) ;
void dlm_unlock_recovery ( struct dlm_ls * ls ) ;
2007-05-18 17:59:31 +04:00
void dlm_scan_timeout ( struct dlm_ls * ls ) ;
void dlm_adjust_timeouts ( struct dlm_ls * ls ) ;
2006-01-18 12:30:29 +03:00
int dlm_purge_locks ( struct dlm_ls * ls ) ;
void dlm_purge_mstcpy_locks ( struct dlm_rsb * r ) ;
2006-05-02 21:34:03 +04:00
void dlm_grant_after_purge ( struct dlm_ls * ls ) ;
2006-01-18 12:30:29 +03:00
int dlm_recover_waiters_post ( struct dlm_ls * ls ) ;
void dlm_recover_waiters_pre ( 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 ) ;
2006-07-13 01:44:04 +04:00
int dlm_user_request ( struct dlm_ls * ls , struct dlm_user_args * ua , int mode ,
2007-05-18 18:00:32 +04:00
uint32_t flags , void * name , unsigned int namelen ,
unsigned long timeout_cs ) ;
2006-07-13 01:44:04 +04:00
int dlm_user_convert ( struct dlm_ls * ls , struct dlm_user_args * ua_tmp ,
2007-05-18 18:00:32 +04:00
int mode , uint32_t flags , uint32_t lkid , char * lvb_in ,
unsigned long timeout_cs ) ;
2006-07-13 01:44:04 +04:00
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 ) ;
2007-03-31 00:06:16 +04:00
int dlm_user_purge ( struct dlm_ls * ls , struct dlm_user_proc * proc ,
int nodeid , int pid ) ;
2007-05-29 17:46:00 +04:00
int dlm_user_deadlock ( struct dlm_ls * ls , uint32_t flags , uint32_t lkid ) ;
2006-07-13 01:44:04 +04:00
void dlm_clear_proc_locks ( struct dlm_ls * ls , struct dlm_user_proc * proc ) ;
2006-01-18 12:30:29 +03:00
static inline int is_master ( struct dlm_rsb * r )
{
return ! r - > res_nodeid ;
}
static inline void lock_rsb ( struct dlm_rsb * r )
{
2006-01-20 11:47:07 +03:00
mutex_lock ( & r - > res_mutex ) ;
2006-01-18 12:30:29 +03:00
}
static inline void unlock_rsb ( struct dlm_rsb * r )
{
2006-01-20 11:47:07 +03:00
mutex_unlock ( & r - > res_mutex ) ;
2006-01-18 12:30:29 +03:00
}
# endif