void blk_mq_free_tags(struct blk_mq_tags *tags)
  {
 -      bt_free(&tags->bitmap_tags);
 -      bt_free(&tags->breserved_tags);
 +      sbitmap_queue_free(&tags->bitmap_tags);
 +      sbitmap_queue_free(&tags->breserved_tags);
-       free_cpumask_var(tags->cpumask);
        kfree(tags);
  }
  
 
                return ERR_PTR(ret);
  
        ctx = blk_mq_get_ctx(q);
-       hctx = q->mq_ops->map_queue(q, ctx->cpu);
+       hctx = blk_mq_map_queue(q, ctx->cpu);
        blk_mq_set_alloc_data(&alloc_data, q, flags, ctx, hctx);
 -
        rq = __blk_mq_alloc_request(&alloc_data, rw, 0);
 -      if (!rq && !(flags & BLK_MQ_REQ_NOWAIT)) {
 -              __blk_mq_run_hw_queue(hctx);
 -              blk_mq_put_ctx(ctx);
 -
 -              ctx = blk_mq_get_ctx(q);
 -              hctx = blk_mq_map_queue(q, ctx->cpu);
 -              blk_mq_set_alloc_data(&alloc_data, q, flags, ctx, hctx);
 -              rq =  __blk_mq_alloc_request(&alloc_data, rw, 0);
 -              ctx = alloc_data.ctx;
 -      }
        blk_mq_put_ctx(ctx);
 +
        if (!rq) {
                blk_queue_exit(q);
                return ERR_PTR(-EWOULDBLOCK);
 
  
  static struct blk_mq_ops nbd_mq_ops = {
        .queue_rq       = nbd_queue_rq,
--      .map_queue      = blk_mq_map_queue,
        .init_request   = nbd_init_request,
        .timeout        = nbd_xmit_timeout,
  };