Commit e20fff8
scsi: core: Don't wait for quiesce in scsi_device_block()
scsi_device_block() is only called from scsi_target_block(), which calls it
repeatedly for every child device. For targets with many devices, waiting
for every queue to quiesce may cause a substantial delay (we measured more
than 100s delay for blocking a FC rport with 2048 LUNs).
Just call blk_mq_wait_quiesce_done() once from scsi_target_block() after
stopping all queues.
Signed-off-by: Martin Wilck <mwilck@suse.com>
Link: https://lore.kernel.org/r/20230614103616.31857-6-mwilck@suse.com
Reviewed-by: Hannes Reinecke <hare@suse.de>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Bart Van Assche <bvanassche@acm.org>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>1 parent d7035b7 commit e20fff8
1 file changed
Lines changed: 10 additions & 7 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
2771 | 2771 | | |
2772 | 2772 | | |
2773 | 2773 | | |
2774 | | - | |
2775 | | - | |
| 2774 | + | |
| 2775 | + | |
| 2776 | + | |
2776 | 2777 | | |
2777 | 2778 | | |
2778 | 2779 | | |
| |||
2786 | 2787 | | |
2787 | 2788 | | |
2788 | 2789 | | |
2789 | | - | |
| 2790 | + | |
2790 | 2791 | | |
2791 | 2792 | | |
2792 | 2793 | | |
2793 | 2794 | | |
2794 | 2795 | | |
2795 | 2796 | | |
2796 | | - | |
2797 | | - | |
2798 | | - | |
2799 | | - | |
| 2797 | + | |
| 2798 | + | |
2800 | 2799 | | |
2801 | 2800 | | |
2802 | 2801 | | |
| |||
2894 | 2893 | | |
2895 | 2894 | | |
2896 | 2895 | | |
| 2896 | + | |
| 2897 | + | |
2897 | 2898 | | |
2898 | 2899 | | |
2899 | 2900 | | |
2900 | 2901 | | |
2901 | 2902 | | |
| 2903 | + | |
| 2904 | + | |
2902 | 2905 | | |
2903 | 2906 | | |
2904 | 2907 | | |
| |||
0 commit comments