public inbox for lvm2-cvs@sourceware.org
help / color / mirror / Atom feed
* LVM2 ./WHATS_NEW lib/format_text/archive.c lib ...
@ 2005-06-06 18:16 agk
0 siblings, 0 replies; 4+ messages in thread
From: agk @ 2005-06-06 18:16 UTC (permalink / raw)
To: lvm2-cvs
CVSROOT: /cvs/lvm2
Module name: LVM2
Changes by: agk@sourceware.org 2005-06-06 18:16:33
Modified files:
. : WHATS_NEW
lib/format_text: archive.c
lib/metadata : metadata.h mirror.c
tools : toollib.c toollib.h vgcreate.c vgrename.c
vgsplit.c
Log message:
Make VG name restrictions consistent.
Patches:
http://sources.redhat.com/cgi-bin/cvsweb.cgi/LVM2/WHATS_NEW.diff?cvsroot=lvm2&r1=1.252&r2=1.253
http://sources.redhat.com/cgi-bin/cvsweb.cgi/LVM2/lib/format_text/archive.c.diff?cvsroot=lvm2&r1=1.17&r2=1.18
http://sources.redhat.com/cgi-bin/cvsweb.cgi/LVM2/lib/metadata/metadata.h.diff?cvsroot=lvm2&r1=1.122&r2=1.123
http://sources.redhat.com/cgi-bin/cvsweb.cgi/LVM2/lib/metadata/mirror.c.diff?cvsroot=lvm2&r1=1.16&r2=1.17
http://sources.redhat.com/cgi-bin/cvsweb.cgi/LVM2/tools/toollib.c.diff?cvsroot=lvm2&r1=1.69&r2=1.70
http://sources.redhat.com/cgi-bin/cvsweb.cgi/LVM2/tools/toollib.h.diff?cvsroot=lvm2&r1=1.34&r2=1.35
http://sources.redhat.com/cgi-bin/cvsweb.cgi/LVM2/tools/vgcreate.c.diff?cvsroot=lvm2&r1=1.43&r2=1.44
http://sources.redhat.com/cgi-bin/cvsweb.cgi/LVM2/tools/vgrename.c.diff?cvsroot=lvm2&r1=1.35&r2=1.36
http://sources.redhat.com/cgi-bin/cvsweb.cgi/LVM2/tools/vgsplit.c.diff?cvsroot=lvm2&r1=1.15&r2=1.16
^ permalink raw reply [flat|nested] 4+ messages in thread
* LVM2 ./WHATS_NEW lib/format_text/archive.c lib ...
@ 2011-03-11 14:45 prajnoha
0 siblings, 0 replies; 4+ messages in thread
From: prajnoha @ 2011-03-11 14:45 UTC (permalink / raw)
To: lvm-devel, lvm2-cvs
CVSROOT: /cvs/lvm2
Module name: LVM2
Changes by: prajnoha@sourceware.org 2011-03-11 14:45:18
Modified files:
. : WHATS_NEW
lib/format_text: archive.c archiver.c format-text.c
format-text.h
Log message:
Make create_text_context fn static and move it inside create_instance fn.
We'd like to use the fid mempool for text_context that is stored
in the instance (we used cmd mempool before, so the order of
initialisation was not a matter, but now it is since we need to
create the fid mempool first which happens in create_instance fn).
The text_context initialisation is not needed anywhere outside the
create_instance fn so move it there.
Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/WHATS_NEW.diff?cvsroot=lvm2&r1=1.1946&r2=1.1947
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/lib/format_text/archive.c.diff?cvsroot=lvm2&r1=1.41&r2=1.42
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/lib/format_text/archiver.c.diff?cvsroot=lvm2&r1=1.44&r2=1.45
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/lib/format_text/format-text.c.diff?cvsroot=lvm2&r1=1.175&r2=1.176
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/lib/format_text/format-text.h.diff?cvsroot=lvm2&r1=1.32&r2=1.33
--- LVM2/WHATS_NEW 2011/03/11 14:38:38 1.1946
+++ LVM2/WHATS_NEW 2011/03/11 14:45:17 1.1947
@@ -1,5 +1,6 @@
Version 2.02.85 -
===================================
+ Make create_text_context fn static and move it inside create_instance fn.
Add mem and ref_count fields to struct format_instance for own mempool use.
Use new alloc_fid fn for common format instance initialisation.
Optimise _get_token() and _eat_space().
--- LVM2/lib/format_text/archive.c 2011/02/21 12:07:03 1.41
+++ LVM2/lib/format_text/archive.c 2011/03/11 14:45:18 1.42
@@ -301,6 +301,9 @@
struct volume_group *vg = NULL;
struct format_instance *tf;
struct format_instance_ctx fic;
+ struct text_context tc = {.path_live = af->path,
+ .path_edit = NULL,
+ .desc = NULL};
time_t when;
char *desc;
@@ -308,8 +311,8 @@
log_print("File:\t\t%s", af->path);
fic.type = FMT_INSTANCE_VG | FMT_INSTANCE_PRIVATE_MDAS;
- if (!(fic.context.private = create_text_context(cmd, af->path, NULL)) ||
- !(tf = cmd->fmt_backup->ops->create_instance(cmd->fmt_backup, &fic))) {
+ fic.context.private = &tc;
+ if (!(tf = cmd->fmt_backup->ops->create_instance(cmd->fmt_backup, &fic))) {
log_error("Couldn't create text instance object.");
return;
}
--- LVM2/lib/format_text/archiver.c 2011/02/28 20:50:01 1.44
+++ LVM2/lib/format_text/archiver.c 2011/03/11 14:45:18 1.45
@@ -271,11 +271,14 @@
struct volume_group *vg = NULL;
struct format_instance *tf;
struct format_instance_ctx fic;
+ struct text_context tc = {.path_live = file,
+ .path_edit = NULL,
+ .desc = cmd->cmd_line};
struct metadata_area *mda;
fic.type = FMT_INSTANCE_VG | FMT_INSTANCE_PRIVATE_MDAS;
- if (!(fic.context.private = create_text_context(cmd, file, cmd->cmd_line)) ||
- !(tf = cmd->fmt_backup->ops->create_instance(cmd->fmt_backup, &fic))) {
+ fic.context.private = &tc;
+ if (!(tf = cmd->fmt_backup->ops->create_instance(cmd->fmt_backup, &fic))) {
log_error("Couldn't create text format object.");
return NULL;
}
@@ -379,6 +382,9 @@
int r = 0;
struct format_instance *tf;
struct format_instance_ctx fic;
+ struct text_context tc = {.path_live = file,
+ .path_edit = NULL,
+ .desc = desc};
struct metadata_area *mda;
struct cmd_context *cmd;
@@ -387,8 +393,8 @@
log_verbose("Creating volume group backup \"%s\" (seqno %u).", file, vg->seqno);
fic.type = FMT_INSTANCE_VG | FMT_INSTANCE_PRIVATE_MDAS;
- if (!(fic.context.private = create_text_context(cmd, file, desc)) ||
- !(tf = cmd->fmt_backup->ops->create_instance(cmd->fmt_backup, &fic))) {
+ fic.context.private = &tc;
+ if (!(tf = cmd->fmt_backup->ops->create_instance(cmd->fmt_backup, &fic))) {
log_error("Couldn't create backup object.");
return 0;
}
--- LVM2/lib/format_text/format-text.c 2011/03/11 14:38:39 1.175
+++ LVM2/lib/format_text/format-text.c 2011/03/11 14:45:18 1.176
@@ -59,12 +59,6 @@
struct device_area dev_area;
};
-struct text_context {
- char *path_live; /* Path to file holding live metadata */
- char *path_edit; /* Path to file holding edited metadata */
- char *desc; /* Description placed inside file */
-};
-
int rlocn_is_ignored(const struct raw_locn *rlocn)
{
return (rlocn->flags & RAW_LOCN_IGNORED ? 1 : 0);
@@ -992,7 +986,7 @@
struct metadata_area *mda)
{
struct text_context *tc = (struct text_context *) mda->metadata_locn;
- char *slash;
+ const char *slash;
char new_name[PATH_MAX];
size_t len;
@@ -1758,6 +1752,52 @@
return 1;
}
+static void *_create_text_context(struct dm_pool *mem, struct text_context *tc)
+{
+ struct text_context *new_tc;
+ const char *path;
+ char *tmp;
+
+ if (!tc)
+ return NULL;
+
+ path = tc->path_live;
+
+ if ((tmp = strstr(path, ".tmp")) && (tmp == path + strlen(path) - 4)) {
+ log_error("%s: Volume group filename may not end in .tmp",
+ path);
+ return NULL;
+ }
+
+ if (!(new_tc = dm_pool_alloc(mem, sizeof(*new_tc))))
+ return_NULL;
+
+ if (!(new_tc->path_live = dm_pool_strdup(mem, path)))
+ goto_bad;
+
+ /* If path_edit not defined, create one from path_live with .tmp suffix. */
+ if (!tc->path_edit) {
+ if (!(tmp = dm_pool_alloc(mem, strlen(path) + 5)))
+ goto_bad;
+ sprintf(tmp, "%s.tmp", path);
+ new_tc->path_edit = tmp;
+ }
+ else if (!(new_tc->path_edit = dm_pool_strdup(mem, tc->path_edit)))
+ goto_bad;
+
+ if (!(new_tc->desc = tc->desc ? dm_pool_strdup(mem, tc->desc)
+ : dm_pool_strdup(mem, "")))
+ goto_bad;
+
+ return (void *) new_tc;
+
+ bad:
+ dm_pool_free(mem, new_tc);
+
+ log_error("Couldn't allocate text format context object.");
+ return NULL;
+}
+
static int _create_vg_text_instance(struct format_instance *fid,
const struct format_instance_ctx *fic)
{
@@ -1769,6 +1809,7 @@
struct raw_list *rl;
struct dm_list *dir_list, *raw_list;
char path[PATH_MAX];
+ struct text_context tc;
struct lvmcache_vginfo *vginfo;
struct lvmcache_info *info;
const char *vg_name, *vg_id;
@@ -1786,7 +1827,7 @@
if (!(mda = dm_pool_zalloc(fid->fmt->cmd->mem, sizeof(*mda))))
return_0;
mda->ops = &_metadata_text_file_backup_ops;
- mda->metadata_locn = fic->context.private;
+ mda->metadata_locn = _create_text_context(fid->fmt->cmd->mem, fic->context.private);
mda->status = 0;
fid->metadata_areas_index.hash = NULL;
fid_add_mda(fid, mda, NULL, 0, 0);
@@ -1811,7 +1852,9 @@
if (!(mda = dm_pool_zalloc(fid->fmt->cmd->mem, sizeof(*mda))))
return_0;
mda->ops = &_metadata_text_file_ops;
- mda->metadata_locn = create_text_context(fid->fmt->cmd, path, NULL);
+ tc.path_live = path;
+ tc.path_edit = tc.desc = NULL;
+ mda->metadata_locn = _create_text_context(fid->fmt->cmd->mem, &tc);
mda->status = 0;
fid_add_mda(fid, mda, NULL, 0, 0);
}
@@ -2210,44 +2253,6 @@
return NULL;
}
-void *create_text_context(struct cmd_context *cmd, const char *path,
- const char *desc)
-{
- struct text_context *tc;
- char *tmp;
-
- if ((tmp = strstr(path, ".tmp")) && (tmp == path + strlen(path) - 4)) {
- log_error("%s: Volume group filename may not end in .tmp",
- path);
- return NULL;
- }
-
- if (!(tc = dm_pool_alloc(cmd->mem, sizeof(*tc))))
- return_NULL;
-
- if (!(tc->path_live = dm_pool_strdup(cmd->mem, path)))
- goto_bad;
-
- if (!(tc->path_edit = dm_pool_alloc(cmd->mem, strlen(path) + 5)))
- goto_bad;
-
- sprintf(tc->path_edit, "%s.tmp", path);
-
- if (!desc)
- desc = "";
-
- if (!(tc->desc = dm_pool_strdup(cmd->mem, desc)))
- goto_bad;
-
- return (void *) tc;
-
- bad:
- dm_pool_free(cmd->mem, tc);
-
- log_error("Couldn't allocate text format context object.");
- return NULL;
-}
-
static struct format_handler _text_handler = {
.scan = _text_scan,
.pv_read = _text_pv_read,
--- LVM2/lib/format_text/format-text.h 2011/03/02 10:19:14 1.32
+++ LVM2/lib/format_text/format-text.h 2011/03/11 14:45:18 1.33
@@ -44,9 +44,12 @@
/*
* The text format can read and write a volume_group to a file.
*/
+struct text_context {
+ const char *path_live; /* Path to file holding live metadata */
+ const char *path_edit; /* Path to file holding edited metadata */
+ const char *desc; /* Description placed inside file */
+};
struct format_type *create_text_format(struct cmd_context *cmd);
-void *create_text_context(struct cmd_context *cmd, const char *path,
- const char *desc);
struct labeller *text_labeller_create(const struct format_type *fmt);
^ permalink raw reply [flat|nested] 4+ messages in thread
* LVM2 ./WHATS_NEW lib/format_text/archive.c lib ...
@ 2009-12-03 19:18 mbroz
0 siblings, 0 replies; 4+ messages in thread
From: mbroz @ 2009-12-03 19:18 UTC (permalink / raw)
To: lvm-devel, lvm2-cvs
CVSROOT: /cvs/lvm2
Module name: LVM2
Changes by: mbroz@sourceware.org 2009-12-03 19:18:34
Modified files:
. : WHATS_NEW
lib/format_text: archive.c
lib/metadata : lv_manip.c metadata.c
tools : lvchange.c lvmchange.c lvresize.c pvremove.c
vgremove.c
Log message:
Fix tools to report error when stopped by user.
(And do not produce internal error message.)
Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/WHATS_NEW.diff?cvsroot=lvm2&r1=1.1337&r2=1.1338
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/lib/format_text/archive.c.diff?cvsroot=lvm2&r1=1.36&r2=1.37
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/lib/metadata/lv_manip.c.diff?cvsroot=lvm2&r1=1.187&r2=1.188
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/lib/metadata/metadata.c.diff?cvsroot=lvm2&r1=1.299&r2=1.300
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/tools/lvchange.c.diff?cvsroot=lvm2&r1=1.112&r2=1.113
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/tools/lvmchange.c.diff?cvsroot=lvm2&r1=1.8&r2=1.9
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/tools/lvresize.c.diff?cvsroot=lvm2&r1=1.116&r2=1.117
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/tools/pvremove.c.diff?cvsroot=lvm2&r1=1.26&r2=1.27
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/tools/vgremove.c.diff?cvsroot=lvm2&r1=1.57&r2=1.58
--- LVM2/WHATS_NEW 2009/12/03 01:48:05 1.1337
+++ LVM2/WHATS_NEW 2009/12/03 19:18:33 1.1338
@@ -1,5 +1,6 @@
Version 2.02.57 -
====================================
+ Fix tools to use log_error when stopped by user.
Fix lvcreate --readahead.
Fix clvmd memory leak in lv_info_by_lvid.
Do not allow creating mirrors of more than 8 images.
--- LVM2/lib/format_text/archive.c 2009/07/26 12:40:27 1.36
+++ LVM2/lib/format_text/archive.c 2009/12/03 19:18:33 1.37
@@ -317,7 +317,7 @@
*/
/* FIXME Use variation on _vg_read */
if (!(vg = text_vg_import_file(tf, af->path, &when, &desc))) {
- log_print("Unable to read archive file.");
+ log_error("Unable to read archive file.");
tf->fmt->ops->destroy_instance(tf);
return;
}
--- LVM2/lib/metadata/lv_manip.c 2009/12/03 01:47:33 1.187
+++ LVM2/lib/metadata/lv_manip.c 2009/12/03 19:18:33 1.188
@@ -2103,7 +2103,7 @@
"%slogical volume %s? [y/n]: ",
vg_is_clustered(vg) ? "clustered " : "",
lv->name) == 'n') {
- log_print("Logical volume %s not removed", lv->name);
+ log_error("Logical volume %s not removed", lv->name);
return 0;
}
}
--- LVM2/lib/metadata/metadata.c 2009/11/24 22:55:56 1.299
+++ LVM2/lib/metadata/metadata.c 2009/12/03 19:18:34 1.300
@@ -1223,7 +1223,7 @@
/* prompt */
if (pv && !is_orphan(pv) && !pp->yes &&
yes_no_prompt(_really_init, name, pv_vg_name(pv)) == 'n') {
- log_print("%s: physical volume not initialized", name);
+ log_error("%s: physical volume not initialized", name);
return 0;
}
--- LVM2/tools/lvchange.c 2009/11/04 12:39:56 1.112
+++ LVM2/tools/lvchange.c 2009/12/03 19:18:34 1.113
@@ -183,7 +183,7 @@
yes_no_prompt("Do you really want to deactivate "
"logical volume %s to resync it? [y/n]: ",
lv->name) == 'n') {
- log_print("Logical volume \"%s\" not resynced",
+ log_error("Logical volume \"%s\" not resynced",
lv->name);
return 0;
}
@@ -433,7 +433,7 @@
yes_no_prompt("Logical volume %s will be "
"deactivated temporarily. "
"Continue? [y/n]: ", lv->name) == 'n') {
- log_print("%s device number not changed.",
+ log_error("%s device number not changed.",
lv->name);
return 0;
}
--- LVM2/tools/lvmchange.c 2008/01/30 14:00:02 1.8
+++ LVM2/tools/lvmchange.c 2009/12/03 19:18:34 1.9
@@ -18,6 +18,6 @@
int lvmchange(struct cmd_context *cmd __attribute((unused)),
int argc __attribute((unused)), char **argv __attribute((unused)))
{
- log_print("With LVM2 and the device mapper, this program is obsolete.");
+ log_error("With LVM2 and the device mapper, this program is obsolete.");
return ECMD_FAILED;
}
--- LVM2/tools/lvresize.c 2009/11/04 14:47:28 1.116
+++ LVM2/tools/lvresize.c 2009/12/03 19:18:34 1.117
@@ -120,7 +120,7 @@
if (!arg_count(cmd, force_ARG)) {
if (yes_no_prompt("Do you really want to reduce %s? [y/n]: ",
lp->lv_name) == 'n') {
- log_print("Logical volume %s NOT reduced", lp->lv_name);
+ log_error("Logical volume %s NOT reduced", lp->lv_name);
return 0;
}
if (sigint_caught())
--- LVM2/tools/pvremove.c 2009/02/25 23:29:07 1.26
+++ LVM2/tools/pvremove.c 2009/12/03 19:18:34 1.27
@@ -74,7 +74,7 @@
/* prompt */
if (!arg_count(cmd, yes_ARG) &&
yes_no_prompt(_really_wipe, name, pv_vg_name(pv)) == 'n') {
- log_print("%s: physical volume label not removed", name);
+ log_error("%s: physical volume label not removed", name);
return 0;
}
--- LVM2/tools/vgremove.c 2009/09/15 01:38:59 1.57
+++ LVM2/tools/vgremove.c 2009/12/03 19:18:34 1.58
@@ -36,7 +36,7 @@
"group \"%s\" containing %u "
"logical volumes? [y/n]: ",
vg_name, lv_count) == 'n')) {
- log_print("Volume group \"%s\" not removed", vg_name);
+ log_error("Volume group \"%s\" not removed", vg_name);
return ECMD_FAILED;
}
if (!remove_lvs_in_vg(cmd, vg, force)) {
^ permalink raw reply [flat|nested] 4+ messages in thread
* LVM2 ./WHATS_NEW lib/format_text/archive.c lib ...
@ 2007-06-08 22:38 bmr
0 siblings, 0 replies; 4+ messages in thread
From: bmr @ 2007-06-08 22:38 UTC (permalink / raw)
To: lvm-devel, lvm2-cvs
CVSROOT: /cvs/lvm2
Module name: LVM2
Changes by: bmr@sourceware.org 2007-06-08 22:38:48
Modified files:
. : WHATS_NEW
lib/format_text: archive.c archiver.c archiver.h format-text.h
tools : vgcfgrestore.c
Log message:
Allow vgcfgrestore to list metadata backup files using -f
Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/WHATS_NEW.diff?cvsroot=lvm2&r1=1.624&r2=1.625
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/lib/format_text/archive.c.diff?cvsroot=lvm2&r1=1.25&r2=1.26
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/lib/format_text/archiver.c.diff?cvsroot=lvm2&r1=1.5&r2=1.6
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/lib/format_text/archiver.h.diff?cvsroot=lvm2&r1=1.1&r2=1.2
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/lib/format_text/format-text.h.diff?cvsroot=lvm2&r1=1.20&r2=1.21
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/tools/vgcfgrestore.c.diff?cvsroot=lvm2&r1=1.13&r2=1.14
--- LVM2/WHATS_NEW 2007/06/06 19:40:27 1.624
+++ LVM2/WHATS_NEW 2007/06/08 22:38:48 1.625
@@ -1,5 +1,6 @@
Version 2.02.26 -
=================================
+ Allow vgcfgrestore to list metadata backup files using -f
Add vg_check_status to consolidate vg status checks and error messages.
Add pvdisplay --maps implementation.
Fix vgcfgrestore man pg to show mandatory VG name and remove LVM1 options.
--- LVM2/lib/format_text/archive.c 2007/01/25 14:37:48 1.25
+++ LVM2/lib/format_text/archive.c 2007/06/08 22:38:48 1.26
@@ -362,6 +362,22 @@
return 1;
}
+int archive_list_file(struct cmd_context *cmd, const char *file)
+{
+ struct archive_file af;
+
+ af.path = (char *)file;
+
+ if (!path_exists(af.path)) {
+ log_err("Archive file %s not found.", af.path);
+ return 0;
+ }
+
+ _display_archive(cmd, &af);
+
+ return 1;
+}
+
int backup_list(struct cmd_context *cmd, const char *dir, const char *vgname)
{
struct archive_file af;
--- LVM2/lib/format_text/archiver.c 2006/08/21 12:54:52 1.5
+++ LVM2/lib/format_text/archiver.c 2007/06/08 22:38:48 1.6
@@ -148,6 +148,17 @@
return r1 && r2;
}
+int archive_display_file(struct cmd_context *cmd, const char *file)
+{
+ int r;
+
+ init_partial(1);
+ r = archive_list_file(cmd, file);
+ init_partial(0);
+
+ return r;
+}
+
int backup_init(struct cmd_context *cmd, const char *dir)
{
if (!(cmd->backup_params = dm_pool_zalloc(cmd->libmem,
--- LVM2/lib/format_text/archiver.h 2005/05/17 13:46:37 1.1
+++ LVM2/lib/format_text/archiver.h 2007/06/08 22:38:48 1.2
@@ -38,6 +38,7 @@
void archive_enable(struct cmd_context *cmd, int flag);
int archive(struct volume_group *vg);
int archive_display(struct cmd_context *cmd, const char *vg_name);
+int archive_display_file(struct cmd_context *cmd, const char *file);
int backup_init(struct cmd_context *cmd, const char *dir);
void backup_exit(struct cmd_context *cmd);
--- LVM2/lib/format_text/format-text.h 2006/05/11 17:58:58 1.20
+++ LVM2/lib/format_text/format-text.h 2007/06/08 22:38:48 1.21
@@ -33,6 +33,7 @@
* Displays a list of vg backups in a particular archive directory.
*/
int archive_list(struct cmd_context *cmd, const char *dir, const char *vgname);
+int archive_list_file(struct cmd_context *cmd, const char *file);
int backup_list(struct cmd_context *cmd, const char *dir, const char *vgname);
/*
--- LVM2/tools/vgcfgrestore.c 2007/03/09 20:47:41 1.13
+++ LVM2/tools/vgcfgrestore.c 2007/06/08 22:38:48 1.14
@@ -19,26 +19,27 @@
{
char *vg_name;
- if (argc != 1) {
+ if (argc == 1) {
+ vg_name = skip_dev_dir(cmd, argv[0], NULL);
+ if (!validate_name(vg_name)) {
+ log_error("Volume group name \"%s\" is invalid", vg_name);
+ return ECMD_FAILED;
+ }
+ } else if (!(arg_count(cmd, list_ARG) && arg_count(cmd, file_ARG))) {
log_err("Please specify a *single* volume group to restore.");
return ECMD_FAILED;
}
- vg_name = skip_dev_dir(cmd, argv[0], NULL);
-
- if (!validate_name(vg_name)) {
- log_error("Volume group name \"%s\" is invalid", vg_name);
- return ECMD_FAILED;
- }
-
/*
* FIXME: overloading the -l arg for now to display a
* list of archive files for a particular vg
*/
if (arg_count(cmd, list_ARG)) {
- if (!archive_display(cmd, vg_name))
+ if (!(arg_count(cmd,file_ARG) ?
+ archive_display_file(cmd,
+ arg_str_value(cmd, file_ARG, "")) :
+ archive_display(cmd, vg_name)))
return ECMD_FAILED;
-
return ECMD_PROCESSED;
}
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2011-03-11 14:45 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2005-06-06 18:16 LVM2 ./WHATS_NEW lib/format_text/archive.c lib agk
2007-06-08 22:38 bmr
2009-12-03 19:18 mbroz
2011-03-11 14:45 prajnoha
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).