master - cleanup: add missing backtrace in fail path
by Zdenek Kabelac
Gitweb: http://git.fedorahosted.org/git/?p=lvm2.git;a=commitdiff;h=9fcbe3c6f07444...
Commit: 9fcbe3c6f074443248922b61441bb2b37253a59c
Parent: fe21b02fabe1dddeb45c4cfd0be475846dd0f906
Author: Zdenek Kabelac <zkabelac(a)redhat.com>
AuthorDate: Tue Dec 10 20:49:53 2013 +0100
Committer: Zdenek Kabelac <zkabelac(a)redhat.com>
CommitterDate: Thu Dec 12 13:29:59 2013 +0100
cleanup: add missing backtrace in fail path
---
lib/label/label.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/lib/label/label.c b/lib/label/label.c
index e083150..25e5f2c 100644
--- a/lib/label/label.c
+++ b/lib/label/label.c
@@ -280,7 +280,7 @@ int label_read(struct device *dev, struct label **result,
}
if (!(l = _find_labeller(dev, buf, §or, scan_sector)))
- goto out;
+ goto_out;
if ((r = (l->ops->read)(l, dev, buf, result)) && result && *result) {
(*result)->dev = dev;
10 years, 3 months
master - cleanup: improve tag processing
by Zdenek Kabelac
Gitweb: http://git.fedorahosted.org/git/?p=lvm2.git;a=commitdiff;h=fe21b02fabe1dd...
Commit: fe21b02fabe1dddeb45c4cfd0be475846dd0f906
Parent: 1c2cc2f794f540c0efead257bb8f8f1d909a053c
Author: Zdenek Kabelac <zkabelac(a)redhat.com>
AuthorDate: Tue Nov 8 23:29:40 2011 +0100
Committer: Zdenek Kabelac <zkabelac(a)redhat.com>
CommitterDate: Thu Dec 12 13:29:20 2013 +0100
cleanup: improve tag processing
Boolean algebra changes for process_each_lv_in_vg().
1st.
Drop process_lv variable since it's not needed.
2nd.
process_lv was always initilized to 0 - so the condition was always true.
It the condition (!tags_supplied && !lvargs_supplied) evaluates as "true",
process_all is already set to 1, so skip vg tags evaluation.
3rd.
Move check for matching lv name in the front of lv tags check
since this check can't be skipped for lvargs_matched counter.
If this filter evaluates to true, skip lv tags evaluation.
---
WHATS_NEW | 1 +
tools/toollib.c | 30 ++++++++----------------------
2 files changed, 9 insertions(+), 22 deletions(-)
diff --git a/WHATS_NEW b/WHATS_NEW
index 0d6a9df..4b469d4 100644
--- a/WHATS_NEW
+++ b/WHATS_NEW
@@ -1,5 +1,6 @@
Version 2.02.105 -
=====================================
+ Improve process_each_lv_in_vg() tag processing.
Reodered and simplified logging code.
Fix SYSTEMD_READY assignment for foreign devices in lvmetad udev rules.
Disable online thin pool metadata resize for 1.9 kernel thin target.
diff --git a/tools/toollib.c b/tools/toollib.c
index 65a7089..0429eb9 100644
--- a/tools/toollib.c
+++ b/tools/toollib.c
@@ -192,7 +192,6 @@ int process_each_lv_in_vg(struct cmd_context *cmd,
int ret_max = ECMD_PROCESSED;
int ret;
unsigned process_all = 0;
- unsigned process_lv = 0;
unsigned tags_supplied = 0;
unsigned lvargs_supplied = 0;
unsigned lvargs_matched = 0;
@@ -211,12 +210,10 @@ int process_each_lv_in_vg(struct cmd_context *cmd,
/* Process all LVs in this VG if no restrictions given */
if (!tags_supplied && !lvargs_supplied)
process_all = 1;
-
/* Or if VG tags match */
- if (!process_lv && tags_supplied &&
- str_list_match_list(tags, &vg->tags, NULL)) {
+ else if (tags_supplied &&
+ str_list_match_list(tags, &vg->tags, NULL))
process_all = 1;
- }
/*
* FIXME: In case of remove it goes through deleted entries,
@@ -242,26 +239,15 @@ int process_each_lv_in_vg(struct cmd_context *cmd,
if (!lvargs_supplied && !lv_is_visible(lvl->lv) && !arg_count(cmd, all_ARG))
continue;
- /* Should we process this LV? */
- if (process_all)
- process_lv = 1;
- else
- process_lv = 0;
-
- /* LV tag match? */
- if (!process_lv && tags_supplied &&
- str_list_match_list(tags, &lvl->lv->tags, NULL)) {
- process_lv = 1;
- }
-
/* LV name match? */
if (lvargs_supplied &&
- str_list_match_item(arg_lvnames, lvl->lv->name)) {
- process_lv = 1;
+ str_list_match_item(arg_lvnames, lvl->lv->name))
+ /* Check even when process_all for counter */
lvargs_matched++;
- }
-
- if (!process_lv)
+ /* LV tag match? skip test, when process_all */
+ else if (!process_all &&
+ (!tags_supplied ||
+ !str_list_match_list(tags, &lvl->lv->tags, NULL)))
continue;
if (sigint_caught())
10 years, 3 months
master - cleanup: remove duplicate code
by Zdenek Kabelac
Gitweb: http://git.fedorahosted.org/git/?p=lvm2.git;a=commitdiff;h=1c2cc2f794f540...
Commit: 1c2cc2f794f540c0efead257bb8f8f1d909a053c
Parent: 30a81e59894ed6c1fdb4a3bb0823b58de1e431cc
Author: Zdenek Kabelac <zkabelac(a)redhat.com>
AuthorDate: Wed Nov 30 11:30:33 2011 +0100
Committer: Zdenek Kabelac <zkabelac(a)redhat.com>
CommitterDate: Thu Dec 12 13:28:19 2013 +0100
cleanup: remove duplicate code
As dev_name_confirmed() has check for DEV_REGULAR
remove this duplicated extra check prior its call.
---
lib/device/dev-io.c | 4 +---
1 files changed, 1 insertions(+), 3 deletions(-)
diff --git a/lib/device/dev-io.c b/lib/device/dev-io.c
index 6c8613c..1d35a8f 100644
--- a/lib/device/dev-io.c
+++ b/lib/device/dev-io.c
@@ -446,9 +446,7 @@ int dev_open_flags(struct device *dev, int flags, int direct, int quiet)
log_verbose("dev_open(%s) called while suspended",
dev_name(dev));
- if (dev->flags & DEV_REGULAR)
- name = dev_name(dev);
- else if (!(name = dev_name_confirmed(dev, quiet)))
+ if (!(name = dev_name_confirmed(dev, quiet)))
return_0;
#ifdef O_DIRECT_SUPPORT
10 years, 3 months
master - cleanup: self compilable headers
by Zdenek Kabelac
Gitweb: http://git.fedorahosted.org/git/?p=lvm2.git;a=commitdiff;h=30a81e59894ed6...
Commit: 30a81e59894ed6c1fdb4a3bb0823b58de1e431cc
Parent: b53e9ba66a53e68fdad7700bcccb9d38e24e39d6
Author: Zdenek Kabelac <zkabelac(a)redhat.com>
AuthorDate: Wed Jan 25 23:26:33 2012 +0100
Committer: Zdenek Kabelac <zkabelac(a)redhat.com>
CommitterDate: Thu Dec 12 13:28:19 2013 +0100
cleanup: self compilable headers
---
daemons/clvmd/clvm.h | 1 +
daemons/dmeventd/libdevmapper-event.h | 1 +
lib/datastruct/lvm-types.h | 2 ++
lib/datastruct/str_list.h | 3 +++
lib/device/device.h | 1 +
lib/format_text/text_import.h | 3 +++
lib/metadata/lv.h | 4 ++--
lib/metadata/lv_alloc.h | 2 ++
lib/metadata/pv.h | 4 +++-
lib/metadata/pv_alloc.h | 9 +++++++++
lib/metadata/vg.h | 6 +++---
lib/misc/crc.h | 2 ++
lib/uuid/uuid.h | 5 +++++
libdm/misc/dm-log-userspace.h | 2 ++
14 files changed, 39 insertions(+), 6 deletions(-)
diff --git a/daemons/clvmd/clvm.h b/daemons/clvmd/clvm.h
index 8e24f15..716af40 100644
--- a/daemons/clvmd/clvm.h
+++ b/daemons/clvmd/clvm.h
@@ -23,6 +23,7 @@
#define _CLVM_H
#include "configure.h"
+#include <inttypes.h>
struct clvm_header {
uint8_t cmd; /* See below */
diff --git a/daemons/dmeventd/libdevmapper-event.h b/daemons/dmeventd/libdevmapper-event.h
index 7ce3f39..9c1cc6f 100644
--- a/daemons/dmeventd/libdevmapper-event.h
+++ b/daemons/dmeventd/libdevmapper-event.h
@@ -48,6 +48,7 @@ enum dm_event_mask {
#define DM_EVENT_ALL_ERRORS DM_EVENT_ERROR_MASK
#define DM_EVENT_PROTOCOL_VERSION 1
+struct dm_task;
struct dm_event_handler;
struct dm_event_handler *dm_event_handler_create(void);
diff --git a/lib/datastruct/lvm-types.h b/lib/datastruct/lvm-types.h
index 5358850..e96009d 100644
--- a/lib/datastruct/lvm-types.h
+++ b/lib/datastruct/lvm-types.h
@@ -19,6 +19,8 @@
#include <sys/types.h>
#include <inttypes.h>
+#include "libdevmapper.h"
+
/* Define some portable printing types */
#define PRIsize_t "zu"
#define PRIptrdiff_t "td"
diff --git a/lib/datastruct/str_list.h b/lib/datastruct/str_list.h
index 42f47da..82141e1 100644
--- a/lib/datastruct/str_list.h
+++ b/lib/datastruct/str_list.h
@@ -16,6 +16,9 @@
#ifndef _LVM_STR_LIST_H
#define _LVM_STR_LIST_H
+struct dm_list;
+struct dm_pool;
+
struct dm_list *str_list_create(struct dm_pool *mem);
int str_list_add(struct dm_pool *mem, struct dm_list *sll, const char *str);
void str_list_del(struct dm_list *sll, const char *str);
diff --git a/lib/device/device.h b/lib/device/device.h
index 1d6304d..e42f664 100644
--- a/lib/device/device.h
+++ b/lib/device/device.h
@@ -17,6 +17,7 @@
#define _LVM_DEVICE_H
#include "uuid.h"
+#include "lvm-types.h"
#include <fcntl.h>
diff --git a/lib/format_text/text_import.h b/lib/format_text/text_import.h
index faebc07..1308a15 100644
--- a/lib/format_text/text_import.h
+++ b/lib/format_text/text_import.h
@@ -16,6 +16,9 @@
#ifndef _LVM_TEXT_IMPORT_H
#define _LVM_TEXT_IMPORT_H
+#include <inttypes.h>
+
+struct dm_hash_table;
struct lv_segment;
struct dm_config_node;
diff --git a/lib/metadata/lv.h b/lib/metadata/lv.h
index 06f8c60..51920b0 100644
--- a/lib/metadata/lv.h
+++ b/lib/metadata/lv.h
@@ -15,9 +15,9 @@
#ifndef _LVM_LV_H
#define _LVM_LV_H
+#include "vg.h"
+
union lvid;
-struct volume_group;
-struct dm_list;
struct lv_segment;
struct replicator_device;
enum activation_change;
diff --git a/lib/metadata/lv_alloc.h b/lib/metadata/lv_alloc.h
index 9f8e0e3..acfebca 100644
--- a/lib/metadata/lv_alloc.h
+++ b/lib/metadata/lv_alloc.h
@@ -16,6 +16,8 @@
#ifndef _LVM_LV_ALLOC_H
#define _LVM_LV_ALLOC_H
+#include "metadata-exported.h"
+
struct lv_segment *alloc_lv_segment(const struct segment_type *segtype,
struct logical_volume *lv,
uint32_t le, uint32_t len,
diff --git a/lib/metadata/pv.h b/lib/metadata/pv.h
index 8fd3061..2d436cb 100644
--- a/lib/metadata/pv.h
+++ b/lib/metadata/pv.h
@@ -15,7 +15,9 @@
#ifndef _LVM_PV_H
#define _LVM_PV_H
-struct id;
+#include "uuid.h"
+#include "libdevmapper.h"
+
struct device;
struct format_type;
struct volume_group;
diff --git a/lib/metadata/pv_alloc.h b/lib/metadata/pv_alloc.h
index 2318473..929302e 100644
--- a/lib/metadata/pv_alloc.h
+++ b/lib/metadata/pv_alloc.h
@@ -14,6 +14,15 @@
#ifndef _LVM_PV_ALLOC_H
+#include <inttypes.h>
+
+struct dm_list;
+struct dm_pool;
+struct lv_segment;
+struct physical_volume;
+struct pv_segment;
+struct volume_group;
+
int alloc_pv_segment_whole_pv(struct dm_pool *mem, struct physical_volume *pv);
int peg_dup(struct dm_pool *mem, struct dm_list *peg_new, struct dm_list *peg_old);
struct pv_segment *assign_peg_to_lvseg(struct physical_volume *pv, uint32_t pe,
diff --git a/lib/metadata/vg.h b/lib/metadata/vg.h
index 5cc5f6d..43d27bf 100644
--- a/lib/metadata/vg.h
+++ b/lib/metadata/vg.h
@@ -15,11 +15,11 @@
#ifndef _LVM_VG_H
#define _LVM_VG_H
+#include "uuid.h"
+#include "libdevmapper.h"
+
struct cmd_context;
-struct dm_pool;
struct format_instance;
-struct dm_list;
-struct id;
struct logical_volume;
typedef enum {
diff --git a/lib/misc/crc.h b/lib/misc/crc.h
index 2910bc5..007c610 100644
--- a/lib/misc/crc.h
+++ b/lib/misc/crc.h
@@ -16,6 +16,8 @@
#ifndef _LVM_CRC_H
#define _LVM_CRC_H
+#include <inttypes.h>
+
#define INITIAL_CRC 0xf597a6cf
uint32_t calc_crc(uint32_t initial, const uint8_t *buf, uint32_t size);
diff --git a/lib/uuid/uuid.h b/lib/uuid/uuid.h
index 5c8382d..60bec65 100644
--- a/lib/uuid/uuid.h
+++ b/lib/uuid/uuid.h
@@ -19,6 +19,11 @@
#define ID_LEN 32
#define ID_LEN_S "32"
+#include <inttypes.h>
+#include <sys/types.h>
+
+struct dm_pool;
+
struct id {
int8_t uuid[ID_LEN];
};
diff --git a/libdm/misc/dm-log-userspace.h b/libdm/misc/dm-log-userspace.h
index 3317938..6418300 100644
--- a/libdm/misc/dm-log-userspace.h
+++ b/libdm/misc/dm-log-userspace.h
@@ -7,6 +7,8 @@
#ifndef __DM_LOG_USERSPACE_H__
#define __DM_LOG_USERSPACE_H__
+#include <inttypes.h>
+
#include "dm-ioctl.h" /* For DM_UUID_LEN */
/*
10 years, 3 months
master - cleanup: simplify logging code
by Zdenek Kabelac
Gitweb: http://git.fedorahosted.org/git/?p=lvm2.git;a=commitdiff;h=b53e9ba66a53e6...
Commit: b53e9ba66a53e68fdad7700bcccb9d38e24e39d6
Parent: 877418b1a2edfba6903314797ab3676ec7f2385a
Author: Zdenek Kabelac <zkabelac(a)redhat.com>
AuthorDate: Mon Mar 26 13:50:44 2012 +0200
Committer: Zdenek Kabelac <zkabelac(a)redhat.com>
CommitterDate: Thu Dec 12 13:27:59 2013 +0100
cleanup: simplify logging code
Condense code for logging.
---
WHATS_NEW | 1 +
lib/log/log.c | 83 ++++++++++++++++----------------------------------------
2 files changed, 25 insertions(+), 59 deletions(-)
diff --git a/WHATS_NEW b/WHATS_NEW
index e985922..0d6a9df 100644
--- a/WHATS_NEW
+++ b/WHATS_NEW
@@ -1,5 +1,6 @@
Version 2.02.105 -
=====================================
+ Reodered and simplified logging code.
Fix SYSTEMD_READY assignment for foreign devices in lvmetad udev rules.
Disable online thin pool metadata resize for 1.9 kernel thin target.
Shortened code for initialization of raid segment types.
diff --git a/lib/log/log.c b/lib/log/log.c
index 1af9616..194fdd3 100644
--- a/lib/log/log.c
+++ b/lib/log/log.c
@@ -199,6 +199,8 @@ void print_log(int level, const char *file, int line, int dm_errno_or_class,
int log_once = level & _LOG_ONCE;
int fatal_internal_error = 0;
size_t msglen;
+ const char *indent_spaces = "";
+ FILE *stream;
level &= ~(_LOG_STDERR|_LOG_ONCE);
@@ -278,76 +280,39 @@ void print_log(int level, const char *file, int line, int dm_errno_or_class,
}
log_it:
- if (!_log_suppress) {
- if (verbose_level() > _LOG_DEBUG)
- (void) dm_snprintf(locn, sizeof(locn), "#%s:%d ",
+ if ((verbose_level() >= level) && !_log_suppress) {
+ if (verbose_level() > _LOG_DEBUG) {
+ (void) dm_snprintf(buf, sizeof(buf), "#%s:%d ",
file, line);
- else
- locn[0] = '\0';
+ } else
+ buf[0] = '\0';
+
+ if (_indent)
+ switch (level) {
+ case _LOG_NOTICE: indent_spaces = " "; break;
+ case _LOG_INFO: indent_spaces = " "; break;
+ case _LOG_DEBUG: indent_spaces = " "; break;
+ default: /* nothing to do */;
+ }
va_start(ap, format);
switch (level) {
case _LOG_DEBUG:
- if (!strcmp("<backtrace>", format) &&
- verbose_level() <= _LOG_DEBUG)
+ if ((verbose_level() == level) &&
+ (strcmp("<backtrace>", format) == 0))
break;
if (verbose_level() < _LOG_DEBUG)
break;
if (!debug_class_is_logged(dm_errno_or_class))
break;
- fprintf(stderr, "%s%s%s", locn, log_command_name(),
- _msg_prefix);
- if (_indent)
- fprintf(stderr, " ");
- vfprintf(stderr, trformat, ap);
- fputc('\n', stderr);
- break;
-
- case _LOG_INFO:
- if (verbose_level() >= _LOG_INFO) {
- fprintf(stderr, "%s%s%s", locn, log_command_name(),
- _msg_prefix);
- if (_indent)
- fprintf(stderr, " ");
- vfprintf(stderr, trformat, ap);
- fputc('\n', stderr);
- }
- break;
- case _LOG_NOTICE:
- if (verbose_level() >= _LOG_NOTICE) {
- fprintf(stderr, "%s%s%s", locn, log_command_name(),
- _msg_prefix);
- if (_indent)
- fprintf(stderr, " ");
- vfprintf(stderr, trformat, ap);
- fputc('\n', stderr);
- }
- break;
- case _LOG_WARN:
- if (verbose_level() >= _LOG_WARN) {
- fprintf(use_stderr ? stderr : stdout, "%s%s",
- log_command_name(), _msg_prefix);
- vfprintf(use_stderr ? stderr : stdout, trformat, ap);
- fputc('\n', use_stderr ? stderr : stdout);
- }
- break;
- case _LOG_ERR:
- if (verbose_level() >= _LOG_ERR) {
- fprintf(stderr, "%s%s%s", locn, log_command_name(),
- _msg_prefix);
- vfprintf(stderr, trformat, ap);
- fputc('\n', stderr);
- }
- break;
- case _LOG_FATAL:
+ /* fall through */
default:
- if (verbose_level() >= _LOG_FATAL) {
- fprintf(stderr, "%s%s%s", locn, log_command_name(),
- _msg_prefix);
- vfprintf(stderr, trformat, ap);
- fputc('\n', stderr);
- }
- break;
+ /* Typically only log_warn goes to stdout */
+ stream = (use_stderr || (level != _LOG_WARN)) ? stderr : stdout;
+ fprintf(stream, "%s%s%s%s", buf, log_command_name(),
+ _msg_prefix, indent_spaces);
+ vfprintf(stream, trformat, ap);
+ fputc('\n', stream);
}
va_end(ap);
}
10 years, 3 months
master - WHATS_NEW: commit 4c267c7286145165dfe078f77d18d194a21a2e1c
by Peter Rajnoha
Gitweb: http://git.fedorahosted.org/git/?p=lvm2.git;a=commitdiff;h=877418b1a2edfb...
Commit: 877418b1a2edfba6903314797ab3676ec7f2385a
Parent: 4c267c7286145165dfe078f77d18d194a21a2e1c
Author: Peter Rajnoha <prajnoha(a)redhat.com>
AuthorDate: Wed Dec 11 16:50:52 2013 +0100
Committer: Peter Rajnoha <prajnoha(a)redhat.com>
CommitterDate: Wed Dec 11 16:50:52 2013 +0100
WHATS_NEW: commit 4c267c7286145165dfe078f77d18d194a21a2e1c
See also https://bugzilla.redhat.com/show_bug.cgi?id=1026860
for more info, comment 76 for summary.
---
WHATS_NEW | 1 +
1 files changed, 1 insertions(+), 0 deletions(-)
diff --git a/WHATS_NEW b/WHATS_NEW
index 7068289..e985922 100644
--- a/WHATS_NEW
+++ b/WHATS_NEW
@@ -1,5 +1,6 @@
Version 2.02.105 -
=====================================
+ Fix SYSTEMD_READY assignment for foreign devices in lvmetad udev rules.
Disable online thin pool metadata resize for 1.9 kernel thin target.
Shortened code for initialization of raid segment types.
Cache global library dir in command context.
10 years, 3 months
master - udev: fix SYSTEMD_READY assignment for foreign devices in lvmetad rules
by Peter Rajnoha
Gitweb: http://git.fedorahosted.org/git/?p=lvm2.git;a=commitdiff;h=4c267c72861451...
Commit: 4c267c7286145165dfe078f77d18d194a21a2e1c
Parent: c9fe05eee26596feb7ed7e83e3da96b8efcbdb20
Author: Peter Rajnoha <prajnoha(a)redhat.com>
AuthorDate: Wed Dec 11 13:13:21 2013 +0100
Committer: Peter Rajnoha <prajnoha(a)redhat.com>
CommitterDate: Wed Dec 11 13:46:15 2013 +0100
udev: fix SYSTEMD_READY assignment for foreign devices in lvmetad rules
Some devices, similarly to us, are not prepared after ADD event, but
after an extra CHANGE event when the device is properly set up.
This includes MD and loop devices. This patch fixes the
SYSTEMD_READY assignment that is crucial for proper functionality
of SYSTEMD_WANTS that we use to instantiate a lvm2-pvscan@.service
systemd service to activate the VG/LVs (see also bug
info).
All that extra handling of foreign devices should eventually be moved
to rules which process those devices primarily (MD and loop)! We should
only check a dedicated variable whether the device is usable or not.
---
udev/69-dm-lvm-metad.rules.in | 5 +++++
1 files changed, 5 insertions(+), 0 deletions(-)
diff --git a/udev/69-dm-lvm-metad.rules.in b/udev/69-dm-lvm-metad.rules.in
index 5b15b6f..d0b7b2a 100644
--- a/udev/69-dm-lvm-metad.rules.in
+++ b/udev/69-dm-lvm-metad.rules.in
@@ -39,6 +39,8 @@ ACTION=="remove", GOTO="lvm_scan"
# but they require an extra setup and they are ready after a CHANGE event.
# Also support coldplugging with ADD event but only if the device is already
# properly activated.
+# This logic should be eventually moved to rules where those particular
+# devices are processed primarily (MD and loop).
# DM device:
KERNEL!="dm-[0-9]*", GOTO="next"
@@ -52,6 +54,7 @@ IMPORT{db}="LVM_MD_PV_ACTIVATED"
ACTION=="add", ENV{LVM_MD_PV_ACTIVATED}=="1", GOTO="lvm_scan"
ACTION=="change", ENV{LVM_MD_PV_ACTIVATED}!="1", TEST=="md/array_state", ENV{LVM_MD_PV_ACTIVATED}="1", GOTO="lvm_scan"
ACTION=="add", KERNEL=="md[0-9]*p[0-9]*", GOTO="lvm_scan"
+ENV{SYSTEMD_READY}="0"
GOTO="lvm_end"
# Loop device:
@@ -59,6 +62,7 @@ LABEL="next"
KERNEL!="loop[0-9]*", GOTO="next"
ACTION=="add", ENV{LVM_LOOP_PV_ACTIVATED}=="1", GOTO="lvm_scan"
ACTION=="change", ENV{LVM_LOOP_PV_ACTIVATED}!="1", TEST=="loop/backing_file", ENV{LVM_LOOP_PV_ACTIVATED}="1", GOTO="lvm_scan"
+ENV{SYSTEMD_READY}="0"
GOTO="lvm_end"
# If the PV is not a special device listed above, scan only after device addition (ADD event)
@@ -80,6 +84,7 @@ LABEL="lvm_scan"
# MD | | X | X* | |
# loop | | X | X* | |
# other | X | | X | | X
+ENV{SYSTEMD_READY}="1"
(PVSCAN_RULE)
LABEL="lvm_end"
10 years, 3 months
master - tests: count interrupted test as failed
by Zdenek Kabelac
Gitweb: http://git.fedorahosted.org/git/?p=lvm2.git;a=commitdiff;h=c9fe05eee26596...
Commit: c9fe05eee26596feb7ed7e83e3da96b8efcbdb20
Parent: e3b7fa4b8d310ffc14ed10039caf43e1a9140f64
Author: Zdenek Kabelac <zkabelac(a)redhat.com>
AuthorDate: Tue Dec 10 11:21:40 2013 +0100
Committer: Zdenek Kabelac <zkabelac(a)redhat.com>
CommitterDate: Tue Dec 10 11:21:40 2013 +0100
tests: count interrupted test as failed
---
test/lib/harness.c | 8 ++++----
1 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/test/lib/harness.c b/test/lib/harness.c
index c4dd3da..fa174bb 100644
--- a/test/lib/harness.c
+++ b/test/lib/harness.c
@@ -538,12 +538,12 @@ int main(int argc, char **argv) {
free(subst[1].value);
free(readbuf);
- printf("\n## %d tests %s : %d OK, %d warnings, %d failures, %d known failures; "
- "%d skipped, %d interrupted\n",
+ printf("\n## %d tests %s : %d OK, %d warnings, %d failures (%d interrupted), %d known failures; "
+ "%d skipped\n",
s.nwarned + s.npassed + s.nfailed + s.nskipped + s.ninterrupted,
duration(start, NULL),
- s.npassed, s.nwarned, s.nfailed, s.nknownfail,
- s.nskipped, s.ninterrupted);
+ s.npassed, s.nwarned, s.nfailed + s.ninterrupted, s.ninterrupted,
+ s.nknownfail, s.nskipped);
/* dump a list to results */
if ((list = fopen(results_list, "w"))) {
10 years, 3 months
master - thin: thin metadata resize unsupported with 1.9
by Zdenek Kabelac
Gitweb: http://git.fedorahosted.org/git/?p=lvm2.git;a=commitdiff;h=e3b7fa4b8d310f...
Commit: e3b7fa4b8d310ffc14ed10039caf43e1a9140f64
Parent: 99d5b4b807f95ac1845526dc23553ef6442f883e
Author: Zdenek Kabelac <zkabelac(a)redhat.com>
AuthorDate: Tue Dec 10 11:10:53 2013 +0100
Committer: Zdenek Kabelac <zkabelac(a)redhat.com>
CommitterDate: Tue Dec 10 11:17:37 2013 +0100
thin: thin metadata resize unsupported with 1.9
Thin kernel target 1.9 still does not support online resize of
thin pool metadata properly - so disable it with expectation
for much higher version - and reenable after fixing kernel.
---
WHATS_NEW | 1 +
lib/thin/thin.c | 2 +-
test/shell/lvresize-thin-metadata.sh | 7 +++++--
3 files changed, 7 insertions(+), 3 deletions(-)
diff --git a/WHATS_NEW b/WHATS_NEW
index 44b545a..7068289 100644
--- a/WHATS_NEW
+++ b/WHATS_NEW
@@ -1,5 +1,6 @@
Version 2.02.105 -
=====================================
+ Disable online thin pool metadata resize for 1.9 kernel thin target.
Shortened code for initialization of raid segment types.
Cache global library dir in command context.
Return success when inserting dirs and links into device cache.
diff --git a/lib/thin/thin.c b/lib/thin/thin.c
index 5f0c271..df6482e 100644
--- a/lib/thin/thin.c
+++ b/lib/thin/thin.c
@@ -624,7 +624,7 @@ static int _thin_target_present(struct cmd_context *cmd,
{ 1, 1, THIN_FEATURE_EXTERNAL_ORIGIN, "external_origin" },
{ 1, 4, THIN_FEATURE_BLOCK_SIZE, "block_size" },
{ 1, 5, THIN_FEATURE_DISCARDS_NON_POWER_2, "discards_non_power_2" },
- { 1, 9, THIN_FEATURE_METADATA_RESIZE, "metadata_resize" },
+ { 9, 9, THIN_FEATURE_METADATA_RESIZE, "metadata_resize" },
};
static const char _lvmconf[] = "global/thin_disabled_features";
diff --git a/test/shell/lvresize-thin-metadata.sh b/test/shell/lvresize-thin-metadata.sh
index 521b76c..16a7500 100644
--- a/test/shell/lvresize-thin-metadata.sh
+++ b/test/shell/lvresize-thin-metadata.sh
@@ -11,9 +11,9 @@
. lib/test
-aux have_thin 1 9 0 || skip
+aux have_thin 9 9 0 || skip
-aux prepare_pvs 3
+aux prepare_pvs 3 256
vgcreate -s 1M $vg $(cat DEVICES)
@@ -31,7 +31,10 @@ for deactivate in true false; do
check lv_field $vg/pool_tmeta size "4.00m"
# TODO: Add more tests when kernel is fixed
+ lvresize --alloc anywhere --poolmetadata +256 $vg/pool
+ vgchange -an $vg
+ vgchange -ay $vg
# TODO: Make a full metadata device and test dmeventd support
lvremove -ff $vg
10 years, 3 months
master - cleanup: share segtype macros
by Zdenek Kabelac
Gitweb: http://git.fedorahosted.org/git/?p=lvm2.git;a=commitdiff;h=99d5b4b807f95a...
Commit: 99d5b4b807f95ac1845526dc23553ef6442f883e
Parent: cf857ecabdb3ef54e42a326d08c33b0518a5b3e4
Author: Zdenek Kabelac <zkabelac(a)redhat.com>
AuthorDate: Tue Dec 10 10:45:21 2013 +0100
Committer: Zdenek Kabelac <zkabelac(a)redhat.com>
CommitterDate: Tue Dec 10 11:16:53 2013 +0100
cleanup: share segtype macros
Write query macro just once.
---
lib/metadata/segtype.h | 32 ++++++++++++++++----------------
1 files changed, 16 insertions(+), 16 deletions(-)
diff --git a/lib/metadata/segtype.h b/lib/metadata/segtype.h
index 1a23658..2c02d1b 100644
--- a/lib/metadata/segtype.h
+++ b/lib/metadata/segtype.h
@@ -43,30 +43,30 @@ struct dev_manager;
#define SEG_THIN_VOLUME 0x00001000U
#define SEG_UNKNOWN 0x80000000U
-#define seg_is_mirrored(seg) ((seg)->segtype->flags & SEG_AREAS_MIRRORED ? 1 : 0)
+#define segtype_is_mirrored(segtype) ((segtype)->flags & SEG_AREAS_MIRRORED ? 1 : 0)
+#define segtype_is_raid(segtype) ((segtype)->flags & SEG_RAID ? 1 : 0)
+#define segtype_is_striped(segtype) ((segtype)->flags & SEG_AREAS_STRIPED ? 1 : 0)
+#define segtype_is_thin(segtype) ((segtype)->flags & (SEG_THIN_POOL|SEG_THIN_VOLUME) ? 1 : 0)
+#define segtype_is_thin_pool(segtype) ((segtype)->flags & SEG_THIN_POOL ? 1 : 0)
+#define segtype_is_thin_volume(segtype) ((segtype)->flags & SEG_THIN_VOLUME ? 1 : 0)
+#define segtype_is_virtual(segtype) ((segtype)->flags & SEG_VIRTUAL ? 1 : 0)
+
+#define seg_is_linear(seg) (seg_is_striped(seg) && ((seg)->area_count == 1))
+#define seg_is_mirrored(seg) segtype_is_mirrored((seg)->segtype)
+#define seg_is_raid(seg) segtype_is_raid((seg)->segtype)
#define seg_is_replicator(seg) ((seg)->segtype->flags & SEG_REPLICATOR ? 1 : 0)
#define seg_is_replicator_dev(seg) ((seg)->segtype->flags & SEG_REPLICATOR_DEV ? 1 : 0)
-#define seg_is_striped(seg) ((seg)->segtype->flags & SEG_AREAS_STRIPED ? 1 : 0)
-#define seg_is_linear(seg) (seg_is_striped(seg) && ((seg)->area_count == 1))
#define seg_is_snapshot(seg) ((seg)->segtype->flags & SEG_SNAPSHOT ? 1 : 0)
-#define seg_is_virtual(seg) ((seg)->segtype->flags & SEG_VIRTUAL ? 1 : 0)
-#define seg_is_raid(seg) ((seg)->segtype->flags & SEG_RAID ? 1 : 0)
-#define seg_is_thin(seg) ((seg)->segtype->flags & (SEG_THIN_POOL|SEG_THIN_VOLUME) ? 1 : 0)
-#define seg_is_thin_pool(seg) ((seg)->segtype->flags & SEG_THIN_POOL ? 1 : 0)
-#define seg_is_thin_volume(seg) ((seg)->segtype->flags & SEG_THIN_VOLUME ? 1 : 0)
+#define seg_is_striped(seg) segtype_is_striped((seg)->segtype)
+#define seg_is_thin(seg) segtype_is_thin((seg)->segtype)
+#define seg_is_thin_pool(seg) segtype_is_thin_pool((seg)->segtype)
+#define seg_is_thin_volume(seg) segtype_is_thin_volume((seg)->segtype)
+#define seg_is_virtual(seg) segtype_is_virtual((seg)->segtype)
#define seg_can_split(seg) ((seg)->segtype->flags & SEG_CAN_SPLIT ? 1 : 0)
#define seg_cannot_be_zeroed(seg) ((seg)->segtype->flags & SEG_CANNOT_BE_ZEROED ? 1 : 0)
#define seg_monitored(seg) ((seg)->segtype->flags & SEG_MONITORED ? 1 : 0)
#define seg_unknown(seg) ((seg)->segtype->flags & SEG_UNKNOWN ? 1 : 0)
-#define segtype_is_striped(segtype) ((segtype)->flags & SEG_AREAS_STRIPED ? 1 : 0)
-#define segtype_is_mirrored(segtype) ((segtype)->flags & SEG_AREAS_MIRRORED ? 1 : 0)
-#define segtype_is_raid(segtype) ((segtype)->flags & SEG_RAID ? 1 : 0)
-#define segtype_is_thin(segtype) ((segtype)->flags & (SEG_THIN_POOL|SEG_THIN_VOLUME) ? 1 : 0)
-#define segtype_is_thin_pool(segtype) ((segtype)->flags & SEG_THIN_POOL ? 1 : 0)
-#define segtype_is_thin_volume(segtype) ((segtype)->flags & SEG_THIN_VOLUME ? 1 : 0)
-#define segtype_is_virtual(segtype) ((segtype)->flags & SEG_VIRTUAL ? 1 : 0)
-
struct segment_type {
struct dm_list list; /* Internal */
struct cmd_context *cmd; /* lvm_register_segtype() sets this. */
10 years, 3 months