The implementation in ll_rw_blk.c (and other places) assumes that
a failed request just means the first chunk and it then makes sense
to just end i/o on that buffer and resetup the request for the next
buffer. If you want to completely scrap the request on an error, then
you'll just have to do that manually (ie loop end_that_request_first
and end_that_request_last at the end).
void my_end_request(struct request *rq, int uptodate)
{
while (end_that_request_first(rq, uptodate))
;
io_lock
end_that_request_last(rq);
io_unlock
}
And why you keep insisting on a duplicate end_that_request_first I don't
know?!
-- Jens Axboe- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/