put_disk(vblk->disk);
 }
 
-#ifdef CONFIG_PM_SLEEP
-static int virtblk_freeze(struct virtio_device *vdev)
+static int virtblk_freeze_priv(struct virtio_device *vdev)
 {
        struct virtio_blk *vblk = vdev->priv;
        struct request_queue *q = vblk->disk->queue;
        return 0;
 }
 
-static int virtblk_restore(struct virtio_device *vdev)
+static int virtblk_restore_priv(struct virtio_device *vdev)
 {
        struct virtio_blk *vblk = vdev->priv;
        int ret;
 
        return 0;
 }
+
+#ifdef CONFIG_PM_SLEEP
+static int virtblk_freeze(struct virtio_device *vdev)
+{
+       return virtblk_freeze_priv(vdev);
+}
+
+static int virtblk_restore(struct virtio_device *vdev)
+{
+       return virtblk_restore_priv(vdev);
+}
 #endif
 
+static int virtblk_reset_prepare(struct virtio_device *vdev)
+{
+       return virtblk_freeze_priv(vdev);
+}
+
+static int virtblk_reset_done(struct virtio_device *vdev)
+{
+       return virtblk_restore_priv(vdev);
+}
+
 static const struct virtio_device_id id_table[] = {
        { VIRTIO_ID_BLOCK, VIRTIO_DEV_ANY_ID },
        { 0 },
        .freeze                         = virtblk_freeze,
        .restore                        = virtblk_restore,
 #endif
+       .reset_prepare                  = virtblk_reset_prepare,
+       .reset_done                     = virtblk_reset_done,
 };
 
 static int __init virtio_blk_init(void)