Lines Matching refs:proc
180 struct dlm_user_proc *proc;
200 proc = ua->proc;
208 spin_lock(&proc->asts_spin);
212 spin_unlock(&proc->asts_spin);
218 list_add_tail(&lkb->lkb_cb_list, &proc->asts);
219 wake_up_interruptible(&proc->wait);
221 spin_unlock(&proc->asts_spin);
225 spin_lock(&proc->locks_spin);
230 spin_unlock(&proc->locks_spin);
236 static int device_user_lock(struct dlm_user_proc *proc,
244 ls = dlm_find_lockspace_local(proc->lockspace);
256 ua->proc = proc;
290 static int device_user_unlock(struct dlm_user_proc *proc,
297 ls = dlm_find_lockspace_local(proc->lockspace);
304 ua->proc = proc;
319 static int device_user_deadlock(struct dlm_user_proc *proc,
325 ls = dlm_find_lockspace_local(proc->lockspace);
380 static int device_user_purge(struct dlm_user_proc *proc,
386 ls = dlm_find_lockspace_local(proc->lockspace);
390 error = dlm_user_purge(ls, proc, params->nodeid, params->pid);
504 struct dlm_user_proc *proc = file->private_data;
549 if (proc)
550 set_bit(DLM_PROC_FLAGS_COMPAT, &proc->flags);
559 (proc && test_bit(DLM_PROC_FLAGS_CLOSING, &proc->flags))) {
569 if (!proc) {
573 error = device_user_lock(proc, &kbuf->i.lock);
577 if (!proc) {
581 error = device_user_unlock(proc, &kbuf->i.lock);
585 if (!proc) {
589 error = device_user_deadlock(proc, &kbuf->i.lock);
593 if (proc) {
601 if (proc) {
609 if (!proc) {
613 error = device_user_purge(proc, &kbuf->i.purge);
626 /* Every process that opens the lockspace device has its own "proc" structure
632 struct dlm_user_proc *proc;
639 proc = kzalloc(sizeof(struct dlm_user_proc), GFP_NOFS);
640 if (!proc) {
645 proc->lockspace = ls->ls_local_handle;
646 INIT_LIST_HEAD(&proc->asts);
647 INIT_LIST_HEAD(&proc->locks);
648 INIT_LIST_HEAD(&proc->unlocking);
649 spin_lock_init(&proc->asts_spin);
650 spin_lock_init(&proc->locks_spin);
651 init_waitqueue_head(&proc->wait);
652 file->private_data = proc;
659 struct dlm_user_proc *proc = file->private_data;
662 ls = dlm_find_lockspace_local(proc->lockspace);
666 set_bit(DLM_PROC_FLAGS_CLOSING, &proc->flags);
668 dlm_clear_proc_locks(ls, proc);
672 looking for lkb->ua->proc */
674 kfree(proc);
779 struct dlm_user_proc *proc = file->private_data;
791 if (!proc) {
806 if (test_bit(DLM_PROC_FLAGS_CLOSING, &proc->flags))
809 spin_lock(&proc->asts_spin);
810 if (list_empty(&proc->asts)) {
812 spin_unlock(&proc->asts_spin);
816 add_wait_queue(&proc->wait, &wait);
820 if (list_empty(&proc->asts) && !signal_pending(current)) {
821 spin_unlock(&proc->asts_spin);
823 spin_lock(&proc->asts_spin);
827 remove_wait_queue(&proc->wait, &wait);
830 spin_unlock(&proc->asts_spin);
839 lkb = list_entry(proc->asts.next, struct dlm_lkb, lkb_cb_list);
850 spin_unlock(&proc->asts_spin);
851 /* removes ref for proc->asts, may cause lkb to be freed */
857 spin_unlock(&proc->asts_spin);
860 /* removes ref for proc->asts, may cause lkb to be freed */
878 test_bit(DLM_PROC_FLAGS_COMPAT, &proc->flags),
881 /* removes ref for proc->asts, may cause lkb to be freed */
890 struct dlm_user_proc *proc = file->private_data;
892 poll_wait(file, &proc->wait, wait);
894 spin_lock(&proc->asts_spin);
895 if (!list_empty(&proc->asts)) {
896 spin_unlock(&proc->asts_spin);
899 spin_unlock(&proc->asts_spin);