* (hr_steady_iterations == 0) within hr_unsteady_iterations */
        atomic_t                hr_unsteady_iterations;
 
-       char                    hr_dev_name[BDEVNAME_SIZE];
-
        unsigned int            hr_timeout_ms;
 
        /* randomized as the region goes up and down so that a node
                container_of(work, struct o2hb_region,
                             hr_write_timeout_work.work);
 
-       mlog(ML_ERROR, "Heartbeat write timeout to device %s after %u "
-            "milliseconds\n", reg->hr_dev_name,
+       mlog(ML_ERROR, "Heartbeat write timeout to device %pg after %u "
+            "milliseconds\n", reg->hr_bdev,
             jiffies_to_msecs(jiffies - reg->hr_last_timeout_start));
 
        if (o2hb_global_heartbeat_active()) {
 
        if (master_node == o2nm_this_node()) {
                if (!test_bit(master_node, reg->hr_nego_node_bitmap)) {
-                       printk(KERN_NOTICE "o2hb: node %d hb write hung for %ds on region %s (%s).\n",
+                       printk(KERN_NOTICE "o2hb: node %d hb write hung for %ds on region %s (%pg).\n",
                                o2nm_this_node(), O2HB_NEGO_TIMEOUT_MS/1000,
-                               config_item_name(®->hr_item), reg->hr_dev_name);
+                               config_item_name(®->hr_item), reg->hr_bdev);
                        set_bit(master_node, reg->hr_nego_node_bitmap);
                }
                if (memcmp(reg->hr_nego_node_bitmap, live_node_bitmap,
                        return;
                }
 
-               printk(KERN_NOTICE "o2hb: all nodes hb write hung, maybe region %s (%s) is down.\n",
-                       config_item_name(®->hr_item), reg->hr_dev_name);
+               printk(KERN_NOTICE "o2hb: all nodes hb write hung, maybe region %s (%pg) is down.\n",
+                       config_item_name(®->hr_item), reg->hr_bdev);
                /* approve negotiate timeout request. */
                o2hb_arm_timeout(reg);
 
                }
        } else {
                /* negotiate timeout with master node. */
-               printk(KERN_NOTICE "o2hb: node %d hb write hung for %ds on region %s (%s), negotiate timeout with node %d.\n",
+               printk(KERN_NOTICE "o2hb: node %d hb write hung for %ds on region %s (%pg), negotiate timeout with node %d.\n",
                        o2nm_this_node(), O2HB_NEGO_TIMEOUT_MS/1000, config_item_name(®->hr_item),
-                       reg->hr_dev_name, master_node);
+                       reg->hr_bdev, master_node);
                ret = o2hb_send_nego_msg(reg->hr_key, O2HB_NEGO_TIMEOUT_MSG,
                                master_node);
                if (ret)
        struct o2hb_nego_msg *nego_msg;
 
        nego_msg = (struct o2hb_nego_msg *)msg->buf;
-       printk(KERN_NOTICE "o2hb: receive negotiate timeout message from node %d on region %s (%s).\n",
-               nego_msg->node_num, config_item_name(®->hr_item), reg->hr_dev_name);
+       printk(KERN_NOTICE "o2hb: receive negotiate timeout message from node %d on region %s (%pg).\n",
+               nego_msg->node_num, config_item_name(®->hr_item), reg->hr_bdev);
        if (nego_msg->node_num < O2NM_MAX_NODES)
                set_bit(nego_msg->node_num, reg->hr_nego_node_bitmap);
        else
 {
        struct o2hb_region *reg = data;
 
-       printk(KERN_NOTICE "o2hb: negotiate timeout approved by master node on region %s (%s).\n",
-               config_item_name(®->hr_item), reg->hr_dev_name);
+       printk(KERN_NOTICE "o2hb: negotiate timeout approved by master node on region %s (%pg).\n",
+               config_item_name(®->hr_item), reg->hr_bdev);
        o2hb_arm_timeout(reg);
        return 0;
 }
        else
                errstr = ERRSTR3;
 
-       mlog(ML_ERROR, "%s (%s): expected(%u:0x%llx, 0x%llx), "
-            "ondisk(%u:0x%llx, 0x%llx)\n", errstr, reg->hr_dev_name,
+       mlog(ML_ERROR, "%s (%pg): expected(%u:0x%llx, 0x%llx), "
+            "ondisk(%u:0x%llx, 0x%llx)\n", errstr, reg->hr_bdev,
             slot->ds_node_num, (unsigned long long)slot->ds_last_generation,
             (unsigned long long)slot->ds_last_time, hb_block->hb_node,
             (unsigned long long)le64_to_cpu(hb_block->hb_generation),
                   sizeof(o2hb_live_node_bitmap)))
                goto unlock;
 
-       printk(KERN_NOTICE "o2hb: Region %s (%s) is now a quorum device\n",
-              config_item_name(®->hr_item), reg->hr_dev_name);
+       printk(KERN_NOTICE "o2hb: Region %s (%pg) is now a quorum device\n",
+              config_item_name(®->hr_item), reg->hr_bdev);
 
        set_bit(reg->hr_region_num, o2hb_quorum_region_bitmap);
 
                /* The node is live but pushed out a bad crc. We
                 * consider it a transient miss but don't populate any
                 * other values as they may be junk. */
-               mlog(ML_ERROR, "Node %d has written a bad crc to %s\n",
-                    slot->ds_node_num, reg->hr_dev_name);
+               mlog(ML_ERROR, "Node %d has written a bad crc to %pg\n",
+                    slot->ds_node_num, reg->hr_bdev);
                o2hb_dump_slot(hb_block);
 
                slot->ds_equal_samples++;
                slot_dead_ms = le32_to_cpu(hb_block->hb_dead_ms);
                if (slot_dead_ms && slot_dead_ms != dead_ms) {
                        /* TODO: Perhaps we can fail the region here. */
-                       mlog(ML_ERROR, "Node %d on device %s has a dead count "
+                       mlog(ML_ERROR, "Node %d on device %pg has a dead count "
                             "of %u ms, but our count is %u ms.\n"
                             "Please double check your configuration values "
                             "for 'O2CB_HEARTBEAT_THRESHOLD'\n",
-                            slot->ds_node_num, reg->hr_dev_name, slot_dead_ms,
+                            slot->ds_node_num, reg->hr_bdev, slot_dead_ms,
                             dead_ms);
                }
                goto out;
                /* Do not re-arm the write timeout on I/O error - we
                 * can't be sure that the new block ever made it to
                 * disk */
-               mlog(ML_ERROR, "Write error %d on device \"%s\"\n",
-                    write_wc.wc_error, reg->hr_dev_name);
+               mlog(ML_ERROR, "Write error %d on device \"%pg\"\n",
+                    write_wc.wc_error, reg->hr_bdev);
                ret = write_wc.wc_error;
                goto bail;
        }
        if (atomic_read(®->hr_steady_iterations) != 0) {
                if (atomic_dec_and_test(®->hr_unsteady_iterations)) {
                        printk(KERN_NOTICE "o2hb: Unable to stabilize "
-                              "heartbeat on region %s (%s)\n",
+                              "heartbeat on region %s (%pg)\n",
                               config_item_name(®->hr_item),
-                              reg->hr_dev_name);
+                              reg->hr_bdev);
                        atomic_set(®->hr_steady_iterations, 0);
                        reg->hr_aborted_start = 1;
                        wake_up(&o2hb_steady_queue);
        struct page *page;
        struct o2hb_region *reg = to_o2hb_region(item);
 
-       mlog(ML_HEARTBEAT, "hb region release (%s)\n", reg->hr_dev_name);
+       mlog(ML_HEARTBEAT, "hb region release (%pg)\n", reg->hr_bdev);
 
        kfree(reg->hr_tmp_block);
 
        unsigned int ret = 0;
 
        if (to_o2hb_region(item)->hr_bdev)
-               ret = sprintf(page, "%s\n", to_o2hb_region(item)->hr_dev_name);
+               ret = sprintf(page, "%pg\n", to_o2hb_region(item)->hr_bdev);
 
        return ret;
 }
                goto out2;
        }
 
-       bdevname(reg->hr_bdev, reg->hr_dev_name);
-
        sectsize = bdev_logical_block_size(reg->hr_bdev);
        if (sectsize != reg->hr_block_bytes) {
                mlog(ML_ERROR,
                ret = -EIO;
 
        if (hb_task && o2hb_global_heartbeat_active())
-               printk(KERN_NOTICE "o2hb: Heartbeat started on region %s (%s)\n",
-                      config_item_name(®->hr_item), reg->hr_dev_name);
+               printk(KERN_NOTICE "o2hb: Heartbeat started on region %s (%pg)\n",
+                      config_item_name(®->hr_item), reg->hr_bdev);
 
 out3:
        if (ret < 0) {
                        quorum_region = 1;
                clear_bit(reg->hr_region_num, o2hb_quorum_region_bitmap);
                spin_unlock(&o2hb_live_lock);
-               printk(KERN_NOTICE "o2hb: Heartbeat %s on region %s (%s)\n",
+               printk(KERN_NOTICE "o2hb: Heartbeat %s on region %s (%pg)\n",
                       ((atomic_read(®->hr_steady_iterations) == 0) ?
                        "stopped" : "start aborted"), config_item_name(item),
-                      reg->hr_dev_name);
+                      reg->hr_bdev);
        }
 
        /*