static int z2ram_register_disk(int minor)
 {
-       struct request_queue *q;
        struct gendisk *disk;
 
-       disk = alloc_disk(1);
-       if (!disk)
-               return -ENOMEM;
-
-       q = blk_mq_init_queue(&tag_set);
-       if (IS_ERR(q)) {
-               put_disk(disk);
-               return PTR_ERR(q);
-       }
+       disk = blk_mq_alloc_disk(&tag_set, NULL);
+       if (IS_ERR(disk))
+               return PTR_ERR(disk);
 
        disk->major = Z2RAM_MAJOR;
        disk->first_minor = minor;
+       disk->minors = 1;
        disk->fops = &z2_fops;
        if (minor)
                sprintf(disk->disk_name, "z2ram%d", minor);
        else
                sprintf(disk->disk_name, "z2ram");
-       disk->queue = q;
 
        z2ram_gendisk[minor] = disk;
        add_disk(disk);