diff --git a/lib/cmdlib.py b/lib/cmdlib.py
index d86316b690879643d8153a809ecf1d5b42847f3b..bc5a70f8c200b94f43aaed0b6be282bb3227a83b 100644
--- a/lib/cmdlib.py
+++ b/lib/cmdlib.py
@@ -6510,7 +6510,7 @@ def _ShutdownInstanceDisks(lu, instance, disks=None, ignore_primary=False):
   for disk in disks:
     for node, top_disk in disk.ComputeNodeTree(instance.primary_node):
       lu.cfg.SetDiskID(top_disk, node)
-      result = lu.rpc.call_blockdev_shutdown(node, top_disk)
+      result = lu.rpc.call_blockdev_shutdown(node, (top_disk, instance))
       msg = result.fail_msg
       if msg:
         lu.LogWarning("Could not shutdown block device %s on node %s: %s",
@@ -8494,7 +8494,7 @@ class TLMigrateInstance(Tasklet):
       disks = _ExpandCheckDisks(instance, instance.disks)
       self.feedback_fn("* unmapping instance's disks from %s" % source_node)
       for disk in disks:
-        result = self.rpc.call_blockdev_shutdown(source_node, disk)
+        result = self.rpc.call_blockdev_shutdown(source_node, (disk, instance))
         msg = result.fail_msg
         if msg:
           logging.error("Migration was successful, but couldn't unmap the"
@@ -11161,7 +11161,8 @@ class TLReplaceDisks(Tasklet):
     for idx, dev in enumerate(self.instance.disks):
       self.lu.LogInfo("Shutting down drbd for disk/%d on old node" % idx)
       self.cfg.SetDiskID(dev, self.target_node)
-      msg = self.rpc.call_blockdev_shutdown(self.target_node, dev).fail_msg
+      msg = self.rpc.call_blockdev_shutdown(self.target_node,
+                                            (dev, self.instance)).fail_msg
       if msg:
         self.lu.LogWarning("Failed to shutdown drbd for disk/%d on old"
                            "node: %s" % (idx, msg),
diff --git a/lib/rpc_defs.py b/lib/rpc_defs.py
index 6265ba8593b151591183a901125291dfb7ce232b..631715ebb5d124932afc4d00b69665d8380f5598 100644
--- a/lib/rpc_defs.py
+++ b/lib/rpc_defs.py
@@ -355,7 +355,7 @@ _BLOCKDEV_CALLS = [
     ("idx", None, None),
     ], None, None, "Request assembling of a given block device"),
   ("blockdev_shutdown", SINGLE, None, TMO_NORMAL, [
-    ("disk", ED_OBJECT_DICT, None),
+    ("disk", ED_SINGLE_DISK_DICT_DP, None),
     ], None, None, "Request shutdown of a given block device"),
   ("blockdev_addchildren", SINGLE, None, TMO_NORMAL, [
     ("bdev", ED_SINGLE_DISK_DICT_DP, None),