Update lvm2 from LVM2.2.03.12 to LVM2.2.03.15 (latest version) OBS-URL: https://build.opensuse.org/request/show/958732 OBS-URL: https://build.opensuse.org/package/show/Base:System/lvm2?expand=0&rev=305
56 lines
1.8 KiB
Diff
56 lines
1.8 KiB
Diff
From d4a0816a5824dc375d662e76823ee8ed77bb9983 Mon Sep 17 00:00:00 2001
|
|
From: Zdenek Kabelac <zkabelac@redhat.com>
|
|
Date: Wed, 16 Feb 2022 00:33:32 +0100
|
|
Subject: dev_manager: use list info for preset devs
|
|
|
|
In some cases we can also use cached info obtained from DM_DEVICE_LIST
|
|
also to avoid extra ioctl check for present devices.
|
|
---
|
|
lib/activate/dev_manager.c | 22 ++++++++++++++--------
|
|
1 file changed, 14 insertions(+), 8 deletions(-)
|
|
|
|
diff --git a/lib/activate/dev_manager.c b/lib/activate/dev_manager.c
|
|
index feea06a47e53..63bfd9b74b90 100644
|
|
--- a/lib/activate/dev_manager.c
|
|
+++ b/lib/activate/dev_manager.c
|
|
@@ -2254,6 +2254,7 @@ static int _add_dev_to_dtree(struct dev_manager *dm, struct dm_tree *dtree,
|
|
{
|
|
char *dlid, *name;
|
|
struct dm_info info, info2;
|
|
+ const struct dm_active_device *dev;
|
|
|
|
if (!(name = dm_build_dm_name(dm->mem, lv->vg->name, lv->name, layer)))
|
|
return_0;
|
|
@@ -2262,15 +2263,20 @@ static int _add_dev_to_dtree(struct dev_manager *dm, struct dm_tree *dtree,
|
|
return_0;
|
|
|
|
if (!dm->cmd->disable_dm_devs &&
|
|
- dm->cmd->cache_dm_devs &&
|
|
- !dm_device_list_find_by_uuid(dm->cmd->cache_dm_devs, dlid, NULL)) {
|
|
- log_debug("Cached as not present %s.", name);
|
|
- return 1;
|
|
- }
|
|
-
|
|
- if (!_info(dm->cmd, name, dlid, 0, 0, 0, &info, NULL, NULL))
|
|
+ dm->cmd->cache_dm_devs) {
|
|
+ if (!dm_device_list_find_by_uuid(dm->cmd->cache_dm_devs, dlid, &dev)) {
|
|
+ log_debug("Cached as not present %s.", name);
|
|
+ return 1;
|
|
+ }
|
|
+ info = (struct dm_info) {
|
|
+ .exists = 1,
|
|
+ .major = dev->major,
|
|
+ .minor = dev->minor,
|
|
+ };
|
|
+ log_debug("Cached as present %s %s (%d:%d).",
|
|
+ name, dlid, info.major, info.minor);
|
|
+ } else if (!_info(dm->cmd, name, dlid, 0, 0, 0, &info, NULL, NULL))
|
|
return_0;
|
|
-
|
|
/*
|
|
* For top level volumes verify that existing device match
|
|
* requested major/minor and that major/minor pair is available for use
|
|
--
|
|
2.34.1
|
|
|