diff options
| author | Jens Axboe <[email protected]> | 2007-07-19 08:13:01 +0200 |
|---|---|---|
| committer | Linus Torvalds <[email protected]> | 2007-07-19 10:22:44 -0700 |
| commit | 41e9d344bf52c57ec16648d08618b61d3f1d4bdc (patch) | |
| tree | 7d55fc863731bc669fb9ff1d50ae7c5524ef91d6 /include/linux/debugobjects.h | |
| parent | 275afcac9953ece0828972edeab9684cfe1a5ef3 (diff) | |
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 <[email protected]>
Tested-By: Giacomo Catenazzi <[email protected]>
Signed-off-by: Jens Axboe <[email protected]>
Signed-off-by: Linus Torvalds <[email protected]>
Diffstat (limited to 'include/linux/debugobjects.h')
0 files changed, 0 insertions, 0 deletions