diff --git a/openstackclient/common/quota.py b/openstackclient/common/quota.py
index 65367e03cc..e092fefff5 100644
--- a/openstackclient/common/quota.py
+++ b/openstackclient/common/quota.py
@@ -105,8 +105,7 @@ class SetQuota(command.Command):
 
         volume_kwargs = {}
         for k, v in VOLUME_QUOTAS.items():
-            # TODO(jiaxi): Should use k or v needs discuss
-            value = getattr(parsed_args, v, None)
+            value = getattr(parsed_args, k, None)
             if value is not None:
                 if parsed_args.volume_type:
                     k = k + '_%s' % parsed_args.volume_type
diff --git a/openstackclient/tests/common/test_quota.py b/openstackclient/tests/common/test_quota.py
index f0013e4863..b6ad1566c2 100644
--- a/openstackclient/tests/common/test_quota.py
+++ b/openstackclient/tests/common/test_quota.py
@@ -12,6 +12,8 @@
 
 import copy
 
+import mock
+
 from openstackclient.common import quota
 from openstackclient.tests.compute.v2 import fakes as compute_fakes
 from openstackclient.tests import fakes
@@ -38,6 +40,11 @@ class TestQuota(compute_fakes.TestComputev2):
         super(TestQuota, self).setUp()
         self.quotas_mock = self.app.client_manager.compute.quotas
         self.quotas_mock.reset_mock()
+        volume_mock = mock.Mock()
+        volume_mock.quotas = mock.Mock()
+        self.app.client_manager.volume = volume_mock
+        self.volume_quotas_mock = volume_mock.quotas
+        self.volume_quotas_mock.reset_mock()
 
 
 class TestQuotaSet(TestQuota):
@@ -57,6 +64,18 @@ class TestQuotaSet(TestQuota):
             loaded=True,
         )
 
+        self.volume_quotas_mock.find.return_value = FakeQuotaResource(
+            None,
+            copy.deepcopy(compute_fakes.QUOTA),
+            loaded=True,
+        )
+
+        self.volume_quotas_mock.update.return_value = FakeQuotaResource(
+            None,
+            copy.deepcopy(compute_fakes.QUOTA),
+            loaded=True,
+        )
+
         self.cmd = quota.SetQuota(self.app, None)
 
     def test_quota_set(self):
@@ -87,3 +106,29 @@ class TestQuotaSet(TestQuota):
         }
 
         self.quotas_mock.update.assert_called_with('project_test', **kwargs)
+
+    def test_quota_set_volume(self):
+        arglist = [
+            '--gigabytes', str(compute_fakes.floating_ip_num),
+            '--snapshots', str(compute_fakes.fix_ip_num),
+            '--volumes', str(compute_fakes.injected_file_num),
+            compute_fakes.project_name,
+        ]
+        verifylist = [
+            ('gigabytes', compute_fakes.floating_ip_num),
+            ('snapshots', compute_fakes.fix_ip_num),
+            ('volumes', compute_fakes.injected_file_num),
+        ]
+
+        parsed_args = self.check_parser(self.cmd, arglist, verifylist)
+
+        self.cmd.take_action(parsed_args)
+
+        kwargs = {
+            'gigabytes': compute_fakes.floating_ip_num,
+            'snapshots': compute_fakes.fix_ip_num,
+            'volumes': compute_fakes.injected_file_num,
+        }
+
+        self.volume_quotas_mock.update.assert_called_with('project_test',
+                                                          **kwargs)