Lines Matching refs:urf
392 struct urfile *urf; in urfile_alloc() local
394 urf = kzalloc(sizeof(struct urfile), GFP_KERNEL); in urfile_alloc()
395 if (!urf) in urfile_alloc()
397 urf->urd = urd; in urfile_alloc()
399 TRACE("urfile_alloc: urd=%p urf=%p rl=%zu\n", urd, urf, in urfile_alloc()
400 urf->dev_reclen); in urfile_alloc()
402 return urf; in urfile_alloc()
405 static void urfile_free(struct urfile *urf) in urfile_free() argument
407 TRACE("urfile_free: urf=%p urd=%p\n", urf, urf->urd); in urfile_free()
408 kfree(urf); in urfile_free()
443 struct urfile *urf = file->private_data; in ur_write() local
450 if (count % urf->dev_reclen) in ur_write()
453 if (count > urf->dev_reclen * MAX_RECS_PER_IO) in ur_write()
454 count = urf->dev_reclen * MAX_RECS_PER_IO; in ur_write()
456 return do_write(urf->urd, udata, count, urf->dev_reclen, ppos); in ur_write()
694 struct urfile *urf; in ur_open() local
743 urf = urfile_alloc(urd); in ur_open()
744 if (!urf) { in ur_open()
749 urf->dev_reclen = urd->reclen; in ur_open()
753 urf->file_reclen = rc; in ur_open()
754 file->private_data = urf; in ur_open()
758 urfile_free(urf); in ur_open()
771 struct urfile *urf = file->private_data; in ur_release() local
774 spin_lock(&urf->urd->open_lock); in ur_release()
775 urf->urd->open_flag--; in ur_release()
776 spin_unlock(&urf->urd->open_lock); in ur_release()
777 wake_up_interruptible(&urf->urd->wait); in ur_release()
778 urdev_put(urf->urd); in ur_release()
779 urfile_free(urf); in ur_release()