/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 | 28 void dlm_slot_save(struct dlm_ls *ls, struct dlm_rcom *rc, in dlm_slot_save() argument 40 void dlm_slots_copy_out(struct dlm_ls *ls, struct dlm_rcom *rc) in dlm_slots_copy_out() argument 50 for (i = 0; i < ls->ls_slots_size; i++) { in dlm_slots_copy_out() 51 slot = &ls->ls_slots[i]; in dlm_slots_copy_out() 62 static void log_slots(struct dlm_ls *ls, uint32_t gen, int num_slots, in log_slots() argument 94 log_rinfo(ls, "generation %u slots %d%s", gen, num_slots, line); in log_slots() 97 int dlm_slots_copy_in(struct dlm_ls *ls) in dlm_slots_copy_in() argument 100 struct dlm_rcom *rc = ls->ls_recover_buf; in dlm_slots_copy_in() 111 if (gen <= ls->ls_generation) { in dlm_slots_copy_in() 112 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 void _create_rcom(struct dlm_ls *ls, int to_nodeid, int type, int len, in _create_rcom() argument 38 rc->rc_header.u.h_lockspace = cpu_to_le32(ls->ls_global_id); in _create_rcom() 45 spin_lock(&ls->ls_recover_lock); in _create_rcom() 46 rc->rc_seq = cpu_to_le64(ls->ls_recover_seq); in _create_rcom() 47 spin_unlock(&ls->ls_recover_lock); in _create_rcom() 52 static int create_rcom(struct dlm_ls *ls, int to_nodeid, int type, int len, in create_rcom() argument 66 _create_rcom(ls, to_nodeid, type, len, rc_ret, mb, mb_len); in create_rcom() 71 static int create_rcom_stateless(struct dlm_ls *ls, int to_nodeid, int type, in create_rcom_stateless() argument [all …]
|
D | requestqueue.c | 33 void dlm_add_requestqueue(struct dlm_ls *ls, int nodeid, struct dlm_message *ms) in dlm_add_requestqueue() argument 45 e->recover_seq = ls->ls_recover_seq & 0xFFFFFFFF; in dlm_add_requestqueue() 49 atomic_inc(&ls->ls_requestqueue_cnt); in dlm_add_requestqueue() 50 mutex_lock(&ls->ls_requestqueue_mutex); in dlm_add_requestqueue() 51 list_add_tail(&e->list, &ls->ls_requestqueue); in dlm_add_requestqueue() 52 mutex_unlock(&ls->ls_requestqueue_mutex); in dlm_add_requestqueue() 66 int dlm_process_requestqueue(struct dlm_ls *ls) in dlm_process_requestqueue() argument 72 mutex_lock(&ls->ls_requestqueue_mutex); in dlm_process_requestqueue() 75 if (list_empty(&ls->ls_requestqueue)) { in dlm_process_requestqueue() 76 mutex_unlock(&ls->ls_requestqueue_mutex); in dlm_process_requestqueue() [all …]
|
D | lock.c | 91 static void do_purge(struct dlm_ls *ls, int nodeid, int pid); 205 static inline void dlm_lock_recovery(struct dlm_ls *ls) in dlm_lock_recovery() argument 207 down_read(&ls->ls_in_recovery); in dlm_lock_recovery() 210 void dlm_unlock_recovery(struct dlm_ls *ls) in dlm_unlock_recovery() argument 212 up_read(&ls->ls_in_recovery); in dlm_unlock_recovery() 215 int dlm_lock_recovery_try(struct dlm_ls *ls) in dlm_lock_recovery_try() argument 217 return down_read_trylock(&ls->ls_in_recovery); in dlm_lock_recovery_try() 353 struct dlm_ls *ls = r->res_ls; in put_rsb() local 358 &ls->ls_rsbtbl[bucket].lock); in put_rsb() 360 spin_unlock(&ls->ls_rsbtbl[bucket].lock); in put_rsb() [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.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); 29 void dlm_scan_timeout(struct dlm_ls *ls); 30 void dlm_adjust_timeouts(struct dlm_ls *ls); 32 static inline void dlm_scan_timeout(struct dlm_ls *ls) { } in dlm_scan_timeout() argument 33 static inline void dlm_adjust_timeouts(struct dlm_ls *ls) { } in dlm_adjust_timeouts() argument 36 int dlm_master_lookup(struct dlm_ls *ls, int nodeid, char *name, int len, [all …]
|
D | ast.c | 56 struct dlm_ls *ls = lkb->lkb_resource->res_ls; in dlm_add_lkb_callback() local 81 log_debug(ls, "skip %x add bast %llu mode %d " in dlm_add_lkb_callback() 103 log_error(ls, "no callbacks %x %llu flags %x mode %d sb %d %x", in dlm_add_lkb_callback() 114 int dlm_rem_lkb_callback(struct dlm_ls *ls, struct dlm_lkb *lkb, in dlm_rem_lkb_callback() argument 149 log_debug(ls, "skip %x bast %llu mode %d " in dlm_rem_lkb_callback() 178 struct dlm_ls *ls = lkb->lkb_resource->res_ls; in dlm_add_cb() local 203 mutex_lock(&ls->ls_cb_mutex); in dlm_add_cb() 204 if (test_bit(LSFL_CB_DELAY, &ls->ls_flags)) { in dlm_add_cb() 205 list_add(&lkb->lkb_cb_list, &ls->ls_cb_delay); in dlm_add_cb() 207 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 | 180 struct dlm_ls *ls; in dlm_user_add_ast() local 188 ls = lkb->lkb_resource->res_ls; in dlm_user_add_ast() 189 spin_lock(&ls->ls_clear_proc_locks); in dlm_user_add_ast() 235 spin_unlock(&ls->ls_clear_proc_locks); in dlm_user_add_ast() 241 struct dlm_ls *ls; in device_user_lock() local 246 ls = dlm_find_lockspace_local(proc->lockspace); in device_user_lock() 247 if (!ls) in device_user_lock() 276 error = dlm_user_convert(ls, ua, in device_user_lock() 281 error = dlm_user_convert(ls, ua, in device_user_lock() 286 error = dlm_user_adopt_orphan(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 | 425 struct dlm_ls *ls = seq->private; in table_seq_start() local 435 if (bucket >= ls->ls_rsbtbl_size) in table_seq_start() 452 tree = toss ? &ls->ls_rsbtbl[bucket].toss : &ls->ls_rsbtbl[bucket].keep; in table_seq_start() 454 spin_lock(&ls->ls_rsbtbl[bucket].lock); in table_seq_start() 462 spin_unlock(&ls->ls_rsbtbl[bucket].lock); in table_seq_start() 467 spin_unlock(&ls->ls_rsbtbl[bucket].lock); in table_seq_start() 480 if (bucket >= ls->ls_rsbtbl_size) { in table_seq_start() 484 tree = toss ? &ls->ls_rsbtbl[bucket].toss : &ls->ls_rsbtbl[bucket].keep; in table_seq_start() 486 spin_lock(&ls->ls_rsbtbl[bucket].lock); in table_seq_start() 493 spin_unlock(&ls->ls_rsbtbl[bucket].lock); in table_seq_start() [all …]
|
D | dlm_internal.h | 60 #define log_error(ls, fmt, args...) \ argument 61 printk(KERN_ERR "dlm: %s: " fmt "\n", (ls)->ls_name , ##args) 63 #define log_rinfo(ls, fmt, args...) \ argument 67 (ls)->ls_name, ##args); \ 70 (ls)->ls_name , ##args); \ 73 #define log_debug(ls, fmt, args...) \ argument 77 (ls)->ls_name , ##args); \ 80 #define log_limit(ls, fmt, args...) \ argument 84 (ls)->ls_name , ##args); \ 747 static inline int dlm_locking_stopped(struct dlm_ls *ls) in dlm_locking_stopped() argument [all …]
|
D | plock.c | 106 struct dlm_ls *ls; in dlm_posix_lock() local 110 ls = dlm_find_lockspace_local(lockspace); in dlm_posix_lock() 111 if (!ls) in dlm_posix_lock() 124 op->info.fsid = ls->ls_global_id; in dlm_posix_lock() 171 log_debug(ls, "%s: wait interrupted %x %llx pid %d", in dlm_posix_lock() 172 __func__, ls->ls_global_id, in dlm_posix_lock() 190 log_error(ls, "dlm_posix_lock: vfs lock error %llx", in dlm_posix_lock() 196 dlm_put_lockspace(ls); in dlm_posix_lock() 255 struct dlm_ls *ls; in dlm_posix_unlock() local 260 ls = dlm_find_lockspace_local(lockspace); in dlm_posix_unlock() [all …]
|
D | ast.h | 16 int dlm_rem_lkb_callback(struct dlm_ls *ls, struct dlm_lkb *lkb, 22 int dlm_callback_start(struct dlm_ls *ls); 23 void dlm_callback_stop(struct dlm_ls *ls); 24 void dlm_callback_suspend(struct dlm_ls *ls); 25 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 | 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);
|
D | memory.c | 72 char *dlm_allocate_lvb(struct dlm_ls *ls) in dlm_allocate_lvb() argument 76 p = kzalloc(ls->ls_lvblen, GFP_NOFS); in dlm_allocate_lvb() 85 struct dlm_rsb *dlm_allocate_rsb(struct dlm_ls *ls) in dlm_allocate_rsb() argument 100 struct dlm_lkb *dlm_allocate_lkb(struct dlm_ls *ls) in dlm_allocate_lkb() argument
|
/fs/gfs2/ |
D | lock_dlm.c | 260 struct lm_lockstruct *ls = &gl->gl_name.ln_sbd->sd_lockstruct; in gdlm_lock() local 284 error = dlm_lock(ls->ls_dlm, req, &gl->gl_lksb, lkf, strname, in gdlm_lock() 296 struct lm_lockstruct *ls = &sdp->sd_lockstruct; in gdlm_put_lock() local 310 if (test_bit(DFL_UNMOUNT, &ls->ls_recover_flags)) { in gdlm_put_lock() 323 error = dlm_unlock(ls->ls_dlm, gl->gl_lksb.sb_lkid, DLM_LKF_VALBLK, in gdlm_put_lock() 340 struct lm_lockstruct *ls = &gl->gl_name.ln_sbd->sd_lockstruct; in gdlm_cancel() local 341 dlm_unlock(ls->ls_dlm, gl->gl_lksb.sb_lkid, DLM_LKF_CANCEL, NULL, gl); in gdlm_cancel() 487 static void control_lvb_read(struct lm_lockstruct *ls, uint32_t *lvb_gen, in control_lvb_read() argument 491 memcpy(lvb_bits, ls->ls_control_lvb, GDLM_LVB_SIZE); in control_lvb_read() 496 static void control_lvb_write(struct lm_lockstruct *ls, uint32_t lvb_gen, in control_lvb_write() argument [all …]
|
D | sys.c | 395 struct lm_lockstruct *ls = &sdp->sd_lockstruct; in block_show() local 399 if (test_bit(DFL_BLOCK_LOCKS, &ls->ls_recover_flags)) in block_show() 407 struct lm_lockstruct *ls = &sdp->sd_lockstruct; in block_store() local 415 set_bit(DFL_BLOCK_LOCKS, &ls->ls_recover_flags); in block_store() 417 clear_bit(DFL_BLOCK_LOCKS, &ls->ls_recover_flags); in block_store() 451 struct lm_lockstruct *ls = &sdp->sd_lockstruct; in lkfirst_show() local 452 return sprintf(buf, "%d\n", ls->ls_first); in lkfirst_show() 484 struct lm_lockstruct *ls = &sdp->sd_lockstruct; in first_done_show() local 485 return sprintf(buf, "%d\n", !!test_bit(DFL_FIRST_MOUNT_DONE, &ls->ls_recover_flags)); in first_done_show() 542 struct lm_lockstruct *ls = &sdp->sd_lockstruct; in recover_done_show() local [all …]
|
/fs/nfsd/ |
D | nfs4layouts.c | 158 struct nfs4_layout_stateid *ls = layoutstateid(stid); in nfsd4_free_layout_stateid() local 159 struct nfs4_client *clp = ls->ls_stid.sc_client; in nfsd4_free_layout_stateid() 160 struct nfs4_file *fp = ls->ls_stid.sc_file; in nfsd4_free_layout_stateid() 162 trace_nfsd_layoutstate_free(&ls->ls_stid.sc_stateid); in nfsd4_free_layout_stateid() 165 list_del_init(&ls->ls_perclnt); in nfsd4_free_layout_stateid() 169 list_del_init(&ls->ls_perfile); in nfsd4_free_layout_stateid() 172 if (!nfsd4_layout_ops[ls->ls_layout_type]->disable_recalls) in nfsd4_free_layout_stateid() 173 vfs_setlease(ls->ls_file->nf_file, F_UNLCK, NULL, (void **)&ls); in nfsd4_free_layout_stateid() 174 nfsd_file_put(ls->ls_file); in nfsd4_free_layout_stateid() 176 if (ls->ls_recalled) in nfsd4_free_layout_stateid() [all …]
|