[prev in list] [next in list] [prev in thread] [next in thread]
List: lvm2-commits
Subject: =?utf-8?q?=5Blvm2-commits=5D?= stable-2.02 - pvscan: use orphans lock to fix parallel pvscan and vgc
From: David Teigland <teigland () sourceware ! org>
Date: 2021-08-20 14:42:52
Message-ID: 20210820144252.200B23846070 () sourceware ! org
[Download RAW message or body]
Gitweb: https://sourceware.org/git/?p=lvm2.git;a=commitdiff;h=90597a4b6e4fc471a8f14cf5ca30f54387a80f3d
Commit: 90597a4b6e4fc471a8f14cf5ca30f54387a80f3d
Parent: 1afa67f4b9bdeb1e0da1cda17695d0aa58f7c3e3
Author: Wu Guanghao <wuguanghao3@huawei.com>
AuthorDate: Thu Aug 19 09:30:08 2021 -0500
Committer: David Teigland <teigland@redhat.com>
CommitterDate: Fri Aug 20 09:42:37 2021 -0500
pvscan: use orphans lock to fix parallel pvscan and vgcreate
start pvscan --cache /dev/sdb
(read metadata from disk, no vg info)
pvcreate /dev/sdb
vgcreate vg /dev/sdb
(write vg information to metadata, and update lvmetad)
finish pvscan --cache /dev/sdb
(No vg information in metadata from disk, overwrite lvmetad)
vgs
couldn't find vg
Signed-off-by: Wu Guanghao <wuguanghao3@huawei.com>
---
tools/pvscan.c | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/tools/pvscan.c b/tools/pvscan.c
index 2e7a864de..51b5daa9a 100644
--- a/tools/pvscan.c
+++ b/tools/pvscan.c
@@ -491,6 +491,11 @@ static int _pvscan_cache(struct cmd_context *cmd, int argc, char **argv)
return ECMD_FAILED;
}
+ if (!lock_vol(cmd, VG_ORPHANS, LCK_VG_READ, NULL)) {
+ log_error("Can't get lock for orphan PVs.");
+ return ECMD_FAILED;
+ }
+
/*
* This a special case where use_lvmetad=1 in lvm.conf but pvscan
* cannot use lvmetad for some reason. In this case pvscan should
@@ -780,6 +785,7 @@ out:
if (!sync_local_dev_names(cmd))
stack;
+ unlock_vg(cmd, NULL, VG_ORPHANS);
unlock_vg(cmd, NULL, VG_GLOBAL);
return ret;
}
_______________________________________________
lvm2-commits mailing list -- lvm2-commits@lists.fedorahosted.org
To unsubscribe send an email to lvm2-commits-leave@lists.fedorahosted.org
Fedora Code of Conduct: https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: https://lists.fedorahosted.org/archives/list/lvm2-commits@lists.fedorahosted.org
Do not reply to spam on the list, report it: https://pagure.io/fedora-infrastructure
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic