copy_block
struct copy_block_struct copy_block;
init_waitqueue_head(©_block.wait);
copy_block.ret = CMF_PENDING;
cdev->private->cmb_wait = ©_block;
ret = wait_event_interruptible(copy_block.wait,
copy_block.ret != CMF_PENDING);
if (copy_block.ret == CMF_PENDING) {
copy_block.ret = -ERESTARTSYS;
ret = copy_block.ret;
struct copy_block_struct *copy_block = cdev->private->cmb_wait;
if (!copy_block)
copy_block->ret = cmf_copy_block(cdev);
wake_up(©_block->wait);
static void copy_block (deflate_state *s, char *buf, unsigned len,
copy_block(s, buf, (unsigned)stored_len, 1); /* with header */
copy_block(s, buf, (unsigned)stored_len, 0); /* without header */