Gitweb: http://git.fedorahosted.org/git/?p=lvm2.git;a=commitdiff;h=06ef7ba8765d6404…
Commit: 06ef7ba8765d64044b008a33f1c1faeac6112a4a
Parent: 8b258a005ba6852209ec7af5b373a69f437abfaa
Author: Peter Rajnoha <prajnoha(a)redhat.com>
AuthorDate: Wed Mar 30 14:10:56 2016 +0200
Committer: Peter Rajnoha <prajnoha(a)redhat.com>
CommitterDate: Wed Mar 30 14:10:56 2016 +0200
doc: describe lvmlockd/lvmpolld features as available if LVM compiled with lockd/polld support
---
conf/example.conf.in | 9 +++++++--
conf/lvmlocal.conf.in | 1 +
lib/config/config_settings.h | 16 +++++++++++-----
man/lvm.8.in | 3 ++-
man/lvmsystemid.7.in | 6 ++++--
man/vgchange.8.in | 4 ++--
man/vgcreate.8.in | 8 ++++----
7 files changed, 31 insertions(+), 16 deletions(-)
diff --git a/conf/example.conf.in b/conf/example.conf.in
index a21dd96..255d329 100644
--- a/conf/example.conf.in
+++ b/conf/example.conf.in
@@ -853,11 +853,14 @@ global {
# Configuration option global/use_lvmlockd.
# Use lvmlockd for locking among hosts using LVM on shared storage.
- # See lvmlockd(8) for more information.
+ # Applicable only if LVM is compiled with lockd support in which
+ # case there is also lvmlockd(8) man page available for more
+ # information.
use_lvmlockd = 0
# Configuration option global/lvmlockd_lock_retries.
# Retry lvmlockd lock requests this many times.
+ # Applicable only if LVM is compiled with lockd support
# This configuration option has an automatic default value.
# lvmlockd_lock_retries = 3
@@ -867,7 +870,8 @@ global {
# LVs have been created, the internal LV needs to be extended. lvcreate
# will automatically extend the internal LV when needed by the amount
# specified here. Setting this to 0 disables the automatic extension
- # and can cause lvcreate to fail.
+ # and can cause lvcreate to fail. Applicable only if LVM is compiled
+ # with lockd support
# This configuration option has an automatic default value.
# sanlock_lv_extend = 256
@@ -1014,6 +1018,7 @@ global {
# a native systemd service, which allows it to be started on demand,
# and to use its own control group. When this option is disabled, LVM
# commands will supervise long running operations by forking themselves.
+ # Applicable only if LVM is compiled with lvmpolld support.
use_lvmpolld = @DEFAULT_USE_LVMPOLLD@
# Configuration option global/notify_dbus.
diff --git a/conf/lvmlocal.conf.in b/conf/lvmlocal.conf.in
index 9fc50c8..04414bf 100644
--- a/conf/lvmlocal.conf.in
+++ b/conf/lvmlocal.conf.in
@@ -51,6 +51,7 @@ local {
# Configuration option local/host_id.
# The lvmlockd sanlock host_id.
# This must be unique among all hosts, and must be between 1 and 2000.
+ # Applicable only if LVM is compiled with lockd support
# This configuration option has an automatic default value.
# host_id = 0
}
diff --git a/lib/config/config_settings.h b/lib/config/config_settings.h
index d58b7a4..330e223 100644
--- a/lib/config/config_settings.h
+++ b/lib/config/config_settings.h
@@ -856,10 +856,13 @@ cfg(global_use_lvmetad_CFG, "use_lvmetad", global_CFG_SECTION, 0, CFG_TYPE_BOOL,
cfg(global_use_lvmlockd_CFG, "use_lvmlockd", global_CFG_SECTION, 0, CFG_TYPE_BOOL, 0, vsn(2, 2, 124), NULL, 0, NULL,
"Use lvmlockd for locking among hosts using LVM on shared storage.\n"
- "See lvmlockd(8) for more information.\n")
+ "Applicable only if LVM is compiled with lockd support in which\n"
+ "case there is also lvmlockd(8) man page available for more\n"
+ "information.\n")
cfg(global_lvmlockd_lock_retries_CFG, "lvmlockd_lock_retries", global_CFG_SECTION, CFG_DEFAULT_COMMENTED, CFG_TYPE_INT, DEFAULT_LVMLOCKD_LOCK_RETRIES, vsn(2, 2, 125), NULL, 0, NULL,
- "Retry lvmlockd lock requests this many times.\n")
+ "Retry lvmlockd lock requests this many times.\n"
+ "Applicable only if LVM is compiled with lockd support\n")
cfg(global_sanlock_lv_extend_CFG, "sanlock_lv_extend", global_CFG_SECTION, CFG_DEFAULT_COMMENTED, CFG_TYPE_INT, DEFAULT_SANLOCK_LV_EXTEND_MB, vsn(2, 2, 124), NULL, 0, NULL,
"Size in MiB to extend the internal LV holding sanlock locks.\n"
@@ -867,7 +870,8 @@ cfg(global_sanlock_lv_extend_CFG, "sanlock_lv_extend", global_CFG_SECTION, CFG_D
"LVs have been created, the internal LV needs to be extended. lvcreate\n"
"will automatically extend the internal LV when needed by the amount\n"
"specified here. Setting this to 0 disables the automatic extension\n"
- "and can cause lvcreate to fail.\n")
+ "and can cause lvcreate to fail. Applicable only if LVM is compiled\n"
+ "with lockd support\n")
cfg(global_thin_check_executable_CFG, "thin_check_executable", global_CFG_SECTION, CFG_ALLOW_EMPTY | CFG_DEFAULT_COMMENTED, CFG_TYPE_STRING, THIN_CHECK_CMD, vsn(2, 2, 94), "@THIN_CHECK_CMD@", 0, NULL,
"The full path to the thin_check command.\n"
@@ -993,7 +997,8 @@ cfg(global_use_lvmpolld_CFG, "use_lvmpolld", global_CFG_SECTION, 0, CFG_TYPE_BOO
"manage the progress of ongoing operations. lvmpolld can be used as\n"
"a native systemd service, which allows it to be started on demand,\n"
"and to use its own control group. When this option is disabled, LVM\n"
- "commands will supervise long running operations by forking themselves.\n")
+ "commands will supervise long running operations by forking themselves.\n"
+ "Applicable only if LVM is compiled with lvmpolld support.\n")
cfg(global_notify_dbus_CFG, "notify_dbus", global_CFG_SECTION, 0, CFG_TYPE_BOOL, DEFAULT_NOTIFY_DBUS, vsn(2, 2, 145), NULL, 0, NULL,
"Enable D-Bus notification from LVM commands.\n"
@@ -1779,6 +1784,7 @@ cfg_array(local_extra_system_ids_CFG, "extra_system_ids", local_CFG_SECTION, CFG
cfg(local_host_id_CFG, "host_id", local_CFG_SECTION, CFG_DEFAULT_COMMENTED, CFG_TYPE_INT, 0, vsn(2, 2, 124), NULL, 0, NULL,
"The lvmlockd sanlock host_id.\n"
- "This must be unique among all hosts, and must be between 1 and 2000.\n")
+ "This must be unique among all hosts, and must be between 1 and 2000.\n"
+ "Applicable only if LVM is compiled with lockd support\n")
cfg(CFG_COUNT, NULL, root_CFG_SECTION, 0, CFG_TYPE_INT, 0, vsn(0, 0, 0), NULL, 0, NULL, NULL)
diff --git a/man/lvm.8.in b/man/lvm.8.in
index fd25001..d2da72c 100644
--- a/man/lvm.8.in
+++ b/man/lvm.8.in
@@ -373,7 +373,8 @@ is not used and metadata is read from disks.
.br
Cause the command to access shared VGs, that would otherwise be skipped
when lvmlockd is not being used. It can be used to report or display a
-lockd VG without locking.
+lockd VG without locking. Applicable only if LVM is compiled with lockd
+support.
.
.HP
.BR \-\-addtag
diff --git a/man/lvmsystemid.7.in b/man/lvmsystemid.7.in
index 0048873..3aea996 100644
--- a/man/lvmsystemid.7.in
+++ b/man/lvmsystemid.7.in
@@ -111,7 +111,8 @@ owned.
.B Shared:
A shared or "lockd" VG has lock_type set and no system_id.
A shared VG is meant to be used on shared storage from multiple hosts,
-and is only accessible to hosts using lvmlockd.
+and is only accessible to hosts using lvmlockd. Applicable only if LVM
+is compiled with lockd support.
.B Clustered:
A clustered or "clvm" VG has the clustered flag set and no system_id.
@@ -308,7 +309,8 @@ extra_system_ids list.
A shared/lockd VG has no system_id set, allowing multiple hosts to
use it via lvmlockd. Changing a VG to a lockd type will clear the
-existing system_id.
+existing system_id. Applicable only if LVM is compiled with lockd
+support.
.SS clustered VGs
diff --git a/man/vgchange.8.in b/man/vgchange.8.in
index 6e13f5f..e334fd1 100644
--- a/man/vgchange.8.in
+++ b/man/vgchange.8.in
@@ -132,8 +132,8 @@ be used on one node at once.
For local VGs, \-ay, \-aey, and \-asy are all equivalent.
.IP
-In a shared VG, lvmlockd is used for locking, and the following options
-are possible:
+In a shared VG, lvmlockd is used for locking if LVM is compiled with lockd
+support, and the following options are possible:
With \-aey, the command activates the LV in exclusive mode, allowing a
single host to activate the LV (the host running the command). Before
diff --git a/man/vgcreate.8.in b/man/vgcreate.8.in
index 22feedf..b0b01e4 100644
--- a/man/vgcreate.8.in
+++ b/man/vgcreate.8.in
@@ -130,10 +130,10 @@ The 2.4 kernel has a limitation of 2TiB per block device.
.TP
.B \-\-shared
-Create a shared VG using lvmlockd. lvmlockd will select lock type sanlock
-or dlm depending on which lock manager is running. This allows multiple
-hosts to share a VG on shared devices. lvmlockd and a lock manager must
-be configured and running. See
+Create a shared VG using lvmlockd if LVM is copiled with lockd support.
+ lvmlockd will select lock type sanlock or dlm depending on which lock
+manager is running. This allows multiple hosts to share a VG on shared
+devices. lvmlockd and a lock manager must be configured and running. See
.BR lvmlockd (8).
.TP
Gitweb: http://git.fedorahosted.org/git/?p=lvm2.git;a=commitdiff;h=52e0d0db4460d901…
Commit: 52e0d0db4460d90172e9bd45b9ef30e7f4f75ae7
Parent: 8c27c5274980dddf64283602bc23b89a5623da0a
Author: Peter Rajnoha <prajnoha(a)redhat.com>
AuthorDate: Wed Mar 30 11:11:37 2016 +0200
Committer: Peter Rajnoha <prajnoha(a)redhat.com>
CommitterDate: Wed Mar 30 11:30:09 2016 +0200
dev-cache: remove spurious error msg if no value found in /sys/dev/block/<major>:<minor>/dm/uuid during dev scan
It's correct to have a DM device that has no DM UUID assigned
so no need to issue error message in this case. Also, if the
device doesn't have DM UUID, it's also clear it's not an LVM LV
(...when looking for VGID/LVID while creating VGID/LVID indices
in dev cache).
For example:
$ dmsetup create test --table "0 1 linear /dev/sda 0"
And there's no PV in the system.
Before this patch (spurious error message issued):
$ pvs
_get_sysfs_value: /sys/dev/block/253:2/dm/uuid: no value
With this patch applied (no spurious error message):
$ pvs
---
WHATS_NEW | 1 +
lib/device/dev-cache.c | 12 +++++++-----
2 files changed, 8 insertions(+), 5 deletions(-)
diff --git a/WHATS_NEW b/WHATS_NEW
index b389926..dae6a10 100644
--- a/WHATS_NEW
+++ b/WHATS_NEW
@@ -1,5 +1,6 @@
Version 2.02.149 -
==================================
+ Remove spurious error about no value in /sys/dev/block/major:minor/dm/uuid.
Fix device mismatch detection for LV if persistent .cache file is used.
Fix holder device not being found in /dev while sysfs has it during dev scan.
diff --git a/lib/device/dev-cache.c b/lib/device/dev-cache.c
index 9989066..1729aba 100644
--- a/lib/device/dev-cache.c
+++ b/lib/device/dev-cache.c
@@ -363,7 +363,7 @@ static int _add_alias(struct device *dev, const char *path)
return 1;
}
-static int _get_sysfs_value(const char *path, char *buf, size_t buf_size)
+static int _get_sysfs_value(const char *path, char *buf, size_t buf_size, int error_if_no_value)
{
FILE *fp;
size_t len;
@@ -380,8 +380,10 @@ static int _get_sysfs_value(const char *path, char *buf, size_t buf_size)
}
if (!(len = strlen(buf)) || (len == 1 && buf[0] == '\n')) {
- log_error("_get_sysfs_value: %s: no value", path);
- goto out;
+ if (error_if_no_value) {
+ log_error("_get_sysfs_value: %s: no value", path);
+ goto out;
+ }
}
if (buf[len - 1] == '\n')
@@ -404,7 +406,7 @@ static int _get_dm_uuid_from_sysfs(char *buf, size_t buf_size, int major, int mi
return 0;
}
- return _get_sysfs_value(path, buf, buf_size);
+ return _get_sysfs_value(path, buf, buf_size, 0);
}
static struct dm_list *_get_or_add_list_by_index_key(struct dm_hash_table *idx, const char *key)
@@ -442,7 +444,7 @@ static struct device *_get_device_for_sysfs_dev_name_using_devno(const char *dev
return NULL;
}
- if (!_get_sysfs_value(path, buf, sizeof(buf)))
+ if (!_get_sysfs_value(path, buf, sizeof(buf), 1))
return_NULL;
if (sscanf(buf, "%d:%d", &major, &minor) != 2) {
Gitweb: http://git.fedorahosted.org/git/?p=lvm2.git;a=commitdiff;h=8c27c5274980dddf…
Commit: 8c27c5274980dddf64283602bc23b89a5623da0a
Parent: 91bb202ded059a4109ff4351825c77c1fcf9197b
Author: Peter Rajnoha <prajnoha(a)redhat.com>
AuthorDate: Wed Mar 30 10:39:30 2016 +0200
Committer: Peter Rajnoha <prajnoha(a)redhat.com>
CommitterDate: Wed Mar 30 11:00:01 2016 +0200
dev-cache: also index VGIDs and LVIDs if using persistent .cache file
If we're using persistent .cache file, we're reading this file instead
of traversing the /dev content. Fix missing indexing by VGID and LVID
here - hook this into persistent_filter_load where we populate device
cache from persistent .cache file instead of scanning /dev.
For example, inducing situation in which we warn about different device
actually used than what LVM thinks should be used based on metadata:
$ lsblk -s /dev/vg/lvol0
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
vg-lvol0 253:4 0 124M 0 lvm
`-loop1 7:1 0 128M 0 loop
$ lvmconfig --type diff
global {
use_lvmetad=0
}
devices {
obtain_device_list_from_udev=0
}
(obtain_device_list_from_udev=0 also means the persistent .cache file is used)
Before this patch - pvs is fine as it does the dev scan, but lvs relies
on persistent .cache file and it misses the VGID/LVID indices to check
and warn about incorrect devices used:
$ pvs
Found duplicate PV B9gXTHkIdEIiMVwcOoT2LX3Ywh4YIHgR: using /dev/loop0 not /dev/loop1
Using duplicate PV /dev/loop0 without holders, ignoring /dev/loop1
WARNING: Device mismatch detected for vg/lvol0 which is accessing /dev/loop1 instead of /dev/loop0.
PV VG Fmt Attr PSize PFree
/dev/loop0 vg lvm2 a-- 124.00m 0
$ lvs
Found duplicate PV B9gXTHkIdEIiMVwcOoT2LX3Ywh4YIHgR: using /dev/loop0 not /dev/loop1
Using duplicate PV /dev/loop0 without holders, ignoring /dev/loop1
LV VG Attr LSize
lvol0 vg -wi-a----- 124.00m
With this patch applied - both pvs and lvs is fine - the indices are
always created correctly (lvs just an example here, other LVM commands
that rely on persistent .cache file are fixed with this patch too):
$ pvs
Found duplicate PV B9gXTHkIdEIiMVwcOoT2LX3Ywh4YIHgR: using /dev/loop0 not /dev/loop1
Using duplicate PV /dev/loop0 without holders, ignoring /dev/loop1
WARNING: Device mismatch detected for vg/lvol0 which is accessing /dev/loop1 instead of /dev/loop0.
PV VG Fmt Attr PSize PFree
/dev/loop0 vg lvm2 a-- 124.00m 0
$ lvs
Found duplicate PV B9gXTHkIdEIiMVwcOoT2LX3Ywh4YIHgR: using /dev/loop0 not /dev/loop1
Using duplicate PV /dev/loop0 without holders, ignoring /dev/loop1
WARNING: Device mismatch detected for vg/lvol0 which is accessing /dev/loop1 instead of /dev/loop0.
LV VG Attr LSize
lvol0 vg -wi-a----- 124.00m
---
WHATS_NEW | 1 +
lib/device/dev-cache.c | 8 ++++++--
lib/device/dev-cache.h | 1 +
lib/filters/filter-persistent.c | 2 ++
4 files changed, 10 insertions(+), 2 deletions(-)
diff --git a/WHATS_NEW b/WHATS_NEW
index ca6077b..b389926 100644
--- a/WHATS_NEW
+++ b/WHATS_NEW
@@ -1,5 +1,6 @@
Version 2.02.149 -
==================================
+ Fix device mismatch detection for LV if persistent .cache file is used.
Fix holder device not being found in /dev while sysfs has it during dev scan.
Version 2.02.148 - 26th March 2016
diff --git a/lib/device/dev-cache.c b/lib/device/dev-cache.c
index b3d45b3..9989066 100644
--- a/lib/device/dev-cache.c
+++ b/lib/device/dev-cache.c
@@ -527,6 +527,10 @@ static int _index_dev_by_vgid_and_lvid(struct device *dev)
struct device_list *dl_vgid, *dl_lvid;
int r = 0;
+ if (dev->vgid)
+ /* already indexed */
+ return 1;
+
/* Get holders for device. */
if (dm_snprintf(path, sizeof(path), "%sdev/block/%d:%d/holders/", dm_sysfs_dir(), (int) MAJOR(dev->dev), (int) MINOR(dev->dev)) < 0) {
log_error("%s: dm_snprintf failed for path to holders directory.", devname);
@@ -848,7 +852,7 @@ bad:
return 0;
}
-static int _add_devs_to_index(void)
+int dev_cache_index_devs(void)
{
struct btree_iter *iter = btree_first(_cache.devices);
struct device *dev;
@@ -887,7 +891,7 @@ static void _insert_dirs(struct dm_list *dirs)
"device cache fully", dl->dir);
}
- (void) _add_devs_to_index();
+ (void) dev_cache_index_devs();
}
#else /* UDEV_SYNC_SUPPORT */
diff --git a/lib/device/dev-cache.h b/lib/device/dev-cache.h
index d21f521..0406970 100644
--- a/lib/device/dev-cache.h
+++ b/lib/device/dev-cache.h
@@ -31,6 +31,7 @@ struct dev_filter {
unsigned use_count;
};
+int dev_cache_index_devs(void);
struct dm_list *dev_cache_get_dev_list_for_vgid(const char *vgid);
struct dm_list *dev_cache_get_dev_list_for_lvid(const char *lvid);
diff --git a/lib/filters/filter-persistent.c b/lib/filters/filter-persistent.c
index ed7956c..4e8161e 100644
--- a/lib/filters/filter-persistent.c
+++ b/lib/filters/filter-persistent.c
@@ -129,6 +129,8 @@ int persistent_filter_load(struct dev_filter *f, struct dm_config_tree **cft_out
if (dm_hash_get_num_entries(pf->devices)) {
/* We populated dev_cache ourselves */
dev_cache_scan(0);
+ if (!dev_cache_index_devs())
+ stack;
r = 1;
}
Gitweb: http://git.fedorahosted.org/git/?p=lvm2.git;a=commitdiff;h=91bb202ded059a41…
Commit: 91bb202ded059a4109ff4351825c77c1fcf9197b
Parent: bc0372cf9d0f7537c537b46b20703db21bc4a165
Author: Peter Rajnoha <prajnoha(a)redhat.com>
AuthorDate: Wed Mar 30 10:29:35 2016 +0200
Committer: Peter Rajnoha <prajnoha(a)redhat.com>
CommitterDate: Wed Mar 30 10:56:46 2016 +0200
dev-cache: handle situation where device is referenced in sysfs, but the node is not yet in dev dir
It's possible that while a device is already referenced in sysfs, the node
is not yet in /dev directory.
This may happen in some rare cases right after LVs get created - we sync
with udev (or alternatively we create /dev content ourselves) while VG
lock is held. However, dev scan is done without VG lock so devices may
already be in sysfs, but /dev may not be updated yet if we call LVM command
right after LV creation (so the fact that fs_unlock is done within VG
lock is not usable here much). This is not a problem with devtmpfs as
there's at least kernel name for device in /dev as soon as the sysfs
item exists, but we still support environments without devtmpfs or
where different directory for dev nodes is used (e.g. our test suite).
This patch covers these situations by tracking such devices in
_cache.sysfs_only_names helper hash for the vgid/lvid check to work still.
This also resolves commit 6129d2e64d14047169048775dc7081135c0fcc50
which was then reverted by commit 109b7e2095a7bc5603bf79db0224b8399463af7c
due to performance issues it may have brought (...and it didn't resolve
the problem fully anyway).
---
WHATS_NEW | 1 +
lib/device/dev-cache.c | 38 +++++++++++++++++++++++++++++++++++++-
2 files changed, 38 insertions(+), 1 deletions(-)
diff --git a/WHATS_NEW b/WHATS_NEW
index 3e4152f..ca6077b 100644
--- a/WHATS_NEW
+++ b/WHATS_NEW
@@ -1,5 +1,6 @@
Version 2.02.149 -
==================================
+ Fix holder device not being found in /dev while sysfs has it during dev scan.
Version 2.02.148 - 26th March 2016
==================================
diff --git a/lib/device/dev-cache.c b/lib/device/dev-cache.c
index c0267a9..b3d45b3 100644
--- a/lib/device/dev-cache.c
+++ b/lib/device/dev-cache.c
@@ -40,6 +40,7 @@ struct dir_list {
static struct {
struct dm_pool *mem;
struct dm_hash_table *names;
+ struct dm_hash_table *sysfs_only_names; /* see comments in _get_device_for_sysfs_dev_name_using_devno */
struct dm_hash_table *vgid_index;
struct dm_hash_table *lvid_index;
struct btree *devices;
@@ -433,6 +434,8 @@ static struct device *_get_device_for_sysfs_dev_name_using_devno(const char *dev
char path[PATH_MAX];
char buf[PATH_MAX];
int major, minor;
+ dev_t devno;
+ struct device *dev;
if (dm_snprintf(path, sizeof(path), "%sblock/%s/dev", dm_sysfs_dir(), devname) < 0) {
log_error("_get_device_for_non_dm_dev: %s: dm_snprintf failed", devname);
@@ -447,7 +450,37 @@ static struct device *_get_device_for_sysfs_dev_name_using_devno(const char *dev
return NULL;
}
- return (struct device *) btree_lookup(_cache.devices, (uint32_t) MKDEV(major, minor));
+ devno = MKDEV(major, minor);
+ if (!(dev = (struct device *) btree_lookup(_cache.devices, (uint32_t) devno))) {
+ /*
+ * If we get here, it means the device is referenced in sysfs, but it's not yet in /dev.
+ * This may happen in some rare cases right after LVs get created - we sync with udev
+ * (or alternatively we create /dev content ourselves) while VG lock is held. However,
+ * dev scan is done without VG lock so devices may already be in sysfs, but /dev may
+ * not be updated yet if we call LVM command right after LV creation. This is not a
+ * problem with devtmpfs as there's at least kernel name for device in /dev as soon
+ * as the sysfs item exists, but we still support environments without devtmpfs or
+ * where different directory for dev nodes is used (e.g. our test suite). So track
+ * such devices in _cache.sysfs_only_names hash for the vgid/lvid check to work still.
+ */
+ if (!_cache.sysfs_only_names) {
+ if (!(_cache.sysfs_only_names = dm_hash_create(32))) {
+ log_error("Failed to create hash in dev cache for sysfs-only devices.");
+ return NULL;
+ }
+ }
+
+ if (!(dev = (struct device *) dm_hash_lookup(_cache.sysfs_only_names, devname))) {
+ if (!(dev = _dev_create(devno)))
+ return_NULL;
+ if (!dm_hash_insert(_cache.sysfs_only_names, devname, dev)) {
+ log_error("Couldn't add device to sysfs-only hash in dev cache.");
+ return NULL;
+ }
+ }
+ }
+
+ return dev;
}
#define NOT_LVM_UUID "-"
@@ -1092,6 +1125,9 @@ int dev_cache_exit(void)
if (_cache.names)
dm_hash_destroy(_cache.names);
+ if (_cache.sysfs_only_names)
+ dm_hash_destroy(_cache.sysfs_only_names);
+
if (_cache.vgid_index)
dm_hash_destroy(_cache.vgid_index);
Gitweb: http://git.fedorahosted.org/git/?p=lvm2.git;a=commitdiff;h=a6aef38fa130f71a…
Commit: a6aef38fa130f71a4dd16de375027a72cf297b01
Parent: 0000000000000000000000000000000000000000
Author: Alasdair G Kergon <agk(a)redhat.com>
AuthorDate: 2016-03-26 09:05 +0000
Committer: Alasdair G Kergon <agk(a)redhat.com>
CommitterDate: 2016-03-26 09:05 +0000
annotated tag: v2_02_148 has been created
at a6aef38fa130f71a4dd16de375027a72cf297b01 (tag)
tagging b9d07f7a12991ce7437630d2362fcc1a44a37e98 (commit)
replaces v2_02_147
Release 2.02.148.
36 files changed, 744 insertions(+), 140 deletions(-)
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.14 (GNU/Linux)
iEYEABECAAYFAlb2USEACgkQIoGRwVZ+LBdRtgCfZyNDqEKFStgfOKyG8nPINcaJ
wXsAn1ueHB9xQg1eB0r1bOFchY5q2XS8
=KVRq
-----END PGP SIGNATURE-----
Alasdair G Kergon (8):
post-release
report: Add pv_major, pv_minor to reports.
activate: Use macros for target and module names.
libdm: Change _advance_to_next_word to _skip_fields
libdm: Move _skip_fields within file.
raid: Tidy dm_get_status_raid. [HM]
libdm: Raid status region units are sectors
pre-release
Marian Csontos (5):
test: Turn on dbus test
test: Fix checks to skip lvmdbusd tests
test: Fix lvmdbusd tests to work with installed testsuite
test: Remove pidfile after killing the process
test: Move bus configuration to prepare function
Peter Rajnoha (14):
device: add DEV_OPEN_FAILURE flag
dev: detect mismatch between devices used and devices assumed for an LV
metadata: use own mem pool to report PV device mismatch in VG
dev: be safer when reading sysfs properties
tests: add vg-check-devs-used.sh
dev: also check for blank sysfs value containing only '
'
dev: also count with suffixes in UUID for LVs when constructing VGID and LVID index
tests: update vg-check-devs-used.sh
tests: update vg-check-devs-used.sh
coverity: fix some issues reported by coverity for recent code
properties: use proper 'get' variant for unimplemented _pv_major_get and _pv_minor_get fns
monitoring: sync /dev content before contacting dmeventd for monitor/unmonitor
WHATS_NEW: commit 6129d2e64d14047169048775dc7081135c0fcc50
revert: 6129d2e64d14047169048775dc7081135c0fcc50
Tony Asleson (5):
lvmdbusd: Remove --udev in service file
lvmdbusd: Allow PV devices to be referenced by symlink(s)
lvmdbusd: Add lvm flight recorder
lvmdbusd: Change print statements to log_error
lvmdbusd: Add '-' to allowable PV device path chars