mirror of
git://sourceware.org/git/lvm2.git
synced 2025-03-08 08:58:50 +03:00
Use lvmcache_update_vgname_and_id throughout.
This commit is contained in:
parent
cced28dac3
commit
f9c232c2ee
32
lib/cache/lvmcache.c
vendored
32
lib/cache/lvmcache.c
vendored
@ -348,7 +348,7 @@ static int _lvmcache_update_pvid(struct lvmcache_info *info, const char *pvid)
|
|||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
int lvmcache_update_vgid(struct lvmcache_info *info, const char *vgid)
|
static int _lvmcache_update_vgid(struct lvmcache_info *info, const char *vgid)
|
||||||
{
|
{
|
||||||
if (!vgid || !info->vginfo || !strncmp(info->vginfo->vgid, vgid,
|
if (!vgid || !info->vginfo || !strncmp(info->vginfo->vgid, vgid,
|
||||||
sizeof(info->vginfo->vgid)))
|
sizeof(info->vginfo->vgid)))
|
||||||
@ -375,7 +375,8 @@ int lvmcache_update_vgid(struct lvmcache_info *info, const char *vgid)
|
|||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
int lvmcache_update_vgname(struct lvmcache_info *info, const char *vgname)
|
static int _lvmcache_update_vgname(struct lvmcache_info *info,
|
||||||
|
const char *vgname)
|
||||||
{
|
{
|
||||||
struct lvmcache_vginfo *vginfo;
|
struct lvmcache_vginfo *vginfo;
|
||||||
|
|
||||||
@ -434,25 +435,30 @@ int lvmcache_update_vgname(struct lvmcache_info *info, const char *vgname)
|
|||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int lvmcache_update_vgname_and_id(struct lvmcache_info *info, const char *vgname, const char *vgid)
|
||||||
|
{
|
||||||
|
if (!_lvmcache_update_vgname(info, vgname) ||
|
||||||
|
!_lvmcache_update_vgid(info, vgid))
|
||||||
|
return_0;
|
||||||
|
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
int lvmcache_update_vg(struct volume_group *vg)
|
int lvmcache_update_vg(struct volume_group *vg)
|
||||||
{
|
{
|
||||||
struct pv_list *pvl;
|
struct pv_list *pvl;
|
||||||
struct lvmcache_info *info;
|
struct lvmcache_info *info;
|
||||||
char pvid_s[ID_LEN + 1];
|
char pvid_s[ID_LEN + 1];
|
||||||
int vgid_updated = 0;
|
|
||||||
|
|
||||||
pvid_s[sizeof(pvid_s) - 1] = '\0';
|
pvid_s[sizeof(pvid_s) - 1] = '\0';
|
||||||
|
|
||||||
list_iterate_items(pvl, &vg->pvs) {
|
list_iterate_items(pvl, &vg->pvs) {
|
||||||
strncpy(pvid_s, (char *) &pvl->pv->id, sizeof(pvid_s) - 1);
|
strncpy(pvid_s, (char *) &pvl->pv->id, sizeof(pvid_s) - 1);
|
||||||
/* FIXME Could pvl->pv->dev->pvid ever be different? */
|
/* FIXME Could pvl->pv->dev->pvid ever be different? */
|
||||||
if ((info = info_from_pvid(pvid_s))) {
|
if ((info = info_from_pvid(pvid_s)) &&
|
||||||
lvmcache_update_vgname(info, vg->name);
|
!lvmcache_update_vgname_and_id(info, vg->name,
|
||||||
if (!vgid_updated) {
|
(char *) &vg->id))
|
||||||
lvmcache_update_vgid(info, (char *) &vg->id);
|
return_0;
|
||||||
vgid_updated = 1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return 1;
|
return 1;
|
||||||
@ -556,7 +562,7 @@ struct lvmcache_info *lvmcache_add(struct labeller *labeller, const char *pvid,
|
|||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!lvmcache_update_vgname(info, vgname)) {
|
if (!lvmcache_update_vgname_and_id(info, vgname, vgid)) {
|
||||||
if (!existing) {
|
if (!existing) {
|
||||||
dm_hash_remove(_pvid_hash, pvid_s);
|
dm_hash_remove(_pvid_hash, pvid_s);
|
||||||
strcpy(info->dev->pvid, "");
|
strcpy(info->dev->pvid, "");
|
||||||
@ -566,10 +572,6 @@ struct lvmcache_info *lvmcache_add(struct labeller *labeller, const char *pvid,
|
|||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!lvmcache_update_vgid(info, vgid))
|
|
||||||
/* Non-critical */
|
|
||||||
stack;
|
|
||||||
|
|
||||||
return info;
|
return info;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
3
lib/cache/lvmcache.h
vendored
3
lib/cache/lvmcache.h
vendored
@ -68,8 +68,7 @@ struct lvmcache_info *lvmcache_add(struct labeller *labeller, const char *pvid,
|
|||||||
void lvmcache_del(struct lvmcache_info *info);
|
void lvmcache_del(struct lvmcache_info *info);
|
||||||
|
|
||||||
/* Update things */
|
/* Update things */
|
||||||
int lvmcache_update_vgname(struct lvmcache_info *info, const char *vgname);
|
int lvmcache_update_vgname_and_id(struct lvmcache_info *info, const char *vgname, const char *vgid);
|
||||||
int lvmcache_update_vgid(struct lvmcache_info *info, const char *vgid);
|
|
||||||
int lvmcache_update_vg(struct volume_group *vg);
|
int lvmcache_update_vg(struct volume_group *vg);
|
||||||
|
|
||||||
void lvmcache_lock_vgname(const char *vgname, int read_only);
|
void lvmcache_lock_vgname(const char *vgname, int read_only);
|
||||||
|
@ -219,7 +219,7 @@ static struct raw_locn *_find_vg_rlocn(struct device_area *dev_area,
|
|||||||
|
|
||||||
error:
|
error:
|
||||||
if ((info = info_from_pvid(dev_area->dev->pvid)))
|
if ((info = info_from_pvid(dev_area->dev->pvid)))
|
||||||
lvmcache_update_vgname(info, ORPHAN);
|
lvmcache_update_vgname_and_id(info, ORPHAN, NULL);
|
||||||
|
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
@ -234,10 +234,9 @@ static int _read(struct labeller *l, struct device *dev, char *buf,
|
|||||||
list_iterate_items(mda, &info->mdas) {
|
list_iterate_items(mda, &info->mdas) {
|
||||||
mdac = (struct mda_context *) mda->metadata_locn;
|
mdac = (struct mda_context *) mda->metadata_locn;
|
||||||
if ((vgname = vgname_from_mda(info->fmt, &mdac->area,
|
if ((vgname = vgname_from_mda(info->fmt, &mdac->area,
|
||||||
&vgid))) {
|
&vgid)) &&
|
||||||
lvmcache_update_vgname(info, vgname);
|
!lvmcache_update_vgname_and_id(info, vgname, (char *) &vgid))
|
||||||
lvmcache_update_vgid(info, (char *) &vgid);
|
return_0;
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
info->status &= ~CACHE_INVALID;
|
info->status &= ~CACHE_INVALID;
|
||||||
|
@ -175,7 +175,7 @@ static struct labeller *_find_labeller(struct device *dev, char *buf,
|
|||||||
out:
|
out:
|
||||||
if (!found) {
|
if (!found) {
|
||||||
if ((info = info_from_pvid(dev->pvid)))
|
if ((info = info_from_pvid(dev->pvid)))
|
||||||
lvmcache_update_vgname(info, ORPHAN);
|
lvmcache_update_vgname_and_id(info, ORPHAN, NULL);
|
||||||
log_very_verbose("%s: No label detected", dev_name(dev));
|
log_very_verbose("%s: No label detected", dev_name(dev));
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -267,7 +267,7 @@ int label_read(struct device *dev, struct label **result)
|
|||||||
stack;
|
stack;
|
||||||
|
|
||||||
if ((info = info_from_pvid(dev->pvid)))
|
if ((info = info_from_pvid(dev->pvid)))
|
||||||
lvmcache_update_vgname(info, ORPHAN);
|
lvmcache_update_vgname_and_id(info, ORPHAN, NULL);
|
||||||
|
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
@ -348,7 +348,7 @@ int label_verify(struct device *dev)
|
|||||||
stack;
|
stack;
|
||||||
|
|
||||||
if ((info = info_from_pvid(dev->pvid)))
|
if ((info = info_from_pvid(dev->pvid)))
|
||||||
lvmcache_update_vgname(info, ORPHAN);
|
lvmcache_update_vgname_and_id(info, ORPHAN, NULL);
|
||||||
|
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user