diff --git a/doc/source/cli/command-objects/volume.rst b/doc/source/cli/command-objects/volume.rst
index 8df48d462c..5c86d10deb 100644
--- a/doc/source/cli/command-objects/volume.rst
+++ b/doc/source/cli/command-objects/volume.rst
@@ -222,7 +222,7 @@ Migrate volume to a new host
     openstack volume migrate
         --host <host>
         [--force-host-copy]
-        [--lock-volume | --unlock-volume]
+        [--lock-volume]
         <volume>
 
 .. option:: --host <host>
@@ -241,13 +241,6 @@ Migrate volume to a new host
 
     *Volume version 2 only*
 
-.. option:: --unlock-volume
-
-    If specified, the volume state will not be locked and the a
-    migration can be aborted (default) (possibly by another operation)
-
-    *Volume version 2 only*
-
 .. _volume_migrate-volume:
 .. describe:: <volume>
 
diff --git a/openstackclient/tests/unit/volume/v2/test_volume.py b/openstackclient/tests/unit/volume/v2/test_volume.py
index 183fb2280f..1f53ce9471 100644
--- a/openstackclient/tests/unit/volume/v2/test_volume.py
+++ b/openstackclient/tests/unit/volume/v2/test_volume.py
@@ -1188,7 +1188,6 @@ class TestVolumeMigrate(TestVolume):
         verifylist = [
             ("force_host_copy", False),
             ("lock_volume", False),
-            ("unlock_volume", False),
             ("host", "host@backend-name#pool"),
             ("volume", self._volume.id),
         ]
@@ -1210,7 +1209,6 @@ class TestVolumeMigrate(TestVolume):
         verifylist = [
             ("force_host_copy", True),
             ("lock_volume", True),
-            ("unlock_volume", False),
             ("host", "host@backend-name#pool"),
             ("volume", self._volume.id),
         ]
@@ -1222,27 +1220,6 @@ class TestVolumeMigrate(TestVolume):
             self._volume.id, "host@backend-name#pool", True, True)
         self.assertIsNone(result)
 
-    def test_volume_migrate_with_unlock_volume(self):
-        arglist = [
-            "--unlock-volume",
-            "--host", "host@backend-name#pool",
-            self._volume.id,
-        ]
-        verifylist = [
-            ("force_host_copy", False),
-            ("lock_volume", False),
-            ("unlock_volume", True),
-            ("host", "host@backend-name#pool"),
-            ("volume", self._volume.id),
-        ]
-        parsed_args = self.check_parser(self.cmd, arglist, verifylist)
-
-        result = self.cmd.take_action(parsed_args)
-        self.volumes_mock.get.assert_called_once_with(self._volume.id)
-        self.volumes_mock.migrate_volume.assert_called_once_with(
-            self._volume.id, "host@backend-name#pool", False, False)
-        self.assertIsNone(result)
-
     def test_volume_migrate_without_host(self):
         arglist = [
             self._volume.id,
@@ -1250,7 +1227,6 @@ class TestVolumeMigrate(TestVolume):
         verifylist = [
             ("force_host_copy", False),
             ("lock_volume", False),
-            ("unlock_volume", False),
             ("volume", self._volume.id),
         ]
 
diff --git a/openstackclient/volume/v2/volume.py b/openstackclient/volume/v2/volume.py
index 7a5c207af9..14a454c228 100644
--- a/openstackclient/volume/v2/volume.py
+++ b/openstackclient/volume/v2/volume.py
@@ -480,21 +480,13 @@ class MigrateVolume(command.Command):
             help=_("Enable generic host-based force-migration, "
                    "which bypasses driver optimizations")
         )
-        lock_group = parser.add_mutually_exclusive_group()
-        lock_group.add_argument(
+        parser.add_argument(
             '--lock-volume',
             action="store_true",
             help=_("If specified, the volume state will be locked "
                    "and will not allow a migration to be aborted "
                    "(possibly by another operation)")
         )
-        lock_group.add_argument(
-            '--unlock-volume',
-            action="store_true",
-            help=_("If specified, the volume state will not be "
-                   "locked and the a migration can be aborted "
-                   "(default) (possibly by another operation)")
-        )
         return parser
 
     def take_action(self, parsed_args):
diff --git a/releasenotes/notes/unlock-volume-a6990fc3bf1f5f67.yaml b/releasenotes/notes/unlock-volume-a6990fc3bf1f5f67.yaml
new file mode 100644
index 0000000000..60124bf890
--- /dev/null
+++ b/releasenotes/notes/unlock-volume-a6990fc3bf1f5f67.yaml
@@ -0,0 +1,5 @@
+---
+upgrade:
+  - |
+    The ``volume migrate --unlock`` argument did not actually do anything and
+    has now been removed.