Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
View | Details | Raw Unified | Return to bug 187853
Collapse All | Expand All

(-)cdemu-0.8/cdemu_core.c (-3 / +17 lines)
Lines 176-182 static int cdemu_transfer_bio(struct cde Link Here
176
	retval = vc->backing_file->f_op->sendfile(vc->backing_file,
176
	retval = vc->backing_file->f_op->sendfile(vc->backing_file,
177
		&position, bio_iovec(bio)->bv_len, cdemu_read_actor_bio, bio);
177
		&position, bio_iovec(bio)->bv_len, cdemu_read_actor_bio, bio);
178
	if (retval < 0) {
178
	if (retval < 0) {
179
		dprintk("cdemu_transfer: retval error %i\n", retval);
179
		dprintk("cdemu_transfer: retval error %i\n", (int)retval);
180
		return retval;
180
		return retval;
181
	} else {
181
	} else {
182
		return 0;
182
		return 0;
Lines 486-496 static int cdemu_ioctl(struct cdrom_devi Link Here
486
			}
486
			}
487
487
488
			if (cmd == CDROMREADRAW) {
488
			if (cmd == CDROMREADRAW) {
489
				tmp = generic_file_read(vc->backing_file, (void*)arg, CD_FRAMESIZE_RAW, &position);
489
				struct iovec local_iov = { .iov_base = (void*)arg, .iov_len = CD_FRAMESIZE_RAW };
490
				struct kiocb kiocb;
491
				
492
				init_sync_kiocb(&kiocb, vc->backing_file);
493
				tmp = generic_file_aio_read(&kiocb, &local_iov, 1, position);
494
				if (-EIOCBQUEUED == tmp)
495
					tmp = wait_on_sync_kiocb(&kiocb);      
496
490
				if (tmp != CD_FRAMESIZE_RAW)
497
				if (tmp != CD_FRAMESIZE_RAW)
491
					dprintk("only read %i bytes\n",tmp);
498
					dprintk("only read %i bytes\n",tmp);
492
			} else {	/*CDROMREADCOOKED*/
499
			} else {	/*CDROMREADCOOKED*/
493
				tmp = generic_file_read(vc->backing_file, (void*)arg, CD_FRAMESIZE, &position);
500
				struct iovec local_iov = { .iov_base = (void*)arg, .iov_len = CD_FRAMESIZE };
501
				struct kiocb kiocb;
502
				
503
				init_sync_kiocb(&kiocb, vc->backing_file);
504
				tmp = generic_file_aio_read(&kiocb, &local_iov, 1, position);
505
				if (-EIOCBQUEUED == tmp)
506
					tmp = wait_on_sync_kiocb(&kiocb);
507
494
				if (tmp != CD_FRAMESIZE)
508
				if (tmp != CD_FRAMESIZE)
495
					dprintk("only read %i bytes\n",tmp);
509
					dprintk("only read %i bytes\n",tmp);
496
			}
510
			}
(-)cdemu-0.8/cdemu_mod.c (-1 / +1 lines)
Lines 195-201 static void __exit cdemu_exit(void) Link Here
195
#endif
195
#endif
196
		if (vc->bdev) {
196
		if (vc->bdev) {
197
			dprintk("cdemu_exit: punting bdev\n");
197
			dprintk("cdemu_exit: punting bdev\n");
198
			invalidate_bdev(vc->bdev, 1);
198
			invalidate_bdev(vc->bdev);
199
			bdput(vc->bdev);
199
			bdput(vc->bdev);
200
		}
200
		}
201
		if (vc->gd) {
201
		if (vc->gd) {

Return to bug 187853