Lines Matching refs:copy_block
347 struct copy_block_struct *copy_block; in cmf_copy_block_release() local
349 copy_block = container_of(kref, struct copy_block_struct, kref); in cmf_copy_block_release()
350 kfree(copy_block); in cmf_copy_block_release()
355 struct copy_block_struct *copy_block; in cmf_cmb_copy_wait() local
364 copy_block = kzalloc(sizeof(struct copy_block_struct), GFP_ATOMIC); in cmf_cmb_copy_wait()
365 if (!copy_block) { in cmf_cmb_copy_wait()
369 init_waitqueue_head(©_block->wait); in cmf_cmb_copy_wait()
370 kref_init(©_block->kref); in cmf_cmb_copy_wait()
382 copy_block->ret = CMF_PENDING; in cmf_cmb_copy_wait()
383 cdev->private->cmb_wait = copy_block; in cmf_cmb_copy_wait()
386 if (wait_event_interruptible(copy_block->wait, in cmf_cmb_copy_wait()
387 copy_block->ret != CMF_PENDING)) { in cmf_cmb_copy_wait()
389 if (copy_block->ret == CMF_PENDING) { in cmf_cmb_copy_wait()
390 copy_block->ret = -ERESTARTSYS; in cmf_cmb_copy_wait()
398 ret = copy_block->ret; in cmf_cmb_copy_wait()
400 kref_put(©_block->kref, cmf_copy_block_release); in cmf_cmb_copy_wait()
408 struct copy_block_struct *copy_block; in cmf_retry_copy_block() local
410 copy_block = cdev->private->cmb_wait; in cmf_retry_copy_block()
411 if (!copy_block) { in cmf_retry_copy_block()
415 kref_get(©_block->kref); in cmf_retry_copy_block()
416 copy_block->ret = cmf_copy_block(cdev); in cmf_retry_copy_block()
417 wake_up(©_block->wait); in cmf_retry_copy_block()
418 kref_put(©_block->kref, cmf_copy_block_release); in cmf_retry_copy_block()