When a SCSI device is closed in error, the shutdown of the device's block data interface will probably lead to any outstanding commands being closed (by whichever object is currently connected to the block data interface). However, commands remain in the list of outstanding commands until the final reference is dropped. The result is that scsidev_close() will make a second call to scsicmd_close() for each command. This is harmless, but produces confusing debug messages. Fix by treating the outstanding command list as holding an explicit reference to each command, and removing the command from the list of outstanding commands in scsicmd_close(). Signed-off-by: Michael Brown <mcb30@ipxe.org>tags/v1.20.1
|
|
||
371 |
|
371 |
|
372 |
|
372 |
|
373 |
|
373 |
|
374 |
|
|
|
375 |
|
|
|
|
374 |
|
|
376 |
|
375 |
|
377 |
|
376 |
|
378 |
|
377 |
|
|
|
||
395 |
|
394 |
|
396 |
|
395 |
|
397 |
|
396 |
|
|
397 |
|
|
|
398 |
|
|
|
399 |
|
|
|
400 |
|
|
398 |
|
401 |
|
399 |
|
402 |
|
400 |
|
403 |
|
|
|
||
733 |
|
736 |
|
734 |
|
737 |
|
735 |
|
738 |
|
736 |
|
|
|
|
739 |
|
|
737 |
|
740 |
|
738 |
|
|
|
739 |
|
741 |
|
740 |
|
742 |
|
741 |
|
743 |
|
|
|
||
843 |
|
845 |
|
844 |
|
846 |
|
845 |
|
847 |
|
846 |
|
|
|
847 |
|
|
|
|
848 |
|
|
848 |
|
849 |
|
849 |
|
|
|
850 |
|
|
|
851 |
|
850 |
|
852 |
|
851 |
|
853 |
|
852 |
|