Thanks for catching the stupidity. Did it actually happen? PC commands
are not completed in pieces and padding / draining should only happen
for those. qc->extra_len should be zero where commands can be splitted
for all current cases.
This is getting insanely subtle. Let's say there's PIO driver which
transfer certain sized chunks at a time and completes request partially
after completing each chunk and the driver uses draining to eat up
whatever excess data, which seems like a legit use case to me. But it
won't work because __end_that_request_first() will terminate when it
reaches reaches the 'true' transfer size. That's just broken API. FWIW,
Nacked-by: Tejun Heo <htejun@gmail.com>
--
tejun
--