diff --git a/daemons/ganeti-noded b/daemons/ganeti-noded
index 86952c6b57b4a3385a8033ceedc06be9c6bb3929..c58df30251e5e183c0aa09511a6551abb22615c8 100755
--- a/daemons/ganeti-noded
+++ b/daemons/ganeti-noded
@@ -229,8 +229,8 @@ class NodeHttpServer(http.server.HttpServer):
     """Closes the given block devices.
 
     """
-    disks = [objects.Disk.FromDict(cf) for cf in params]
-    return backend.CloseBlockDevices(disks)
+    disks = [objects.Disk.FromDict(cf) for cf in params[1]]
+    return backend.CloseBlockDevices(params[0], disks)
 
   # export/import  --------------------------
 
diff --git a/lib/backend.py b/lib/backend.py
index 45434dcafbb0f115b475cecf9d983eb03b169aff..fb030f583723f886e2bef6290ca42b1310df091c 100644
--- a/lib/backend.py
+++ b/lib/backend.py
@@ -2073,12 +2073,14 @@ def JobQueueSetDrainFlag(drain_flag):
   return True
 
 
-def CloseBlockDevices(disks):
+def CloseBlockDevices(instance_name, disks):
   """Closes the given block devices.
 
   This means they will be switched to secondary mode (in case of
   DRBD).
 
+  @param instance_name: if the argument is not empty, the symlinks
+      of this instance will be removed
   @type disks: list of L{objects.Disk}
   @param disks: the list of disks to be closed
   @rtype: tuple (success, message)
@@ -2104,6 +2106,8 @@ def CloseBlockDevices(disks):
   if msg:
     return (False, "Can't make devices secondary: %s" % ",".join(msg))
   else:
+    if instance_name:
+      _RemoveBlockDevLinks(instance_name)
     return (True, "All devices secondary")
 
 
diff --git a/lib/rpc.py b/lib/rpc.py
index a9619f9ad133cb5860b7c5b33c74b8197fae03de..bf16b523454ec2109b6418d2e8f44a9b7b4cd9fc 100644
--- a/lib/rpc.py
+++ b/lib/rpc.py
@@ -683,14 +683,14 @@ class RpcRunner(object):
     """
     return self._SingleNodeCall(node, "blockdev_find", [disk.ToDict()])
 
-  def call_blockdev_close(self, node, disks):
+  def call_blockdev_close(self, node, instance_name, disks):
     """Closes the given block devices.
 
     This is a single-node call.
 
     """
-    return self._SingleNodeCall(node, "blockdev_close",
-                                [cf.ToDict() for cf in disks])
+    params = [instance_name, [cf.ToDict() for cf in disks]]
+    return self._SingleNodeCall(node, "blockdev_close", params)
 
   @classmethod
   def call_upload_file(cls, node_list, file_name, address_list=None):