static void blk_mq_handle_dev_resource(struct request *rq,
                                       struct list_head *list)
 {
-       struct request *next =
-               list_first_entry_or_null(list, struct request, queuelist);
-
-       /*
-        * If an I/O scheduler has been configured and we got a driver tag for
-        * the next request already, free it.
-        */
-       if (next)
-               blk_mq_put_driver_tag(next);
-
        list_add(&rq->queuelist, list);
        __blk_mq_requeue_request(rq);
 }
 {
        enum prep_dispatch prep;
        struct request_queue *q = hctx->queue;
-       struct request *rq, *nxt;
+       struct request *rq;
        int queued;
        blk_status_t ret = BLK_STS_OK;
        LIST_HEAD(zone_list);
                list_del_init(&rq->queuelist);
 
                bd.rq = rq;
-
-               /*
-                * Flag last if we have no more requests, or if we have more
-                * but can't assign a driver tag to it.
-                */
-               if (list_empty(list))
-                       bd.last = true;
-               else {
-                       nxt = list_first_entry(list, struct request, queuelist);
-                       bd.last = !blk_mq_get_driver_tag(nxt);
-               }
+               bd.last = list_empty(list);
 
                /*
                 * once the request is queued to lld, no need to cover the