From 7afe64265c9fc6ac67bfc412e43d00e5a21c867a Mon Sep 17 00:00:00 2001 From: Vojtech Trefny Date: Fri, 22 Mar 2024 14:54:15 +0100 Subject: [PATCH] lvm-dbus: Fix passing size for pvresize over DBus "u" is UINT32, we need to use "t" for UINT64 --- src/plugins/lvm-dbus.c | 2 +- tests/lvm_dbus_tests.py | 6 ++++++ tests/lvm_test.py | 6 ++++++ 3 files changed, 13 insertions(+), 1 deletion(-) diff --git a/src/plugins/lvm-dbus.c b/src/plugins/lvm-dbus.c index 5ecf47f6..ff9eb24b 100644 --- a/src/plugins/lvm-dbus.c +++ b/src/plugins/lvm-dbus.c @@ -1776,7 +1776,7 @@ gboolean bd_lvm_pvresize (const gchar *device, guint64 size, const BDExtraArg ** if (!obj_path) return FALSE; - params = g_variant_new ("(u)", size); + params = g_variant_new ("(t)", size); return call_lvm_method_sync (obj_path, PV_INTF, "ReSize", params, NULL, extra, TRUE, error); } diff --git a/tests/lvm_dbus_tests.py b/tests/lvm_dbus_tests.py index 013a29c3..c179a82c 100644 --- a/tests/lvm_dbus_tests.py +++ b/tests/lvm_dbus_tests.py @@ -431,9 +431,15 @@ def test_pvresize(self): succ = BlockDev.lvm_pvresize(self.loop_dev, 200 * 1024**2, None) self.assertTrue(succ) + info = BlockDev.lvm_pvinfo(self.loop_dev) + self.assertEqual(info.pv_size, 200 * 1024**2) + succ = BlockDev.lvm_pvresize(self.loop_dev, 200 * 1024**3, None) self.assertTrue(succ) + info = BlockDev.lvm_pvinfo(self.loop_dev) + self.assertEqual(info.pv_size, 200 * 1024**3) + @unittest.skipUnless(lvm_dbus_running, "LVM DBus not running") class LvmTestPVscan(LvmPVonlyTestCase): def test_pvscan(self): diff --git a/tests/lvm_test.py b/tests/lvm_test.py index e7800d8f..261615e9 100644 --- a/tests/lvm_test.py +++ b/tests/lvm_test.py @@ -434,9 +434,15 @@ def test_pvresize(self): succ = BlockDev.lvm_pvresize(self.loop_dev, 200 * 1024**2, None) self.assertTrue(succ) + info = BlockDev.lvm_pvinfo(self.loop_dev) + self.assertEqual(info.pv_size, 200 * 1024**2) + succ = BlockDev.lvm_pvresize(self.loop_dev, 200 * 1024**3, None) self.assertTrue(succ) + info = BlockDev.lvm_pvinfo(self.loop_dev) + self.assertEqual(info.pv_size, 200 * 1024**3) + class LvmTestPVscan(LvmPVonlyTestCase): def test_pvscan(self): """Verify that pvscan runs without issues with cache or without"""