mirror of
git://sourceware.org/git/lvm2.git
synced 2025-10-29 16:23:49 +03:00
move pv header repairs to vg_write
Correct PV header in-use or version fields from vg_write instead of vg_read.
This commit is contained in:
@@ -1600,12 +1600,16 @@ static int _text_pv_needs_rewrite(const struct format_type *fmt, struct physical
|
||||
{
|
||||
struct lvmcache_info *info;
|
||||
uint32_t ext_vsn;
|
||||
uint32_t ext_flags;
|
||||
|
||||
*needs_rewrite = 0;
|
||||
|
||||
if (!pv->is_labelled)
|
||||
return 1;
|
||||
|
||||
if (!pv->dev)
|
||||
return 1;
|
||||
|
||||
if (!(info = lvmcache_info_from_pvid((const char *)&pv->id, pv->dev, 0))) {
|
||||
log_error("Failed to find cached info for PV %s.", pv_dev_name(pv));
|
||||
return 0;
|
||||
@@ -1613,8 +1617,16 @@ static int _text_pv_needs_rewrite(const struct format_type *fmt, struct physical
|
||||
|
||||
ext_vsn = lvmcache_ext_version(info);
|
||||
|
||||
if (ext_vsn < PV_HEADER_EXTENSION_VSN)
|
||||
if (ext_vsn < PV_HEADER_EXTENSION_VSN) {
|
||||
log_debug("PV %s header needs rewrite for new ext version", dev_name(pv->dev));
|
||||
*needs_rewrite = 1;
|
||||
}
|
||||
|
||||
ext_flags = lvmcache_ext_flags(info);
|
||||
if (!(ext_flags & PV_EXT_USED)) {
|
||||
log_debug("PV %s header needs rewrite to set ext used", dev_name(pv->dev));
|
||||
*needs_rewrite = 1;
|
||||
}
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user