libblockdev/0003-Fix-passing-size-for-pvresize-over-DBus.patch
Vojtech Trefny 762751ddd7 Bugfix update for C10S
- Fix passing size for pvresize over DBus
  Resolves: RHEL-45872
- Upstream kernel VDO support
  Resolves: RHEL-31953
2024-07-23 14:59:49 +02:00

66 lines
2.4 KiB
Diff

From 7afe64265c9fc6ac67bfc412e43d00e5a21c867a Mon Sep 17 00:00:00 2001
From: Vojtech Trefny <vtrefny@redhat.com>
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"""