diff --git a/lib/masterd/instance.py b/lib/masterd/instance.py
index c9ed57814dc4718287e799049aab15eb37f822b4..f7c721a43ae8018ec152f9fc4b7f1c13709f59cd 100644
--- a/lib/masterd/instance.py
+++ b/lib/masterd/instance.py
@@ -92,12 +92,13 @@ class ImportExportCbBase(object):
   """Callbacks for disk import/export.
 
   """
-  def ReportListening(self, ie, private):
+  def ReportListening(self, ie, private, component):
     """Called when daemon started listening.
 
     @type ie: Subclass of L{_DiskImportExportBase}
     @param ie: Import/export object
     @param private: Private data passed to import/export object
+    @param component: transfer component name
 
     """
 
@@ -140,7 +141,7 @@ class _DiskImportExportBase(object):
   MODE_TEXT = None
 
   def __init__(self, lu, node_name, opts,
-               instance, timeouts, cbs, private=None):
+               instance, component, timeouts, cbs, private=None):
     """Initializes this class.
 
     @param lu: Logical unit instance
@@ -150,6 +151,8 @@ class _DiskImportExportBase(object):
     @param opts: Import/export daemon options
     @type instance: L{objects.Instance}
     @param instance: Instance object
+    @type component: string
+    @param component: which part of the instance is being imported
     @type timeouts: L{ImportExportTimeouts}
     @param timeouts: Timeouts for this import
     @type cbs: L{ImportExportCbBase}
@@ -163,6 +166,7 @@ class _DiskImportExportBase(object):
     self.node_name = node_name
     self._opts = opts.Copy()
     self._instance = instance
+    self._component = component
     self._timeouts = timeouts
     self._cbs = cbs
     self._private = private
@@ -485,7 +489,7 @@ class _DiskImportExportBase(object):
 class DiskImport(_DiskImportExportBase):
   MODE_TEXT = "import"
 
-  def __init__(self, lu, node_name, opts, instance,
+  def __init__(self, lu, node_name, opts, instance, component,
                dest, dest_args, timeouts, cbs, private=None):
     """Initializes this class.
 
@@ -496,6 +500,8 @@ class DiskImport(_DiskImportExportBase):
     @param opts: Import/export daemon options
     @type instance: L{objects.Instance}
     @param instance: Instance object
+    @type component: string
+    @param component: which part of the instance is being imported
     @param dest: I/O destination
     @param dest_args: I/O arguments
     @type timeouts: L{ImportExportTimeouts}
@@ -505,8 +511,8 @@ class DiskImport(_DiskImportExportBase):
     @param private: Private data for callback functions
 
     """
-    _DiskImportExportBase.__init__(self, lu, node_name, opts,
-                                   instance, timeouts, cbs, private)
+    _DiskImportExportBase.__init__(self, lu, node_name, opts, instance,
+                                   component, timeouts, cbs, private)
     self._dest = dest
     self._dest_args = dest_args
 
@@ -550,7 +556,7 @@ class DiskImport(_DiskImportExportBase):
       logging.debug("Import '%s' on %s is now listening on port %s",
                     self._daemon_name, self.node_name, port)
 
-      self._cbs.ReportListening(self, self._private)
+      self._cbs.ReportListening(self, self._private, self._component)
 
       return True
 
@@ -574,8 +580,8 @@ class DiskImport(_DiskImportExportBase):
 class DiskExport(_DiskImportExportBase):
   MODE_TEXT = "export"
 
-  def __init__(self, lu, node_name, opts,
-               dest_host, dest_port, instance, source, source_args,
+  def __init__(self, lu, node_name, opts, dest_host, dest_port,
+               instance, component, source, source_args,
                timeouts, cbs, private=None):
     """Initializes this class.
 
@@ -590,6 +596,8 @@ class DiskExport(_DiskImportExportBase):
     @param dest_port: Destination port number
     @type instance: L{objects.Instance}
     @param instance: Instance object
+    @type component: string
+    @param component: which part of the instance is being imported
     @param source: I/O source
     @param source_args: I/O source
     @type timeouts: L{ImportExportTimeouts}
@@ -599,8 +607,8 @@ class DiskExport(_DiskImportExportBase):
     @param private: Private data for callback functions
 
     """
-    _DiskImportExportBase.__init__(self, lu, node_name, opts,
-                                   instance, timeouts, cbs, private)
+    _DiskImportExportBase.__init__(self, lu, node_name, opts, instance,
+                                   component, timeouts, cbs, private)
     self._dest_host = dest_host
     self._dest_port = dest_port
     self._source = source
@@ -885,7 +893,7 @@ class _TransferInstSourceCb(_TransferInstCbBase):
 
 
 class _TransferInstDestCb(_TransferInstCbBase):
-  def ReportListening(self, ie, dtp):
+  def ReportListening(self, ie, dtp, component):
     """Called when daemon started listening.
 
     """
@@ -898,8 +906,8 @@ class _TransferInstDestCb(_TransferInstCbBase):
 
     # Start export on source node
     de = DiskExport(self.lu, self.src_node, dtp.export_opts,
-                    self.dest_ip, ie.listen_port,
-                    self.instance, dtp.data.src_io, dtp.data.src_ioargs,
+                    self.dest_ip, ie.listen_port, self.instance,
+                    component, dtp.data.src_io, dtp.data.src_ioargs,
                     self.timeouts, self.src_cbs, private=dtp)
     ie.loop.Add(de)
 
@@ -1049,7 +1057,7 @@ def TransferInstanceData(lu, feedback_fn, src_node, dest_node, dest_ip,
 
         dtp = _DiskTransferPrivate(transfer, True, opts)
 
-        di = DiskImport(lu, dest_node, opts, instance,
+        di = DiskImport(lu, dest_node, opts, instance, "disk%d" % idx,
                         transfer.dest_io, transfer.dest_ioargs,
                         timeouts, dest_cbs, private=dtp)
         ieloop.Add(di)
@@ -1286,7 +1294,7 @@ class ExportInstanceHelper:
         self._feedback_fn("Sending disk %s to %s:%s" % (idx, host, port))
         finished_fn = compat.partial(self._TransferFinished, idx)
         ieloop.Add(DiskExport(self._lu, instance.primary_node,
-                              opts, host, port, instance,
+                              opts, host, port, instance, "disk%d" % idx,
                               constants.IEIO_SCRIPT, (dev, idx),
                               timeouts, cbs, private=(idx, finished_fn)))
 
@@ -1372,7 +1380,7 @@ class _RemoteImportCb(ImportExportCbBase):
       "x509_ca": self._x509_cert_pem,
       })
 
-  def ReportListening(self, ie, private):
+  def ReportListening(self, ie, private, _):
     """Called when daemon started listening.
 
     """
@@ -1468,6 +1476,7 @@ def RemoteImport(lu, feedback_fn, instance, pnode, source_x509_ca,
                                            magic=magic, ipv6=ipv6)
 
         ieloop.Add(DiskImport(lu, instance.primary_node, opts, instance,
+                              "disk%d" % idx,
                               constants.IEIO_SCRIPT, (dev, idx),
                               timeouts, cbs, private=(idx, )))