• Tejun Heo's avatar
    ide-tape,floppy: fix failed command completion after request sense · 08f370f0
    Tejun Heo authored
    Impact: fix infinite retry loop
    
    After a command failed, ide-tape and floppy inserts REQUEST_SENSE in
    front of the failed command and according to the result, sets
    pc->retries, flags and errors.  After REQUEST_SENSE is complete, the
    failed command is again at the front of the queue and if the verdict
    was to terminate the request, the issue functions tries to complete it
    directly by calling drive->pc_callback() and returning ide_stopped.
    
    However, drive->pc_callback() doesn't complete a request.  It only
    prepares for completion of the request.  As a result, this creates an
    infinite loop where the failed request is retried perpetually.
    
    Fix it by actually ending the request by calling ide_complete_rq().
    Signed-off-by: default avatarTejun Heo <tj@kernel.org>
    08f370f0
ide-floppy.c 14.6 KB