Commit d2b9f12
scsi: avoid to quiesce sdev->request_queue two times
For fixing queue quiesce race between driver and block layer(elevator
switch, update nr_requests, ...), we need to support concurrent quiesce
and unquiesce, which requires the two to be balanced.
blk_mq_quiesce_queue() calls blk_mq_quiesce_queue_nowait() for updating
quiesce depth and marking the flag, then scsi_internal_device_block() calls
blk_mq_quiesce_queue_nowait() two times actually.
Fix the double quiesce and keep quiesce and unquiesce balanced.
Reported-by: Yi Zhang <yi.zhang@redhat.com>
Fixes: e70feb8 ("blk-mq: support concurrent queue quiesce/unquiesce")
Signed-off-by: Ming Lei <ming.lei@redhat.com>
Reviewed-by: Martin K. Petersen <martin.petersen@oracle.com>
Link: https://lore.kernel.org/r/20211109071144.181581-3-ming.lei@redhat.com
Signed-off-by: Jens Axboe <axboe@kernel.dk>1 parent 9ef4d02 commit d2b9f12
1 file changed
Lines changed: 14 additions & 15 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
2630 | 2630 | | |
2631 | 2631 | | |
2632 | 2632 | | |
| 2633 | + | |
| 2634 | + | |
| 2635 | + | |
| 2636 | + | |
| 2637 | + | |
| 2638 | + | |
| 2639 | + | |
| 2640 | + | |
2633 | 2641 | | |
2634 | 2642 | | |
2635 | 2643 | | |
| |||
2646 | 2654 | | |
2647 | 2655 | | |
2648 | 2656 | | |
2649 | | - | |
2650 | | - | |
2651 | | - | |
2652 | | - | |
2653 | | - | |
2654 | | - | |
2655 | | - | |
2656 | | - | |
2657 | | - | |
2658 | | - | |
| 2657 | + | |
2659 | 2658 | | |
2660 | 2659 | | |
2661 | 2660 | | |
2662 | 2661 | | |
2663 | 2662 | | |
2664 | 2663 | | |
2665 | | - | |
2666 | | - | |
| 2664 | + | |
| 2665 | + | |
| 2666 | + | |
2667 | 2667 | | |
2668 | 2668 | | |
2669 | 2669 | | |
| |||
2684 | 2684 | | |
2685 | 2685 | | |
2686 | 2686 | | |
2687 | | - | |
2688 | 2687 | | |
2689 | 2688 | | |
2690 | 2689 | | |
2691 | | - | |
| 2690 | + | |
2692 | 2691 | | |
2693 | | - | |
| 2692 | + | |
2694 | 2693 | | |
2695 | 2694 | | |
2696 | 2695 | | |
| |||
0 commit comments