static void pmem_pagemap_cleanup(struct dev_pagemap *pgmap)
 {
-       struct request_queue *q =
-               container_of(pgmap->ref, struct request_queue, q_usage_counter);
+       struct pmem_device *pmem = pgmap->owner;
 
-       blk_cleanup_disk(queue_to_disk(q));
+       blk_cleanup_disk(pmem->disk);
 }
 
 static void pmem_release_queue(void *pgmap)
        q = disk->queue;
 
        pmem->disk = disk;
+       pmem->pgmap.owner = pmem;
        pmem->pfn_flags = PFN_DEV;
        pmem->pgmap.ref = &q->q_usage_counter;
        if (is_nd_pfn(dev)) {