mirror of
https://github.com/torvalds/linux.git
synced 2026-06-28 09:05:40 +02:00
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>
|
||
|---|---|---|
| .. | ||
| arm | ||
| cris | ||
| h8300 | ||
| legacy | ||
| mips | ||
| pci | ||
| ppc | ||
| ide-acpi.c | ||
| ide-cd.c | ||
| ide-cd.h | ||
| ide-disk.c | ||
| ide-dma.c | ||
| ide-floppy.c | ||
| ide-generic.c | ||
| ide-io.c | ||
| ide-iops.c | ||
| ide-lib.c | ||
| ide-pnp.c | ||
| ide-probe.c | ||
| ide-proc.c | ||
| ide-tape.c | ||
| ide-taskfile.c | ||
| ide-timing.h | ||
| ide.c | ||
| Kconfig | ||
| Makefile | ||
| setup-pci.c | ||