[lvm-devel] [PATCH] enable config command line option for backup (update)
Takahiro Yasui
tyasui at redhat.com
Fri Apr 24 20:19:28 UTC 2009
Hi,
I fixed memory leak on the previous patch when archive_init()
and backup_init() is called several times.
Regards,
---
Takahiro Yasui
Hitachi Computer Products (America), Inc.
This patch enables to configure options related to backup and archive
by "--config" option in commandline.
Signed-off-by: Takahiro Yasui <tyasui at redhat.com>
---
lib/commands/toolcontext.c | 5 +++++
lib/format_text/archiver.c | 10 ++++++----
2 files changed, 11 insertions(+), 4 deletions(-)
Index: LVM2.02.46-20090422/lib/commands/toolcontext.c
===================================================================
--- LVM2.02.46-20090422.orig/lib/commands/toolcontext.c
+++ LVM2.02.46-20090422/lib/commands/toolcontext.c
@@ -1160,6 +1160,8 @@ int refresh_toolcontext(struct cmd_conte
*/
activation_release();
+ archive_exit(cmd);
+ backup_exit(cmd);
lvmcache_destroy(cmd, 0);
label_exit();
_destroy_segtypes(&cmd->segtypes);
@@ -1208,6 +1210,9 @@ int refresh_toolcontext(struct cmd_conte
if (!_init_segtypes(cmd))
return 0;
+ if (!_init_backup(cmd))
+ return 0;
+
/*
* If we are a long-lived process, write out the updated persistent
* device cache for the benefit of short-lived processes.
Index: LVM2.02.46-20090422/lib/format_text/archiver.c
===================================================================
--- LVM2.02.46-20090422.orig/lib/format_text/archiver.c
+++ LVM2.02.46-20090422/lib/format_text/archiver.c
@@ -40,8 +40,9 @@ int archive_init(struct cmd_context *cmd
unsigned int keep_days, unsigned int keep_min,
int enabled)
{
- if (!(cmd->archive_params = dm_pool_zalloc(cmd->libmem,
- sizeof(*cmd->archive_params)))) {
+ if (!cmd->archive_params &&
+ !(cmd->archive_params = dm_pool_zalloc(cmd->libmem,
+ sizeof(*cmd->archive_params)))) {
log_error("archive_params alloc failed");
return 0;
}
@@ -154,8 +155,9 @@ int archive_display_file(struct cmd_cont
int backup_init(struct cmd_context *cmd, const char *dir,
int enabled)
{
- if (!(cmd->backup_params = dm_pool_zalloc(cmd->libmem,
- sizeof(*cmd->backup_params)))) {
+ if (!cmd->backup_params &&
+ !(cmd->backup_params = dm_pool_zalloc(cmd->libmem,
+ sizeof(*cmd->backup_params)))) {
log_error("backup_params alloc failed");
return 0;
}
More information about the lvm-devel
mailing list