Lines Matching full:block
92 struct nlm_wait *block; in nlmclnt_prepare_block() local
94 block = kmalloc(sizeof(*block), GFP_KERNEL); in nlmclnt_prepare_block()
95 if (block != NULL) { in nlmclnt_prepare_block()
96 block->b_host = host; in nlmclnt_prepare_block()
97 block->b_lock = fl; in nlmclnt_prepare_block()
98 init_waitqueue_head(&block->b_wait); in nlmclnt_prepare_block()
99 block->b_status = nlm_lck_blocked; in nlmclnt_prepare_block()
102 list_add(&block->b_list, &nlm_blocked); in nlmclnt_prepare_block()
105 return block; in nlmclnt_prepare_block()
108 void nlmclnt_finish_block(struct nlm_wait *block) in nlmclnt_finish_block() argument
110 if (block == NULL) in nlmclnt_finish_block()
113 list_del(&block->b_list); in nlmclnt_finish_block()
115 kfree(block); in nlmclnt_finish_block()
119 * Block on a lock
121 int nlmclnt_block(struct nlm_wait *block, struct nlm_rqst *req, long timeout) in nlmclnt_block() argument
125 /* A borken server might ask us to block even if we didn't in nlmclnt_block()
128 if (block == NULL) in nlmclnt_block()
139 ret = wait_event_interruptible_timeout(block->b_wait, in nlmclnt_block()
140 block->b_status != nlm_lck_blocked, in nlmclnt_block()
144 req->a_res.status = block->b_status; in nlmclnt_block()
155 struct nlm_wait *block; in nlmclnt_grant() local
163 list_for_each_entry(block, &nlm_blocked, b_list) { in nlmclnt_grant()
164 struct file_lock *fl_blocked = block->b_lock; in nlmclnt_grant()
176 if (!rpc_cmp_addr(nlm_addr(block->b_host), addr)) in nlmclnt_grant()
183 block->b_status = nlm_granted; in nlmclnt_grant()
184 wake_up(&block->b_wait); in nlmclnt_grant()
219 struct nlm_wait *block; in reclaimer() local
267 list_for_each_entry(block, &nlm_blocked, b_list) { in reclaimer()
268 if (block->b_host == host) { in reclaimer()
269 block->b_status = nlm_lck_denied_grace_period; in reclaimer()
270 wake_up(&block->b_wait); in reclaimer()