diff --git a/os_brick/initiator/linuxscsi.py b/os_brick/initiator/linuxscsi.py index bc6a654f3..99ad6e493 100644 --- a/os_brick/initiator/linuxscsi.py +++ b/os_brick/initiator/linuxscsi.py @@ -119,11 +119,11 @@ class LinuxSCSI(executor.Executor): LOG.debug("remove multipath device %s", device) mpath_dev = self.find_multipath_device(device) if mpath_dev: + self.flush_multipath_device(mpath_dev['id']) devices = mpath_dev['devices'] LOG.debug("multipath LUNs to remove %s", devices) for device in devices: self.remove_scsi_device(device['device']) - self.flush_multipath_device(mpath_dev['id']) def flush_device_io(self, device): """This is used to flush any remaining IO in the buffers.""" diff --git a/os_brick/tests/initiator/test_linuxscsi.py b/os_brick/tests/initiator/test_linuxscsi.py index 52d97f964..76c0fb5c9 100644 --- a/os_brick/tests/initiator/test_linuxscsi.py +++ b/os_brick/tests/initiator/test_linuxscsi.py @@ -164,11 +164,11 @@ class LinuxSCSITestCase(base.TestCase): self.linuxscsi.remove_multipath_device('/dev/dm-3') expected_commands = [ + ('multipath -f 350002ac20398383d'), ('blockdev --flushbufs /dev/sde'), ('tee -a /sys/block/sde/device/delete'), ('blockdev --flushbufs /dev/sdf'), - ('tee -a /sys/block/sdf/device/delete'), - ('multipath -f 350002ac20398383d'), ] + ('tee -a /sys/block/sdf/device/delete'), ] self.assertEqual(expected_commands, self.cmds) def test_find_multipath_device_3par_ufn(self):