diff --git a/lib/cmdlib.py b/lib/cmdlib.py
index 5f6c7afcf302279558f05da27da739e407c29ecb..0029885b09f204eab01f63af4c2acea308bd7939 100644
--- a/lib/cmdlib.py
+++ b/lib/cmdlib.py
@@ -1611,7 +1611,8 @@ def _FindFaultyInstanceDisks(cfg, rpc_runner, instance, node_name, prereq):
   for dev in instance.disks:
     cfg.SetDiskID(dev, node_name)
 
-  result = rpc_runner.call_blockdev_getmirrorstatus(node_name, instance.disks)
+  result = rpc_runner.call_blockdev_getmirrorstatus(node_name, (instance.disks,
+                                                                instance))
   result.Raise("Failed to get disk status from node %s" % node_name,
                prereq=prereq, ecode=errors.ECODE_ENVIRON)
 
@@ -4475,7 +4476,7 @@ def _WaitForSync(lu, instance, disks=None, oneshot=False):
     max_time = 0
     done = True
     cumul_degraded = False
-    rstats = lu.rpc.call_blockdev_getmirrorstatus(node, disks)
+    rstats = lu.rpc.call_blockdev_getmirrorstatus(node, (disks, instance))
     msg = rstats.fail_msg
     if msg:
       lu.LogWarning("Can't get any data from node %s: %s", node, msg)
diff --git a/lib/rpc_defs.py b/lib/rpc_defs.py
index 35c5a490c149644ddcd66ecd9cdf3e8e3efe67f1..6265ba8593b151591183a901125291dfb7ce232b 100644
--- a/lib/rpc_defs.py
+++ b/lib/rpc_defs.py
@@ -411,7 +411,7 @@ _BLOCKDEV_CALLS = [
     ], None, _BlockdevFindPostProc,
     "Request identification of a given block device"),
   ("blockdev_getmirrorstatus", SINGLE, None, TMO_NORMAL, [
-    ("disks", ED_OBJECT_DICT_LIST, None),
+    ("disks", ED_DISKS_DICT_DP, None),
     ], None, _BlockdevGetMirrorStatusPostProc,
     "Request status of a (mirroring) device"),
   ("blockdev_getmirrorstatus_multi", MULTI, None, TMO_NORMAL, [