/fs/dlm/ |
D | lockspace.c | 35 static ssize_t dlm_control_store(struct dlm_ls *ls, const char *buf, size_t len) in dlm_control_store() argument 43 ls = dlm_find_lockspace_local(ls->ls_local_handle); in dlm_control_store() 44 if (!ls) in dlm_control_store() 49 dlm_ls_stop(ls); in dlm_control_store() 52 dlm_ls_start(ls); in dlm_control_store() 57 dlm_put_lockspace(ls); in dlm_control_store() 61 static ssize_t dlm_event_store(struct dlm_ls *ls, const char *buf, size_t len) in dlm_event_store() argument 63 int rc = kstrtoint(buf, 0, &ls->ls_uevent_result); in dlm_event_store() 67 set_bit(LSFL_UEVENT_WAIT, &ls->ls_flags); in dlm_event_store() 68 wake_up(&ls->ls_uevent_wait); in dlm_event_store() [all …]
|
D | recoverd.c | 31 static int enable_locking(struct dlm_ls *ls, uint64_t seq) in enable_locking() argument 35 down_write(&ls->ls_recv_active); in enable_locking() 37 spin_lock(&ls->ls_recover_lock); in enable_locking() 38 if (ls->ls_recover_seq == seq) { in enable_locking() 39 set_bit(LSFL_RUNNING, &ls->ls_flags); in enable_locking() 41 up_write(&ls->ls_in_recovery); in enable_locking() 42 clear_bit(LSFL_RECOVER_LOCK, &ls->ls_flags); in enable_locking() 45 spin_unlock(&ls->ls_recover_lock); in enable_locking() 47 up_write(&ls->ls_recv_active); in enable_locking() 51 static int ls_recover(struct dlm_ls *ls, struct dlm_recover *rv) in ls_recover() argument [all …]
|
D | recover.c | 42 int dlm_wait_function(struct dlm_ls *ls, int (*testfn) (struct dlm_ls *ls)) in dlm_wait_function() argument 48 rv = wait_event_timeout(ls->ls_wait_general, in dlm_wait_function() 49 testfn(ls) || dlm_recovery_stopped(ls), in dlm_wait_function() 53 if (test_bit(LSFL_RCOM_WAIT, &ls->ls_flags)) { in dlm_wait_function() 54 log_debug(ls, "dlm_wait_function timed out"); in dlm_wait_function() 59 if (dlm_recovery_stopped(ls)) { in dlm_wait_function() 60 log_debug(ls, "dlm_wait_function aborted"); in dlm_wait_function() 74 uint32_t dlm_recover_status(struct dlm_ls *ls) in dlm_recover_status() argument 77 spin_lock(&ls->ls_recover_lock); in dlm_recover_status() 78 status = ls->ls_recover_status; in dlm_recover_status() [all …]
|
D | member.c | 27 void dlm_slot_save(struct dlm_ls *ls, struct dlm_rcom *rc, in dlm_slot_save() argument 39 void dlm_slots_copy_out(struct dlm_ls *ls, struct dlm_rcom *rc) in dlm_slots_copy_out() argument 49 for (i = 0; i < ls->ls_slots_size; i++) { in dlm_slots_copy_out() 50 slot = &ls->ls_slots[i]; in dlm_slots_copy_out() 61 static void log_slots(struct dlm_ls *ls, uint32_t gen, int num_slots, in log_slots() argument 93 log_rinfo(ls, "generation %u slots %d%s", gen, num_slots, line); in log_slots() 96 int dlm_slots_copy_in(struct dlm_ls *ls) in dlm_slots_copy_in() argument 99 struct dlm_rcom *rc = ls->ls_recover_buf; in dlm_slots_copy_in() 110 if (gen <= ls->ls_generation) { in dlm_slots_copy_in() 111 log_error(ls, "dlm_slots_copy_in gen %u old %u", in dlm_slots_copy_in() [all …]
|
D | rcom.c | 25 static int rcom_response(struct dlm_ls *ls) in rcom_response() argument 27 return test_bit(LSFL_RCOM_READY, &ls->ls_flags); in rcom_response() 30 static int create_rcom(struct dlm_ls *ls, int to_nodeid, int type, int len, in create_rcom() argument 49 rc->rc_header.h_lockspace = ls->ls_global_id; in create_rcom() 56 spin_lock(&ls->ls_recover_lock); in create_rcom() 57 rc->rc_seq = ls->ls_recover_seq; in create_rcom() 58 spin_unlock(&ls->ls_recover_lock); in create_rcom() 65 static void send_rcom(struct dlm_ls *ls, struct dlm_mhandle *mh, in send_rcom() argument 72 static void set_rcom_status(struct dlm_ls *ls, struct rcom_status *rs, in set_rcom_status() argument 82 static void set_rcom_config(struct dlm_ls *ls, struct rcom_config *rf, in set_rcom_config() argument [all …]
|
D | requestqueue.c | 32 void dlm_add_requestqueue(struct dlm_ls *ls, int nodeid, struct dlm_message *ms) in dlm_add_requestqueue() argument 43 e->recover_seq = ls->ls_recover_seq & 0xFFFFFFFF; in dlm_add_requestqueue() 47 mutex_lock(&ls->ls_requestqueue_mutex); in dlm_add_requestqueue() 48 list_add_tail(&e->list, &ls->ls_requestqueue); in dlm_add_requestqueue() 49 mutex_unlock(&ls->ls_requestqueue_mutex); in dlm_add_requestqueue() 63 int dlm_process_requestqueue(struct dlm_ls *ls) in dlm_process_requestqueue() argument 69 mutex_lock(&ls->ls_requestqueue_mutex); in dlm_process_requestqueue() 72 if (list_empty(&ls->ls_requestqueue)) { in dlm_process_requestqueue() 73 mutex_unlock(&ls->ls_requestqueue_mutex); in dlm_process_requestqueue() 77 e = list_entry(ls->ls_requestqueue.next, struct rq_entry, list); in dlm_process_requestqueue() [all …]
|
D | dir.c | 33 int dlm_hash2nodeid(struct dlm_ls *ls, uint32_t hash) in dlm_hash2nodeid() argument 37 if (ls->ls_num_nodes == 1) in dlm_hash2nodeid() 40 node = (hash >> 16) % ls->ls_total_weight; in dlm_hash2nodeid() 41 return ls->ls_node_array[node]; in dlm_hash2nodeid() 50 void dlm_recover_dir_nodeid(struct dlm_ls *ls) in dlm_recover_dir_nodeid() argument 54 down_read(&ls->ls_root_sem); in dlm_recover_dir_nodeid() 55 list_for_each_entry(r, &ls->ls_root_list, res_root_list) { in dlm_recover_dir_nodeid() 56 r->res_dir_nodeid = dlm_hash2nodeid(ls, r->res_hash); in dlm_recover_dir_nodeid() 58 up_read(&ls->ls_root_sem); in dlm_recover_dir_nodeid() 61 int dlm_recover_directory(struct dlm_ls *ls) in dlm_recover_directory() argument [all …]
|
D | lock.c | 89 static void do_purge(struct dlm_ls *ls, int nodeid, int pid); 203 static inline void dlm_lock_recovery(struct dlm_ls *ls) in dlm_lock_recovery() argument 205 down_read(&ls->ls_in_recovery); in dlm_lock_recovery() 208 void dlm_unlock_recovery(struct dlm_ls *ls) in dlm_unlock_recovery() argument 210 up_read(&ls->ls_in_recovery); in dlm_unlock_recovery() 213 int dlm_lock_recovery_try(struct dlm_ls *ls) in dlm_lock_recovery_try() argument 215 return down_read_trylock(&ls->ls_in_recovery); in dlm_lock_recovery_try() 349 struct dlm_ls *ls = r->res_ls; in put_rsb() local 352 spin_lock(&ls->ls_rsbtbl[bucket].lock); in put_rsb() 354 spin_unlock(&ls->ls_rsbtbl[bucket].lock); in put_rsb() [all …]
|
D | lock.h | 15 void dlm_dump_rsb_name(struct dlm_ls *ls, char *name, int len); 17 void dlm_receive_message_saved(struct dlm_ls *ls, struct dlm_message *ms, 24 void dlm_scan_rsbs(struct dlm_ls *ls); 25 int dlm_lock_recovery_try(struct dlm_ls *ls); 26 void dlm_unlock_recovery(struct dlm_ls *ls); 27 void dlm_scan_waiters(struct dlm_ls *ls); 28 void dlm_scan_timeout(struct dlm_ls *ls); 29 void dlm_adjust_timeouts(struct dlm_ls *ls); 30 int dlm_master_lookup(struct dlm_ls *ls, int nodeid, char *name, int len, 36 void dlm_recover_purge(struct dlm_ls *ls); [all …]
|
D | ast.c | 54 struct dlm_ls *ls = lkb->lkb_resource->res_ls; in dlm_add_lkb_callback() local 79 log_debug(ls, "skip %x add bast %llu mode %d " in dlm_add_lkb_callback() 101 log_error(ls, "no callbacks %x %llu flags %x mode %d sb %d %x", in dlm_add_lkb_callback() 112 int dlm_rem_lkb_callback(struct dlm_ls *ls, struct dlm_lkb *lkb, in dlm_rem_lkb_callback() argument 147 log_debug(ls, "skip %x bast %llu mode %d " in dlm_rem_lkb_callback() 176 struct dlm_ls *ls = lkb->lkb_resource->res_ls; in dlm_add_cb() local 201 mutex_lock(&ls->ls_cb_mutex); in dlm_add_cb() 202 if (test_bit(LSFL_CB_DELAY, &ls->ls_flags)) { in dlm_add_cb() 203 list_add(&lkb->lkb_cb_list, &ls->ls_cb_delay); in dlm_add_cb() 205 queue_work(ls->ls_callback_wq, &lkb->lkb_cb_work); in dlm_add_cb() [all …]
|
D | recover.h | 15 int dlm_wait_function(struct dlm_ls *ls, int (*testfn) (struct dlm_ls *ls)); 16 uint32_t dlm_recover_status(struct dlm_ls *ls); 17 void dlm_set_recover_status(struct dlm_ls *ls, uint32_t status); 18 int dlm_recover_members_wait(struct dlm_ls *ls); 19 int dlm_recover_directory_wait(struct dlm_ls *ls); 20 int dlm_recover_locks_wait(struct dlm_ls *ls); 21 int dlm_recover_done_wait(struct dlm_ls *ls); 22 int dlm_recover_masters(struct dlm_ls *ls); 23 int dlm_recover_master_reply(struct dlm_ls *ls, struct dlm_rcom *rc); 24 int dlm_recover_locks(struct dlm_ls *ls); [all …]
|
D | user.c | 178 struct dlm_ls *ls; in dlm_user_add_ast() local 186 ls = lkb->lkb_resource->res_ls; in dlm_user_add_ast() 187 mutex_lock(&ls->ls_clear_proc_locks); in dlm_user_add_ast() 233 mutex_unlock(&ls->ls_clear_proc_locks); in dlm_user_add_ast() 239 struct dlm_ls *ls; in device_user_lock() local 244 ls = dlm_find_lockspace_local(proc->lockspace); in device_user_lock() 245 if (!ls) in device_user_lock() 265 error = dlm_user_convert(ls, ua, in device_user_lock() 270 error = dlm_user_adopt_orphan(ls, ua, in device_user_lock() 278 error = dlm_user_request(ls, ua, in device_user_lock() [all …]
|
D | member.h | 14 int dlm_ls_stop(struct dlm_ls *ls); 15 int dlm_ls_start(struct dlm_ls *ls); 16 void dlm_clear_members(struct dlm_ls *ls); 17 void dlm_clear_members_gone(struct dlm_ls *ls); 18 int dlm_recover_members(struct dlm_ls *ls, struct dlm_recover *rv,int *neg_out); 19 int dlm_is_removed(struct dlm_ls *ls, int nodeid); 20 int dlm_is_member(struct dlm_ls *ls, int nodeid); 22 void dlm_slot_save(struct dlm_ls *ls, struct dlm_rcom *rc, 24 void dlm_slots_copy_out(struct dlm_ls *ls, struct dlm_rcom *rc); 25 int dlm_slots_copy_in(struct dlm_ls *ls); [all …]
|
D | debug_fs.c | 423 struct dlm_ls *ls = seq->private; in table_seq_start() local 433 if (bucket >= ls->ls_rsbtbl_size) in table_seq_start() 450 tree = toss ? &ls->ls_rsbtbl[bucket].toss : &ls->ls_rsbtbl[bucket].keep; in table_seq_start() 452 spin_lock(&ls->ls_rsbtbl[bucket].lock); in table_seq_start() 460 spin_unlock(&ls->ls_rsbtbl[bucket].lock); in table_seq_start() 465 spin_unlock(&ls->ls_rsbtbl[bucket].lock); in table_seq_start() 478 if (bucket >= ls->ls_rsbtbl_size) { in table_seq_start() 482 tree = toss ? &ls->ls_rsbtbl[bucket].toss : &ls->ls_rsbtbl[bucket].keep; in table_seq_start() 484 spin_lock(&ls->ls_rsbtbl[bucket].lock); in table_seq_start() 491 spin_unlock(&ls->ls_rsbtbl[bucket].lock); in table_seq_start() [all …]
|
D | dlm_internal.h | 63 #define log_error(ls, fmt, args...) \ argument 64 printk(KERN_ERR "dlm: %s: " fmt "\n", (ls)->ls_name , ##args) 66 #define log_rinfo(ls, fmt, args...) \ argument 70 (ls)->ls_name, ##args); \ 73 (ls)->ls_name , ##args); \ 76 #define log_debug(ls, fmt, args...) \ argument 80 (ls)->ls_name , ##args); \ 83 #define log_limit(ls, fmt, args...) \ argument 87 (ls)->ls_name , ##args); \ 699 static inline int dlm_locking_stopped(struct dlm_ls *ls) in dlm_locking_stopped() argument [all …]
|
D | plock.c | 107 struct dlm_ls *ls; in dlm_posix_lock() local 111 ls = dlm_find_lockspace_local(lockspace); in dlm_posix_lock() 112 if (!ls) in dlm_posix_lock() 125 op->info.fsid = ls->ls_global_id; in dlm_posix_lock() 163 log_debug(ls, "%s: wait interrupted %x %llx pid %d", in dlm_posix_lock() 164 __func__, ls->ls_global_id, in dlm_posix_lock() 173 log_error(ls, "dlm_posix_lock: op on list %llx", in dlm_posix_lock() 183 log_error(ls, "dlm_posix_lock: vfs lock error %llx", in dlm_posix_lock() 189 dlm_put_lockspace(ls); in dlm_posix_lock() 254 struct dlm_ls *ls; in dlm_posix_unlock() local [all …]
|
D | ast.h | 17 int dlm_rem_lkb_callback(struct dlm_ls *ls, struct dlm_lkb *lkb, 23 int dlm_callback_start(struct dlm_ls *ls); 24 void dlm_callback_stop(struct dlm_ls *ls); 25 void dlm_callback_suspend(struct dlm_ls *ls); 26 void dlm_callback_resume(struct dlm_ls *ls);
|
D | recoverd.h | 15 void dlm_recoverd_stop(struct dlm_ls *ls); 16 int dlm_recoverd_start(struct dlm_ls *ls); 17 void dlm_recoverd_suspend(struct dlm_ls *ls); 18 void dlm_recoverd_resume(struct dlm_ls *ls);
|
D | requestqueue.h | 14 void dlm_add_requestqueue(struct dlm_ls *ls, int nodeid, struct dlm_message *ms); 15 int dlm_process_requestqueue(struct dlm_ls *ls); 16 void dlm_wait_requestqueue(struct dlm_ls *ls); 17 void dlm_purge_requestqueue(struct dlm_ls *ls);
|
D | dir.h | 16 int dlm_hash2nodeid(struct dlm_ls *ls, uint32_t hash); 17 void dlm_recover_dir_nodeid(struct dlm_ls *ls); 18 int dlm_recover_directory(struct dlm_ls *ls); 19 void dlm_copy_master_names(struct dlm_ls *ls, char *inbuf, int inlen,
|
D | memory.c | 43 char *dlm_allocate_lvb(struct dlm_ls *ls) in dlm_allocate_lvb() argument 47 p = kzalloc(ls->ls_lvblen, GFP_NOFS); in dlm_allocate_lvb() 56 struct dlm_rsb *dlm_allocate_rsb(struct dlm_ls *ls) in dlm_allocate_rsb() argument 71 struct dlm_lkb *dlm_allocate_lkb(struct dlm_ls *ls) in dlm_allocate_lkb() argument
|
D | memory.h | 17 struct dlm_rsb *dlm_allocate_rsb(struct dlm_ls *ls); 19 struct dlm_lkb *dlm_allocate_lkb(struct dlm_ls *ls); 21 char *dlm_allocate_lvb(struct dlm_ls *ls);
|
D | rcom.h | 15 int dlm_rcom_status(struct dlm_ls *ls, int nodeid, uint32_t status_flags); 16 int dlm_rcom_names(struct dlm_ls *ls, int nodeid, char *last_name,int last_len); 19 void dlm_receive_rcom(struct dlm_ls *ls, struct dlm_rcom *rc, int nodeid);
|
/fs/gfs2/ |
D | lock_dlm.c | 257 struct lm_lockstruct *ls = &gl->gl_name.ln_sbd->sd_lockstruct; in gdlm_lock() local 279 return dlm_lock(ls->ls_dlm, req, &gl->gl_lksb, lkf, strname, in gdlm_lock() 286 struct lm_lockstruct *ls = &sdp->sd_lockstruct; in gdlm_put_lock() local 300 if (test_bit(DFL_UNMOUNT, &ls->ls_recover_flags)) { in gdlm_put_lock() 312 error = dlm_unlock(ls->ls_dlm, gl->gl_lksb.sb_lkid, DLM_LKF_VALBLK, in gdlm_put_lock() 324 struct lm_lockstruct *ls = &gl->gl_name.ln_sbd->sd_lockstruct; in gdlm_cancel() local 325 dlm_unlock(ls->ls_dlm, gl->gl_lksb.sb_lkid, DLM_LKF_CANCEL, NULL, gl); in gdlm_cancel() 471 static void control_lvb_read(struct lm_lockstruct *ls, uint32_t *lvb_gen, in control_lvb_read() argument 475 memcpy(lvb_bits, ls->ls_control_lvb, GDLM_LVB_SIZE); in control_lvb_read() 480 static void control_lvb_write(struct lm_lockstruct *ls, uint32_t lvb_gen, in control_lvb_write() argument [all …]
|
/fs/nfsd/ |
D | nfs4layouts.c | 157 struct nfs4_layout_stateid *ls = layoutstateid(stid); in nfsd4_free_layout_stateid() local 158 struct nfs4_client *clp = ls->ls_stid.sc_client; in nfsd4_free_layout_stateid() 159 struct nfs4_file *fp = ls->ls_stid.sc_file; in nfsd4_free_layout_stateid() 161 trace_nfsd_layoutstate_free(&ls->ls_stid.sc_stateid); in nfsd4_free_layout_stateid() 164 list_del_init(&ls->ls_perclnt); in nfsd4_free_layout_stateid() 168 list_del_init(&ls->ls_perfile); in nfsd4_free_layout_stateid() 171 if (!nfsd4_layout_ops[ls->ls_layout_type]->disable_recalls) in nfsd4_free_layout_stateid() 172 vfs_setlease(ls->ls_file->nf_file, F_UNLCK, NULL, (void **)&ls); in nfsd4_free_layout_stateid() 173 nfsd_file_put(ls->ls_file); in nfsd4_free_layout_stateid() 175 if (ls->ls_recalled) in nfsd4_free_layout_stateid() [all …]
|