linux/drivers/ide
Jens Axboe 41e9d344bf IDE: fix termination of non-fs requests
ide-disk calls

        ide_end_request(drive, 0, 0);

to finish an unknown request, but this doesn't work so well for non-fs
requests, since ide_end_request() internally looks at ->hard_cur_sectors
to see how much data to end. Only file system requests store a transfer
value in there, pc requests fill out ->data_len as a byte based transfer
value instead.

Since we ask to end 0 bytes of that request, it will never be terminated
and ide-disk gets stuck in a loop "handling" that same request over and
over.

Switch __ide_end_request() to take a byte based transfer count, and
adjust ide_end_request() to look at the right field to determine how
much IO to end when it's being passed in 0.

Acked-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
Tested-By: Giacomo Catenazzi <cate@debian.org>
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2007-07-19 10:22:44 -07:00
..
arm icside: devm_iounmap() needs linux/io.h 2007-07-15 16:40:52 -07:00
cris ide: add short cables support 2007-07-09 23:17:58 +02:00
h8300 ide: add "initializing" argument to ide_register_hw() 2007-05-10 00:01:10 +02:00
legacy hd.c: remove BIOS/CMOS queries 2007-07-12 10:55:54 -07:00
mips some kmalloc/memset ->kzalloc (tree wide) 2007-07-19 10:04:50 -07:00
pci PCI: add pci_try_set_mwi 2007-07-11 16:02:11 -07:00
ppc ide: add short cables support 2007-07-09 23:17:58 +02:00
ide-acpi.c ide-acpi support warning fix 2007-02-07 18:19:42 +01:00
ide-cd.c ide-cd: replace C code with call to ARRAY_SIZE() macro 2007-07-09 23:17:57 +02:00
ide-cd.h ide-cd: replace C code with call to ARRAY_SIZE() macro 2007-07-09 23:17:57 +02:00
ide-disk.c ide: use mutex instead of ide_setting_sem semaphore in IDE driver 2007-07-09 23:17:56 +02:00
ide-dma.c drivers/ide/ide-dma.c: unexport ide_set_dma 2007-07-09 23:17:59 +02:00
ide-floppy.c bsg: support for full generic block layer SG v3 2007-07-16 08:52:44 +02:00
ide-generic.c ide: add ide_proc_register_port() 2007-05-10 00:01:11 +02:00
ide-io.c IDE: fix termination of non-fs requests 2007-07-19 10:22:44 -07:00
ide-iops.c ide: add short cables support 2007-07-09 23:17:58 +02:00
ide-lib.c ide: remove ide_dma_enable() 2007-05-16 00:51:46 +02:00
ide-pnp.c ide: add "initializing" argument to ide_register_hw() 2007-05-10 00:01:10 +02:00
ide-probe.c Slab allocators: Replace explicit zeroing with __GFP_ZERO 2007-07-17 10:23:02 -07:00
ide-proc.c ide: use mutex instead of ide_setting_sem semaphore in IDE driver 2007-07-09 23:17:56 +02:00
ide-tape.c ide: move IDE settings handling to ide-proc.c 2007-05-10 00:01:10 +02:00
ide-taskfile.c ide: never called printk statement in ide-taskfile.c::wait_drive_not_busy 2007-07-03 22:28:34 +02:00
ide-timing.h ide: convert ide_find_best_mode() users to use ide_max_dma_mode() 2007-07-09 23:17:57 +02:00
ide.c Revert drivers/ide/ide.c scsi_cmd_ioctl() usage changes 2007-07-17 15:57:42 -07:00
Kconfig Use menuconfig objects: IDE 2007-05-16 00:51:46 +02:00
Makefile ide: make /proc/ide/ optional 2007-05-10 00:01:09 +02:00
setup-pci.c ide: ide_scan_pcibus(): check __pci_register_driver return value 2007-07-03 22:28:36 +02:00