From 73ac1ba1501ccda9699b4ad302486fceadfcaef5 Mon Sep 17 00:00:00 2001 From: Alasdair Kergon Date: Mon, 25 Oct 2010 13:54:29 +0000 Subject: [PATCH] pre-release --- VERSION | 2 +- VERSION_DM | 2 +- WHATS_NEW | 30 +++++++++++++++++------------- WHATS_NEW_DM | 8 +++++--- lib/display/display.c | 22 +++++++++++++++++----- lib/display/display.h | 1 + lib/metadata/lv.c | 1 + lib/metadata/metadata.c | 16 ---------------- lib/metadata/metadata.h | 1 - lib/metadata/vg.c | 1 + 10 files changed, 44 insertions(+), 40 deletions(-) diff --git a/VERSION b/VERSION index 7efaa09a1..4194d4ccf 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -2.02.75(2)-cvs (2010-09-24) +2.02.75(2)-cvs (2010-10-25) diff --git a/VERSION_DM b/VERSION_DM index 06677536f..e8b93ccf3 100644 --- a/VERSION_DM +++ b/VERSION_DM @@ -1 +1 @@ -1.02.56-cvs (2010-09-24) +1.02.56-cvs (2010-10-25) diff --git a/WHATS_NEW b/WHATS_NEW index 46d56afdd..04a6c8841 100644 --- a/WHATS_NEW +++ b/WHATS_NEW @@ -1,5 +1,6 @@ -Version 2.02.75 - -===================================== +Version 2.02.75 - 25th October 2010 +=================================== + Annotate more variables and parameters as const. Fix missing variable initialization in cluster_send() function from cmirrord. Fix pointer for VG name in _pv_resize_single error code path. Fix warning for changed alignment requirements for dmeventd read/write func. @@ -7,37 +8,40 @@ Version 2.02.75 - Don't take write lock in vgchange --refresh, --poll or --monitor. Skip dm devices in scan if they contain only error targets or are empty. Fix strict-aliasing compile warning in partition table scanning. - Add an option to automatically extend snapshots through dmeventd. - Remove dependency on libm, floor() is replaced with integer algorithm. + Fix pthread mutex usage deadlock in clvmd. + Automatically extend snapshots with dmeventd according to policy in lvm.conf. + Add activation/snapshot_autoextend_threshold/percent to lvm.conf. + Fix liblvm2cmd link order to support --as-needed. + Remove dependency on libm by replacing floor() by an integer-based algorithm. Fix hang when repairing a mirrored-log that had both devs fail. Convey need for snapshot-merge target in lvconvert error message and man page. - Add "devices/disable_after_error_count" to lvm.conf. + Add devices/disable_after_error_count config to limit access to failing devs. Give correct error message when creating a too-small snapshot. - Implement vgextend --restoremissing. + Implement vgextend --restoremissing to reinstate missing devs that return. + Make lvconvert respect --yes and --force when converting an inactive log. Refactor and add 'get' functions for lv properties/fields. Update script for fsadm testing. Better support of noninteractive shell execution of fsadm. Fix usage of --yes flag for ReiserFS resize in fsadm. Fix detection of mounted filesystems for fsadm when udev is used. - Fix assignment of default value to LVM variable is fsadm. + Fix assignment of default value to LVM variable in fsadm. Fix support for --yes flag for fsadm. - Do not execute lvresize with --dry-run option for fsadm. + Do not execute lvresize from fsadm --dry-run. Fix fsadm return error code from user's break action. Allow CC to be overridden at build time (for 'scan-build make'). Rename 'flags' to 'status' in struct metadata_area. Avoid segfault by limiting partial mode for lvm1 metadata. (2.02.74) - Add dm_zalloc and use it and dm_pool_zalloc throughout. + Use dm_zalloc and dm_pool_zalloc throughout. Add pv_get_property and create generic internal _get_property function. Add 'get' functions for pv and vg properties/fields. Make generic GET_*_PROPERTY_FN macros with secondary macro for vg, pv & lv. Add tags_format_and_copy() common function and call from _tags_disp. Add id_format_and_copy() common function and call from _uuid_disp. - Simplify logic to create '{pv|vg|lv}_attr' strings. Refactor report.c '*_disp' functions to call supporting functions. - Refactor lib/metadata/metadata.[ch] into {pv|vg|lv}.[ch]. - Fix memory leak of vg_read while using live copies of metadata in directories. + Move parts of metadata*.[ch] into new {pv|vg|lv}.[ch] files. + Fix vg_read memory leak with directory-based metadata. Fix memory leak of config_tree in reinitialization code path. - Swap pool destruction order in dmeventd_lvm2_exit() to fix leak report. + Fix pool destruction order in dmeventd_lvm2_exit() to avoid leak debug mesg. Read whole /proc/self/maps file before working with maps entries. Speed up unquoting of quoted double quotes and backslashes. Speed up CRC32 calculations by using a larger lookup table. diff --git a/WHATS_NEW_DM b/WHATS_NEW_DM index d3f554995..b701ddb20 100644 --- a/WHATS_NEW_DM +++ b/WHATS_NEW_DM @@ -1,6 +1,8 @@ -Version 1.02.56 - -===================================== - Fix API for dm_basename() and return const pointer for const input pointer. +Version 1.02.56 - 25th October 2010 +=================================== + Return const pointer from dm_basename() in libdevmapper. + Implement dmeventd -R to restart without state loss. + Add dm_zalloc and use it and dm_pool_zalloc throughout. Add --setuuid to dmsetup rename. Add dm_task_set_newuuid to set uuid of mapped device post-creation. diff --git a/lib/display/display.c b/lib/display/display.c index 86dc87fbf..f1d4ff740 100644 --- a/lib/display/display.c +++ b/lib/display/display.c @@ -27,13 +27,14 @@ typedef enum { SIZE_LONG = 0, SIZE_SHORT = 1, SIZE_UNIT = 2 } size_len_t; static const struct { alloc_policy_t alloc; const char str[12]; /* must be changed when size extends 11 chars */ + const char repchar; } _policies[] = { { - ALLOC_CONTIGUOUS, "contiguous"}, { - ALLOC_CLING, "cling"}, { - ALLOC_NORMAL, "normal"}, { - ALLOC_ANYWHERE, "anywhere"}, { - ALLOC_INHERIT, "inherit"} + ALLOC_CONTIGUOUS, "contiguous", 'c'}, { + ALLOC_CLING, "cling", 'l'}, { + ALLOC_NORMAL, "normal", 'n'}, { + ALLOC_ANYWHERE, "anywhere", 'a'}, { + ALLOC_INHERIT, "inherit", 'i'} }; static const int _num_policies = sizeof(_policies) / sizeof(*_policies); @@ -120,6 +121,17 @@ uint64_t units_to_bytes(const char *units, char *unit_type) return v; } +const char alloc_policy_char(alloc_policy_t alloc) +{ + int i; + + for (i = 0; i < _num_policies; i++) + if (_policies[i].alloc == alloc) + return _policies[i].repchar; + + return '-'; +} + const char *get_alloc_string(alloc_policy_t alloc) { int i; diff --git a/lib/display/display.h b/lib/display/display.h index 03cef4167..fb000a256 100644 --- a/lib/display/display.h +++ b/lib/display/display.h @@ -57,6 +57,7 @@ void display_segtypes(const struct cmd_context *cmd); * Allocation policy display conversion routines. */ const char *get_alloc_string(alloc_policy_t alloc); +const char alloc_policy_char(alloc_policy_t alloc); alloc_policy_t get_alloc_from_string(const char *str); char yes_no_prompt(const char *prompt, ...) __attribute__ ((format(printf, 1, 2))); diff --git a/lib/metadata/lv.c b/lib/metadata/lv.c index b7a8700a2..744b7b0c5 100644 --- a/lib/metadata/lv.c +++ b/lib/metadata/lv.c @@ -15,6 +15,7 @@ #include "lib.h" #include "metadata.h" +#include "display.h" #include "activate.h" #include "toolcontext.h" #include "segtype.h" diff --git a/lib/metadata/metadata.c b/lib/metadata/metadata.c index aaf79d8a3..e81f87fc7 100644 --- a/lib/metadata/metadata.c +++ b/lib/metadata/metadata.c @@ -3957,22 +3957,6 @@ int pv_change_metadataignore(struct physical_volume *pv, uint32_t mda_ignored) return 1; } -char alloc_policy_char(alloc_policy_t alloc) -{ - switch (alloc) { - case ALLOC_CONTIGUOUS: - return 'c'; - case ALLOC_CLING: - return 'l'; - case ALLOC_NORMAL: - return 'n'; - case ALLOC_ANYWHERE: - return 'a'; - default: - return 'i'; - } -} - char *tags_format_and_copy(struct dm_pool *mem, const struct dm_list *tags) { struct str_list *sl; diff --git a/lib/metadata/metadata.h b/lib/metadata/metadata.h index 8e950a9d3..5aa9c1930 100644 --- a/lib/metadata/metadata.h +++ b/lib/metadata/metadata.h @@ -412,7 +412,6 @@ int vg_mark_partial_lvs(struct volume_group *vg); int is_mirror_image_removable(struct logical_volume *mimage_lv, void *baton); uint64_t find_min_mda_size(struct dm_list *mdas); -char alloc_policy_char(alloc_policy_t alloc); char *tags_format_and_copy(struct dm_pool *mem, const struct dm_list *tags); #endif diff --git a/lib/metadata/vg.c b/lib/metadata/vg.c index 2c73861b4..9d0d5dd72 100644 --- a/lib/metadata/vg.c +++ b/lib/metadata/vg.c @@ -15,6 +15,7 @@ #include "lib.h" #include "metadata.h" +#include "display.h" #include "activate.h" char *vg_fmt_dup(const struct volume_group *vg) -- 2.43.5