Revert "block, bfq: honor already-setup queue merges"

This reverts commit 2d52c58b9c9bdae0ca3df6a1eab5745ab3f7d80b.

We have had several folks complain that this causes hangs for them, which
is especially problematic as the commit has also hit stable already.

As no resolution seems to be forthcoming right now, revert the patch.

Link: https://bugzilla.kernel.org/show_bug.cgi?id=214503
Fixes: 2d52c58b9c9b ("block, bfq: honor already-setup queue merges")
Signed-off-by: Jens Axboe <axboe@kernel.dk>

+3 -13
+3 -13
block/bfq-iosched.c
··· 2662 * are likely to increase the throughput. 2663 */ 2664 bfqq->new_bfqq = new_bfqq; 2665 - /* 2666 - * The above assignment schedules the following redirections: 2667 - * each time some I/O for bfqq arrives, the process that 2668 - * generated that I/O is disassociated from bfqq and 2669 - * associated with new_bfqq. Here we increases new_bfqq->ref 2670 - * in advance, adding the number of processes that are 2671 - * expected to be associated with new_bfqq as they happen to 2672 - * issue I/O. 2673 - */ 2674 new_bfqq->ref += process_refs; 2675 return new_bfqq; 2676 } ··· 2723 void *io_struct, bool request, struct bfq_io_cq *bic) 2724 { 2725 struct bfq_queue *in_service_bfqq, *new_bfqq; 2726 - 2727 - /* if a merge has already been setup, then proceed with that first */ 2728 - if (bfqq->new_bfqq) 2729 - return bfqq->new_bfqq; 2730 2731 /* 2732 * Check delayed stable merge for rotational or non-queueing ··· 2824 */ 2825 if (bfq_too_late_for_merging(bfqq)) 2826 return NULL; 2827 2828 if (!io_struct || unlikely(bfqq == &bfqd->oom_bfqq)) 2829 return NULL;
··· 2662 * are likely to increase the throughput. 2663 */ 2664 bfqq->new_bfqq = new_bfqq; 2665 new_bfqq->ref += process_refs; 2666 return new_bfqq; 2667 } ··· 2732 void *io_struct, bool request, struct bfq_io_cq *bic) 2733 { 2734 struct bfq_queue *in_service_bfqq, *new_bfqq; 2735 2736 /* 2737 * Check delayed stable merge for rotational or non-queueing ··· 2837 */ 2838 if (bfq_too_late_for_merging(bfqq)) 2839 return NULL; 2840 + 2841 + if (bfqq->new_bfqq) 2842 + return bfqq->new_bfqq; 2843 2844 if (!io_struct || unlikely(bfqq == &bfqd->oom_bfqq)) 2845 return NULL;