Lines Matching refs:proc
182 struct dlm_user_proc *proc; in dlm_user_add_ast() local
202 proc = ua->proc; in dlm_user_add_ast()
210 spin_lock(&proc->asts_spin); in dlm_user_add_ast()
214 spin_unlock(&proc->asts_spin); in dlm_user_add_ast()
220 list_add_tail(&lkb->lkb_cb_list, &proc->asts); in dlm_user_add_ast()
221 wake_up_interruptible(&proc->wait); in dlm_user_add_ast()
223 spin_unlock(&proc->asts_spin); in dlm_user_add_ast()
227 spin_lock(&proc->locks_spin); in dlm_user_add_ast()
232 spin_unlock(&proc->locks_spin); in dlm_user_add_ast()
238 static int device_user_lock(struct dlm_user_proc *proc, in device_user_lock() argument
246 ls = dlm_find_lockspace_local(proc->lockspace); in device_user_lock()
266 ua->proc = proc; in device_user_lock()
311 static int device_user_unlock(struct dlm_user_proc *proc, in device_user_unlock() argument
318 ls = dlm_find_lockspace_local(proc->lockspace); in device_user_unlock()
325 ua->proc = proc; in device_user_unlock()
340 static int device_user_deadlock(struct dlm_user_proc *proc, in device_user_deadlock() argument
346 ls = dlm_find_lockspace_local(proc->lockspace); in device_user_deadlock()
401 static int device_user_purge(struct dlm_user_proc *proc, in device_user_purge() argument
407 ls = dlm_find_lockspace_local(proc->lockspace); in device_user_purge()
411 error = dlm_user_purge(ls, proc, params->nodeid, params->pid); in device_user_purge()
525 struct dlm_user_proc *proc = file->private_data; in device_write() local
570 if (proc) in device_write()
571 set_bit(DLM_PROC_FLAGS_COMPAT, &proc->flags); in device_write()
580 (proc && test_bit(DLM_PROC_FLAGS_CLOSING, &proc->flags))) { in device_write()
590 if (!proc) { in device_write()
594 error = device_user_lock(proc, &kbuf->i.lock); in device_write()
598 if (!proc) { in device_write()
602 error = device_user_unlock(proc, &kbuf->i.lock); in device_write()
606 if (!proc) { in device_write()
610 error = device_user_deadlock(proc, &kbuf->i.lock); in device_write()
614 if (proc) { in device_write()
622 if (proc) { in device_write()
630 if (!proc) { in device_write()
634 error = device_user_purge(proc, &kbuf->i.purge); in device_write()
653 struct dlm_user_proc *proc; in device_open() local
660 proc = kzalloc(sizeof(struct dlm_user_proc), GFP_NOFS); in device_open()
661 if (!proc) { in device_open()
666 proc->lockspace = ls->ls_local_handle; in device_open()
667 INIT_LIST_HEAD(&proc->asts); in device_open()
668 INIT_LIST_HEAD(&proc->locks); in device_open()
669 INIT_LIST_HEAD(&proc->unlocking); in device_open()
670 spin_lock_init(&proc->asts_spin); in device_open()
671 spin_lock_init(&proc->locks_spin); in device_open()
672 init_waitqueue_head(&proc->wait); in device_open()
673 file->private_data = proc; in device_open()
680 struct dlm_user_proc *proc = file->private_data; in device_close() local
683 ls = dlm_find_lockspace_local(proc->lockspace); in device_close()
687 set_bit(DLM_PROC_FLAGS_CLOSING, &proc->flags); in device_close()
689 dlm_clear_proc_locks(ls, proc); in device_close()
695 kfree(proc); in device_close()
800 struct dlm_user_proc *proc = file->private_data; in device_read() local
812 if (!proc) { in device_read()
827 if (test_bit(DLM_PROC_FLAGS_CLOSING, &proc->flags)) in device_read()
830 spin_lock(&proc->asts_spin); in device_read()
831 if (list_empty(&proc->asts)) { in device_read()
833 spin_unlock(&proc->asts_spin); in device_read()
837 add_wait_queue(&proc->wait, &wait); in device_read()
841 if (list_empty(&proc->asts) && !signal_pending(current)) { in device_read()
842 spin_unlock(&proc->asts_spin); in device_read()
844 spin_lock(&proc->asts_spin); in device_read()
848 remove_wait_queue(&proc->wait, &wait); in device_read()
851 spin_unlock(&proc->asts_spin); in device_read()
860 lkb = list_entry(proc->asts.next, struct dlm_lkb, lkb_cb_list); in device_read()
871 spin_unlock(&proc->asts_spin); in device_read()
878 spin_unlock(&proc->asts_spin); in device_read()
902 test_bit(DLM_PROC_FLAGS_COMPAT, &proc->flags), in device_read()
914 struct dlm_user_proc *proc = file->private_data; in device_poll() local
916 poll_wait(file, &proc->wait, wait); in device_poll()
918 spin_lock(&proc->asts_spin); in device_poll()
919 if (!list_empty(&proc->asts)) { in device_poll()
920 spin_unlock(&proc->asts_spin); in device_poll()
923 spin_unlock(&proc->asts_spin); in device_poll()