mirror of
git://sourceware.org/git/lvm2.git
synced 2024-10-28 03:27:58 +03:00
Refactor lvchange_tag() to call lv_change_tag() library function.
Similar refactoring to vgchange - pull out common parts and put into library function for reuse. Should be no functional change. Signed-off-by: Dave Wysochanski <dwysocha@redhat.com>
This commit is contained in:
parent
aee205752a
commit
cd69ee7453
@ -493,6 +493,8 @@ struct logical_volume *lv_create_empty(const char *name,
|
||||
int set_lv(struct cmd_context *cmd, struct logical_volume *lv,
|
||||
uint64_t sectors, int value);
|
||||
|
||||
int lv_change_tag(struct logical_volume *lv, const char *tag, int add_tag);
|
||||
|
||||
/* Reduce the size of an LV by extents */
|
||||
int lv_reduce(struct logical_volume *lv, uint32_t extents);
|
||||
|
||||
|
@ -665,6 +665,30 @@ int vg_reduce(struct volume_group *vg, char *pv_name)
|
||||
return 0;
|
||||
}
|
||||
|
||||
int lv_change_tag(struct logical_volume *lv, const char *tag, int add_tag)
|
||||
{
|
||||
if (!(lv->vg->fid->fmt->features & FMT_TAGS)) {
|
||||
log_error("Logical volume %s/%s does not support tags",
|
||||
lv->vg->name, lv->name);
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (add_tag) {
|
||||
if (!str_list_add(lv->vg->vgmem, &lv->tags, tag)) {
|
||||
log_error("Failed to add tag %s to %s/%s",
|
||||
tag, lv->vg->name, lv->name);
|
||||
return 0;
|
||||
}
|
||||
} else {
|
||||
if (!str_list_del(&lv->tags, tag)) {
|
||||
log_error("Failed to remove tag %s from %s/%s",
|
||||
tag, lv->vg->name, lv->name);
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
|
||||
int vg_change_tag(struct volume_group *vg, const char *tag, int add_tag)
|
||||
{
|
||||
if (!(vg->fid->fmt->features & FMT_TAGS)) {
|
||||
|
@ -500,25 +500,8 @@ static int lvchange_tag(struct cmd_context *cmd, struct logical_volume *lv,
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (!(lv->vg->fid->fmt->features & FMT_TAGS)) {
|
||||
log_error("Logical volume %s/%s does not support tags",
|
||||
lv->vg->name, lv->name);
|
||||
return 0;
|
||||
}
|
||||
|
||||
if ((arg == addtag_ARG)) {
|
||||
if (!str_list_add(cmd->mem, &lv->tags, tag)) {
|
||||
log_error("Failed to add tag %s to %s/%s",
|
||||
tag, lv->vg->name, lv->name);
|
||||
return 0;
|
||||
}
|
||||
} else {
|
||||
if (!str_list_del(&lv->tags, tag)) {
|
||||
log_error("Failed to remove tag %s from %s/%s",
|
||||
tag, lv->vg->name, lv->name);
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
if (!lv_change_tag(lv, tag, arg == addtag_ARG))
|
||||
return_0;
|
||||
|
||||
log_very_verbose("Updating logical volume \"%s\" on disk(s)", lv->name);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user