From 554da53f003078774cf8a68ae3caa3125333cff0d16ad1cfba931ad4c99f4d33 Mon Sep 17 00:00:00 2001 From: Gang He Date: Fri, 23 Aug 2019 08:35:57 +0000 Subject: [PATCH 1/7] Accepting request 725505 from home:ganghe:branches:openSUSE:Factory Fix the bug 1145231 OBS-URL: https://build.opensuse.org/request/show/725505 OBS-URL: https://build.opensuse.org/package/show/Base:System/lvm2?expand=0&rev=246 --- ..._lvmetad-improve-scan-for-pvscan-all.patch | 220 +++++++++++++++++ ...se-full-md-filter-when-md-1.0-device.patch | 65 +++++ ...se-udev-info-to-improve-md-component.patch | 215 +++++++++++++++++ ...-md-filter-when-md-1.0-devices-are-p.patch | 136 +++++++++++ ...a-version-0.90-is-at-the-end-of-disk.patch | 59 +++++ ...-filter-when-md-1.0-devices-are-pres.patch | 228 ++++++++++++++++++ device-mapper.changes | 11 + device-mapper.spec | 20 +- lvm2-clvm.changes | 11 + lvm2-clvm.spec | 20 +- lvm2.changes | 11 + lvm2.spec | 20 +- 12 files changed, 1004 insertions(+), 12 deletions(-) create mode 100644 bug-1145231_lvmetad-improve-scan-for-pvscan-all.patch create mode 100644 bug-1145231_pvscan-lvmetad-use-full-md-filter-when-md-1.0-device.patch create mode 100644 bug-1145231_pvscan-lvmetad-use-udev-info-to-improve-md-component.patch create mode 100644 bug-1145231_scan-enable-full-md-filter-when-md-1.0-devices-are-p.patch create mode 100644 bug-1145231_scan-md-metadata-version-0.90-is-at-the-end-of-disk.patch create mode 100644 bug-1145231_scan-use-full-md-filter-when-md-1.0-devices-are-pres.patch diff --git a/bug-1145231_lvmetad-improve-scan-for-pvscan-all.patch b/bug-1145231_lvmetad-improve-scan-for-pvscan-all.patch new file mode 100644 index 0000000..0ec2921 --- /dev/null +++ b/bug-1145231_lvmetad-improve-scan-for-pvscan-all.patch @@ -0,0 +1,220 @@ +From c527a0cbfc391645d30407d2dc4a30275c6472f1 Mon Sep 17 00:00:00 2001 +From: David Teigland +Date: Mon, 27 Aug 2018 11:15:35 -0500 +Subject: [PATCH] lvmetad: improve scan for pvscan all + +For 'pvscan --cache' avoid using dev_iter in the loop +after the label_scan by passing the necessary devs back +from the label_scan for the continued pvscan. +The dev_iter functions reapply the filters which will +trigger more io when we don't need or want it. With +many devs, incidental opens from the filters (not controlled +by the label scan) can lead to too many open files. +--- + lib/cache/lvmetad.c | 34 ++++++++++++------------- + lib/label/label.c | 73 +++++++++++++++++++++++++++++++++++++++++++++++++++++ + lib/label/label.h | 1 + + 3 files changed, 91 insertions(+), 17 deletions(-) + +diff --git a/lib/cache/lvmetad.c b/lib/cache/lvmetad.c +index a1ab41aab..acbb52e54 100644 +--- a/lib/cache/lvmetad.c ++++ b/lib/cache/lvmetad.c +@@ -2322,8 +2322,8 @@ bad: + + int lvmetad_pvscan_all_devs(struct cmd_context *cmd, int do_wait) + { +- struct dev_iter *iter; +- struct device *dev; ++ struct device_list *devl, *devl2; ++ struct dm_list scan_devs; + daemon_reply reply; + char *future_token; + const char *reason; +@@ -2339,6 +2339,8 @@ int lvmetad_pvscan_all_devs(struct cmd_context *cmd, int do_wait) + } + + retry: ++ dm_list_init(&scan_devs); ++ + /* + * If another update is in progress, delay to allow it to finish, + * rather than interrupting it with our own update. +@@ -2348,7 +2350,7 @@ int lvmetad_pvscan_all_devs(struct cmd_context *cmd, int do_wait) + replacing_other_update = 1; + } + +- label_scan(cmd); ++ label_scan_pvscan_all(cmd, &scan_devs); + + lvmcache_pvscan_duplicate_check(cmd); + +@@ -2357,19 +2359,14 @@ int lvmetad_pvscan_all_devs(struct cmd_context *cmd, int do_wait) + return 0; + } + +- log_verbose("Scanning all devices to update lvmetad."); +- +- if (!(iter = dev_iter_create(cmd->lvmetad_filter, 1))) { +- log_error("dev_iter creation failed"); +- return 0; +- } ++ log_verbose("Scanning metadata from %d devices to update lvmetad.", ++ dm_list_size(&scan_devs)); + + future_token = _lvmetad_token; + _lvmetad_token = (char *) LVMETAD_TOKEN_UPDATE_IN_PROGRESS; + + if (!_token_update(&replaced_update)) { + log_error("Failed to update lvmetad which had an update in progress."); +- dev_iter_destroy(iter); + _lvmetad_token = future_token; + return 0; + } +@@ -2385,12 +2382,10 @@ int lvmetad_pvscan_all_devs(struct cmd_context *cmd, int do_wait) + if (do_wait && !retries) { + retries = 1; + log_warn("WARNING: lvmetad update in progress, retrying update."); +- dev_iter_destroy(iter); + _lvmetad_token = future_token; + goto retry; + } + log_warn("WARNING: lvmetad update in progress, skipping update."); +- dev_iter_destroy(iter); + _lvmetad_token = future_token; + return 0; + } +@@ -2404,15 +2399,22 @@ int lvmetad_pvscan_all_devs(struct cmd_context *cmd, int do_wait) + was_silent = silent_mode(); + init_silent(1); + +- while ((dev = dev_iter_get(iter))) { ++ dm_list_iterate_items_safe(devl, devl2, &scan_devs) { + if (sigint_caught()) { + ret = 0; + stack; + break; + } + +- if (!lvmetad_pvscan_single(cmd, dev, NULL, NULL)) { +- ret = 0; ++ dm_list_del(&devl->list); ++ ++ ret = lvmetad_pvscan_single(cmd, devl->dev, NULL, NULL); ++ ++ label_scan_invalidate(devl->dev); ++ ++ dm_free(devl); ++ ++ if (!ret) { + stack; + break; + } +@@ -2420,8 +2422,6 @@ int lvmetad_pvscan_all_devs(struct cmd_context *cmd, int do_wait) + + init_silent(was_silent); + +- dev_iter_destroy(iter); +- + _lvmetad_token = future_token; + + /* +diff --git a/lib/label/label.c b/lib/label/label.c +index bafa54366..837033c4b 100644 +--- a/lib/label/label.c ++++ b/lib/label/label.c +@@ -876,6 +876,79 @@ int label_scan(struct cmd_context *cmd) + return 1; + } + ++int label_scan_pvscan_all(struct cmd_context *cmd, struct dm_list *scan_devs) ++{ ++ struct dm_list all_devs; ++ struct dev_iter *iter; ++ struct device_list *devl, *devl2; ++ struct device *dev; ++ ++ log_debug_devs("Finding devices to scan"); ++ ++ dm_list_init(&all_devs); ++ ++ /* ++ * Iterate through all the devices in dev-cache (block devs that appear ++ * under /dev that could possibly hold a PV and are not excluded by ++ * filters). Read each to see if it's an lvm device, and if so ++ * populate lvmcache with some basic info about the device and the VG ++ * on it. This info will be used by the vg_read() phase of the ++ * command. ++ */ ++ dev_cache_scan(); ++ ++ if (!(iter = dev_iter_create(cmd->lvmetad_filter, 0))) { ++ log_error("Scanning failed to get devices."); ++ return 0; ++ } ++ ++ while ((dev = dev_iter_get(iter))) { ++ if (!(devl = dm_zalloc(sizeof(*devl)))) ++ return 0; ++ devl->dev = dev; ++ dm_list_add(&all_devs, &devl->list); ++ ++ /* ++ * label_scan should not generally be called a second time, ++ * so this will usually not be true. ++ */ ++ if (_in_bcache(dev)) { ++ bcache_invalidate_fd(scan_bcache, dev->bcache_fd); ++ _scan_dev_close(dev); ++ } ++ }; ++ dev_iter_destroy(iter); ++ ++ log_debug_devs("Found %d devices to scan", dm_list_size(&all_devs)); ++ ++ if (!scan_bcache) { ++ if (!_setup_bcache(dm_list_size(&all_devs))) ++ return 0; ++ } ++ ++ _scan_list(cmd, cmd->lvmetad_filter, &all_devs, NULL); ++ ++ dm_list_iterate_items_safe(devl, devl2, &all_devs) { ++ dm_list_del(&devl->list); ++ ++ /* ++ * If this device is lvm's then, return it to pvscan ++ * to do the further pvscan. (We could have _scan_list ++ * just set a result in devl indicating the result, but ++ * instead we're just checking indirectly if _scan_list ++ * saved lvmcache info for the dev which also means it's ++ * an lvm device.) ++ */ ++ ++ if (lvmcache_has_dev_info(devl->dev)) ++ dm_list_add(scan_devs, &devl->list); ++ else ++ dm_free(devl); ++ } ++ ++ return 1; ++} ++ + /* + * Scan and cache lvm data from the listed devices. If a device is already + * scanned and cached, this replaces the previously cached lvm data for the +diff --git a/lib/label/label.h b/lib/label/label.h +index 5ed8bc86b..5b83bc734 100644 +--- a/lib/label/label.h ++++ b/lib/label/label.h +@@ -116,6 +116,7 @@ void label_scan_confirm(struct device *dev); + int label_scan_setup_bcache(void); + int label_scan_open(struct device *dev); + int label_scan_open_excl(struct device *dev); ++int label_scan_pvscan_all(struct cmd_context *cmd, struct dm_list *scan_devs); + + /* + * Wrappers around bcache equivalents. +-- +2.12.3 + diff --git a/bug-1145231_pvscan-lvmetad-use-full-md-filter-when-md-1.0-device.patch b/bug-1145231_pvscan-lvmetad-use-full-md-filter-when-md-1.0-device.patch new file mode 100644 index 0000000..766405a --- /dev/null +++ b/bug-1145231_pvscan-lvmetad-use-full-md-filter-when-md-1.0-device.patch @@ -0,0 +1,65 @@ +From a01e1fec0fe7c2fa61577c0e636e907cde7279ea Mon Sep 17 00:00:00 2001 +From: David Teigland +Date: Thu, 29 Nov 2018 14:06:20 -0600 +Subject: [PATCH] pvscan lvmetad: use full md filter when md 1.0 devices are + present + +Apply the same logic to pvscan/lvmetad that was added to +the non-lvmetad label_scan in commit 3fd75d1b: + scan: use full md filter when md 1.0 devices are present + +Before scanning, check if any of the devs on the system are +md 0.90/1.0, and if so make the scan read both the start and +the end of the device so that the components of those md +versions can be ignored. +--- + tools/pvscan.c | 19 +++++++++++++++++++ + 1 file changed, 19 insertions(+) + +diff --git a/tools/pvscan.c b/tools/pvscan.c +index 2915db599..3755684d2 100644 +--- a/tools/pvscan.c ++++ b/tools/pvscan.c +@@ -18,6 +18,8 @@ + #include "lvmetad.h" + #include "lvmcache.h" + ++extern int use_full_md_check; ++ + struct pvscan_params { + int new_pvs_found; + int pvs_found; +@@ -302,6 +304,7 @@ static int _pvscan_cache(struct cmd_context *cmd, int argc, char **argv) + struct dm_list found_vgnames; + struct device *dev; + struct device_list *devl; ++ struct dev_iter *iter; + const char *pv_name; + const char *reason = NULL; + int32_t major = -1; +@@ -443,6 +446,22 @@ static int _pvscan_cache(struct cmd_context *cmd, int argc, char **argv) + /* Creates a list of dev names from /dev, sysfs, etc; does not read any. */ + dev_cache_scan(); + ++ /* See the same check in label_scan() to handle md 0.9/1.0 components. */ ++ if (!(iter = dev_iter_create(cmd->full_filter, 0))) { ++ log_error("Scanning failed to get devices."); ++ return 0; ++ } ++ while ((dev = dev_iter_get(iter))) { ++ if (dev_is_md_with_end_superblock(cmd->dev_types, dev)) { ++ cmd->use_full_md_check = 1; ++ use_full_md_check = 1; ++ log_debug("Found md with end superblock %s", dev_name(dev)); ++ } ++ } ++ dev_iter_destroy(iter); ++ if (!use_full_md_check) ++ log_debug("No md devs with end superblock"); ++ + dm_list_init(&single_devs); + + while (argc--) { +-- +2.12.3 + diff --git a/bug-1145231_pvscan-lvmetad-use-udev-info-to-improve-md-component.patch b/bug-1145231_pvscan-lvmetad-use-udev-info-to-improve-md-component.patch new file mode 100644 index 0000000..61d72cf --- /dev/null +++ b/bug-1145231_pvscan-lvmetad-use-udev-info-to-improve-md-component.patch @@ -0,0 +1,215 @@ +From a188b1e513ed5ca0f5f3702c823490f5610d4495 Mon Sep 17 00:00:00 2001 +From: David Teigland +Date: Fri, 30 Nov 2018 16:32:32 -0600 +Subject: [PATCH] pvscan lvmetad: use udev info to improve md component + detection + +When no md devs are started, pvscan will only scan the start of +an md component, and if it has a superblock at the end may not +exclude it. udev may already have info identifying it as an +md component, so use that. +--- + lib/device/dev-md.c | 14 ++++++++++-- + lib/device/dev-type.c | 62 +++++++++++++++++++++++++++++++++++++++++---------- + lib/device/dev-type.h | 1 + + lib/label/label.c | 6 +++++ + tools/pvscan.c | 3 ++- + 5 files changed, 71 insertions(+), 15 deletions(-) + +diff --git a/lib/device/dev-md.c b/lib/device/dev-md.c +index 185499baf..972850726 100644 +--- a/lib/device/dev-md.c ++++ b/lib/device/dev-md.c +@@ -190,14 +190,24 @@ out: + + int dev_is_md(struct device *dev, uint64_t *offset_found, int full) + { ++ int ret; + + /* + * If non-native device status source is selected, use it + * only if offset_found is not requested as this + * information is not in udev db. + */ +- if ((dev->ext.src == DEV_EXT_NONE) || offset_found) +- return _native_dev_is_md(dev, offset_found, full); ++ if ((dev->ext.src == DEV_EXT_NONE) || offset_found) { ++ ret = _native_dev_is_md(dev, offset_found, full); ++ ++ if (!full) { ++ if (!ret || (ret == -EAGAIN)) { ++ if (udev_dev_is_md_component(dev)) ++ return 1; ++ } ++ } ++ return ret; ++ } + + if (dev->ext.src == DEV_EXT_UDEV) + return _udev_dev_is_md(dev); +diff --git a/lib/device/dev-type.c b/lib/device/dev-type.c +index af4b40760..33ebb73b2 100644 +--- a/lib/device/dev-type.c ++++ b/lib/device/dev-type.c +@@ -1004,25 +1004,23 @@ int dev_is_rotational(struct dev_types *dt, struct device *dev) + * failed already due to timeout in udev - in both cases the + * udev_device_get_is_initialized returns 0. + */ +-#define UDEV_DEV_IS_MPATH_COMPONENT_ITERATION_COUNT 100 +-#define UDEV_DEV_IS_MPATH_COMPONENT_USLEEP 100000 ++#define UDEV_DEV_IS_COMPONENT_ITERATION_COUNT 100 ++#define UDEV_DEV_IS_COMPONENT_USLEEP 100000 + +-int udev_dev_is_mpath_component(struct device *dev) ++static struct udev_device *_udev_get_dev(struct device *dev) + { + struct udev *udev_context = udev_get_library_context(); + struct udev_device *udev_device = NULL; +- const char *value; + int initialized = 0; + unsigned i = 0; +- int ret = 0; + + if (!udev_context) { + log_warn("WARNING: No udev context available to check if device %s is multipath component.", dev_name(dev)); +- return 0; ++ return NULL; + } + + while (1) { +- if (i >= UDEV_DEV_IS_MPATH_COMPONENT_ITERATION_COUNT) ++ if (i >= UDEV_DEV_IS_COMPONENT_ITERATION_COUNT) + break; + + if (udev_device) +@@ -1030,7 +1028,7 @@ int udev_dev_is_mpath_component(struct device *dev) + + if (!(udev_device = udev_device_new_from_devnum(udev_context, 'b', dev->dev))) { + log_warn("WARNING: Failed to get udev device handler for device %s.", dev_name(dev)); +- return 0; ++ return NULL; + } + + #ifdef HAVE_LIBUDEV_UDEV_DEVICE_GET_IS_INITIALIZED +@@ -1042,19 +1040,32 @@ int udev_dev_is_mpath_component(struct device *dev) + #endif + + log_debug("Device %s not initialized in udev database (%u/%u, %u microseconds).", dev_name(dev), +- i + 1, UDEV_DEV_IS_MPATH_COMPONENT_ITERATION_COUNT, +- i * UDEV_DEV_IS_MPATH_COMPONENT_USLEEP); ++ i + 1, UDEV_DEV_IS_COMPONENT_ITERATION_COUNT, ++ i * UDEV_DEV_IS_COMPONENT_USLEEP); + +- usleep(UDEV_DEV_IS_MPATH_COMPONENT_USLEEP); ++ usleep(UDEV_DEV_IS_COMPONENT_USLEEP); + i++; + } + + if (!initialized) { + log_warn("WARNING: Device %s not initialized in udev database even after waiting %u microseconds.", +- dev_name(dev), i * UDEV_DEV_IS_MPATH_COMPONENT_USLEEP); ++ dev_name(dev), i * UDEV_DEV_IS_COMPONENT_USLEEP); + goto out; + } + ++out: ++ return udev_device; ++} ++ ++int udev_dev_is_mpath_component(struct device *dev) ++{ ++ struct udev_device *udev_device; ++ const char *value; ++ int ret = 0; ++ ++ if (!(udev_device = _udev_get_dev(dev))) ++ return 0; ++ + value = udev_device_get_property_value(udev_device, DEV_EXT_UDEV_BLKID_TYPE); + if (value && !strcmp(value, DEV_EXT_UDEV_BLKID_TYPE_MPATH)) { + log_debug("Device %s is multipath component based on blkid variable in udev db (%s=\"%s\").", +@@ -1074,6 +1085,28 @@ out: + udev_device_unref(udev_device); + return ret; + } ++ ++int udev_dev_is_md_component(struct device *dev) ++{ ++ struct udev_device *udev_device; ++ const char *value; ++ int ret = 0; ++ ++ if (!(udev_device = _udev_get_dev(dev))) ++ return 0; ++ ++ value = udev_device_get_property_value(udev_device, DEV_EXT_UDEV_BLKID_TYPE); ++ if (value && !strcmp(value, DEV_EXT_UDEV_BLKID_TYPE_SW_RAID)) { ++ log_debug("Device %s is md raid component based on blkid variable in udev db (%s=\"%s\").", ++ dev_name(dev), DEV_EXT_UDEV_BLKID_TYPE, value); ++ ret = 1; ++ goto out; ++ } ++out: ++ udev_device_unref(udev_device); ++ return ret; ++} ++ + #else + + int udev_dev_is_mpath_component(struct device *dev) +@@ -1081,4 +1114,9 @@ int udev_dev_is_mpath_component(struct device *dev) + return 0; + } + ++int udev_dev_is_md_component(struct device *dev) ++{ ++ return 0; ++} ++ + #endif +diff --git a/lib/device/dev-type.h b/lib/device/dev-type.h +index f629a0278..264438339 100644 +--- a/lib/device/dev-type.h ++++ b/lib/device/dev-type.h +@@ -62,6 +62,7 @@ int dev_is_swap(struct device *dev, uint64_t *signature, int full); + int dev_is_luks(struct device *dev, uint64_t *signature, int full); + int dasd_is_cdl_formatted(struct device *dev); + int udev_dev_is_mpath_component(struct device *dev); ++int udev_dev_is_md_component(struct device *dev); + + int dev_is_lvm1(struct device *dev, char *buf, int buflen); + int dev_is_pool(struct device *dev, char *buf, int buflen); +diff --git a/lib/label/label.c b/lib/label/label.c +index b26ff3370..e01608d2c 100644 +--- a/lib/label/label.c ++++ b/lib/label/label.c +@@ -957,6 +957,12 @@ int label_scan_pvscan_all(struct cmd_context *cmd, struct dm_list *scan_devs) + bcache_invalidate_fd(scan_bcache, dev->bcache_fd); + _scan_dev_close(dev); + } ++ ++ if (dev_is_md_with_end_superblock(cmd->dev_types, dev)) { ++ cmd->use_full_md_check = 1; ++ use_full_md_check = 1; ++ log_debug("Found md component in sysfs with end superblock %s", dev_name(dev)); ++ } + }; + dev_iter_destroy(iter); + +diff --git a/tools/pvscan.c b/tools/pvscan.c +index 3755684d2..877b6b2db 100644 +--- a/tools/pvscan.c ++++ b/tools/pvscan.c +@@ -455,7 +455,8 @@ static int _pvscan_cache(struct cmd_context *cmd, int argc, char **argv) + if (dev_is_md_with_end_superblock(cmd->dev_types, dev)) { + cmd->use_full_md_check = 1; + use_full_md_check = 1; +- log_debug("Found md with end superblock %s", dev_name(dev)); ++ log_debug("Found md component in sysfs with end superblock %s", dev_name(dev)); ++ break; + } + } + dev_iter_destroy(iter); +-- +2.12.3 + diff --git a/bug-1145231_scan-enable-full-md-filter-when-md-1.0-devices-are-p.patch b/bug-1145231_scan-enable-full-md-filter-when-md-1.0-devices-are-p.patch new file mode 100644 index 0000000..beca210 --- /dev/null +++ b/bug-1145231_scan-enable-full-md-filter-when-md-1.0-devices-are-p.patch @@ -0,0 +1,136 @@ +From e7bb50880901a4462e350ce0d272a63aa8440781 Mon Sep 17 00:00:00 2001 +From: David Teigland +Date: Thu, 18 Oct 2018 11:32:32 -0500 +Subject: [PATCH] scan: enable full md filter when md 1.0 devices are present + +The previous commit de2863739f2ea17d89d0e442379109f967b5919d + scan: use full md filter when md 1.0 devices are present + +needs the use_full_md_check flag in the md filter, but +the cmd struct is not available when the filter is run, +so that commit wasn't working. Fix this by setting the +flag in a global variable. + +(This was fixed in the master branch with commit 8eab37593 +in which the cmd struct was passed to the filters, but it +was an intrusive change, so this commit is using the less +intrusive global variable.) +--- + lib/filters/filter-md.c | 33 +++++++-------------------------- + lib/label/label.c | 13 ++++++++++++- + 2 files changed, 19 insertions(+), 27 deletions(-) + +diff --git a/lib/filters/filter-md.c b/lib/filters/filter-md.c +index ad5b8e4e8..e03ff5059 100644 +--- a/lib/filters/filter-md.c ++++ b/lib/filters/filter-md.c +@@ -16,6 +16,9 @@ + #include "lib.h" + #include "filter.h" + ++/* See label.c comment about this hack. */ ++extern int use_full_md_check; ++ + #ifdef __linux__ + + #define MSG_SKIPPING "%s: Skipping md component device" +@@ -80,7 +83,7 @@ + * that will not pass. + */ + +-static int _passes_md_filter(struct device *dev, int full) ++static int _passes_md_filter(struct dev_filter *f, struct device *dev) + { + int ret; + +@@ -91,7 +94,7 @@ static int _passes_md_filter(struct device *dev, int full) + if (!md_filtering()) + return 1; + +- ret = dev_is_md(dev, NULL, full); ++ ret = dev_is_md(dev, NULL, use_full_md_check); + + if (ret == -EAGAIN) { + /* let pass, call again after scan */ +@@ -104,6 +107,7 @@ static int _passes_md_filter(struct device *dev, int full) + return 1; + + if (ret == 1) { ++ log_debug_devs("md filter full %d excluding md component %s", use_full_md_check, dev_name(dev)); + if (dev->ext.src == DEV_EXT_NONE) + log_debug_devs(MSG_SKIPPING, dev_name(dev)); + else +@@ -121,18 +125,6 @@ static int _passes_md_filter(struct device *dev, int full) + return 1; + } + +-static int _passes_md_filter_lite(struct dev_filter *f __attribute__((unused)), +- struct device *dev) +-{ +- return _passes_md_filter(dev, 0); +-} +- +-static int _passes_md_filter_full(struct dev_filter *f __attribute__((unused)), +- struct device *dev) +-{ +- return _passes_md_filter(dev, 1); +-} +- + static void _destroy(struct dev_filter *f) + { + if (f->use_count) +@@ -150,18 +142,7 @@ struct dev_filter *md_filter_create(struct cmd_context *cmd, struct dev_types *d + return NULL; + } + +- /* +- * FIXME: for commands that want a full md check (pvcreate, vgcreate, +- * vgextend), we do an extra read at the end of every device that the +- * filter looks at. This isn't necessary; we only need to do the full +- * md check on the PVs that these commands are trying to use. +- */ +- +- if (cmd->use_full_md_check) +- f->passes_filter = _passes_md_filter_full; +- else +- f->passes_filter = _passes_md_filter_lite; +- ++ f->passes_filter = _passes_md_filter; + f->destroy = _destroy; + f->use_count = 0; + f->private = dt; +diff --git a/lib/label/label.c b/lib/label/label.c +index e76ddd4b2..e5aa2c129 100644 +--- a/lib/label/label.c ++++ b/lib/label/label.c +@@ -27,6 +27,7 @@ + #include + #include + ++int use_full_md_check; + + /* FIXME Allow for larger labels? Restricted to single sector currently */ + +@@ -868,8 +869,18 @@ int label_scan(struct cmd_context *cmd) + * devs in 'pvs', which is a pretty harmless effect from a + * pretty uncommon situation. + */ +- if (dev_is_md_with_end_superblock(cmd->dev_types, dev)) ++ if (dev_is_md_with_end_superblock(cmd->dev_types, dev)) { + cmd->use_full_md_check = 1; ++ ++ /* This is a hack because 'cmd' is not passed ++ into the filters so we can't check the flag ++ in the cmd struct. The master branch has ++ changed the filters in commit 8eab37593eccb ++ to accept cmd, but it's a complex change ++ that I'm trying to avoid in the stable branch. */ ++ ++ use_full_md_check = 1; ++ } + }; + dev_iter_destroy(iter); + +-- +2.12.3 + diff --git a/bug-1145231_scan-md-metadata-version-0.90-is-at-the-end-of-disk.patch b/bug-1145231_scan-md-metadata-version-0.90-is-at-the-end-of-disk.patch new file mode 100644 index 0000000..dd11392 --- /dev/null +++ b/bug-1145231_scan-md-metadata-version-0.90-is-at-the-end-of-disk.patch @@ -0,0 +1,59 @@ +From 0e42ebd6d4012d210084a9ccf8d76f853726de3c Mon Sep 17 00:00:00 2001 +From: Peter Rajnoha +Date: Thu, 29 Nov 2018 11:51:05 -0600 +Subject: [PATCH] scan: md metadata version 0.90 is at the end of disk + +commit de28637 + scan: use full md filter when md 1.0 devices are present + +missed the fact that md superblock version 0.90 also puts +metadata at the end of the device, so the full md filter +needs to be used when either 0.90 or 1.0 is present. +--- + lib/device/dev-md.c | 2 +- + lib/filters/filter-md.c | 6 +++--- + 2 files changed, 4 insertions(+), 4 deletions(-) + +diff --git a/lib/device/dev-md.c b/lib/device/dev-md.c +index 7196dc007..185499baf 100644 +--- a/lib/device/dev-md.c ++++ b/lib/device/dev-md.c +@@ -422,7 +422,7 @@ int dev_is_md_with_end_superblock(struct dev_types *dt, struct device *dev) + log_very_verbose("Device %s %s is %s.", + dev_name(dev), attribute, version_string); + +- if (!strcmp(version_string, "1.0")) ++ if (!strcmp(version_string, "1.0") || !strcmp(version_string, "0.90")) + return 1; + return 0; + } +diff --git a/lib/filters/filter-md.c b/lib/filters/filter-md.c +index e03ff5059..2011e1d5a 100644 +--- a/lib/filters/filter-md.c ++++ b/lib/filters/filter-md.c +@@ -47,7 +47,7 @@ extern int use_full_md_check; + * 3. use udev to detect components + * + * mode 1 will not detect and exclude components of md devices +- * that use superblock version 1.0 which is at the end of the device. ++ * that use superblock version 0.9 or 1.0 which is at the end of the device. + * + * mode 2 will detect these, but mode 2 doubles the i/o done by label + * scan, since there's a read at both the start and end of every device. +@@ -60,11 +60,11 @@ extern int use_full_md_check; + * + * - the command is pvcreate/vgcreate/vgextend, which format new + * devices, and if the user ran these commands on a component +- * device of an md device 1.0, then it would cause problems. ++ * device of an md device 0.9 or 1.0, then it would cause problems. + * FIXME: this would only really need to scan the end of the + * devices being formatted, not all devices. + * +- * - it sees an md device on the system using version 1.0. ++ * - it sees an md device on the system using version 0.9 or 1.0. + * The point of this is just to avoid displaying md components + * from the 'pvs' command. + * FIXME: the cost (double i/o) may not be worth the benefit +-- +2.12.3 + diff --git a/bug-1145231_scan-use-full-md-filter-when-md-1.0-devices-are-pres.patch b/bug-1145231_scan-use-full-md-filter-when-md-1.0-devices-are-pres.patch new file mode 100644 index 0000000..7acaa69 --- /dev/null +++ b/bug-1145231_scan-use-full-md-filter-when-md-1.0-devices-are-pres.patch @@ -0,0 +1,228 @@ +From de2863739f2ea17d89d0e442379109f967b5919d Mon Sep 17 00:00:00 2001 +From: David Teigland +Date: Fri, 15 Jun 2018 11:42:10 -0500 +Subject: [PATCH] scan: use full md filter when md 1.0 devices are present + +The md filter can operate in two native modes: +- normal: reads only the start of each device +- full: reads both the start and end of each device + +md 1.0 devices place the superblock at the end of the device, +so components of this version will only be identified and +excluded when lvm uses the full md filter. + +Previously, the full md filter was only used in commands +that could write to the device. Now, the full md filter +is also applied when there is an md 1.0 device present +on the system. This means the 'pvs' command can avoid +displaying md 1.0 components (at the cost of doubling +the i/o to every device on the system.) + +(The md filter can operate in a third mode, using udev, +but this is disabled by default because there have been +problems with reliability of the info returned from udev.) +--- + lib/cache/lvmcache.c | 2 +- + lib/device/dev-md.c | 27 ++++++++++---- + lib/device/dev-type.h | 1 + + lib/filters/filter-md.c | 74 +++++++++++++++++++------------------- + lib/label/label.c | 14 ++++++++ + test/shell/pvcreate-md-fake-hdr.sh | 3 +- + 6 files changed, 75 insertions(+), 46 deletions(-) + +diff --git a/lib/cache/lvmcache.c b/lib/cache/lvmcache.c +index 3e681a2ba..a2ee0cd43 100644 +--- a/lib/cache/lvmcache.c ++++ b/lib/cache/lvmcache.c +@@ -998,7 +998,7 @@ int lvmcache_dev_is_unchosen_duplicate(struct device *dev) + * unused_duplicate_devs list, and restrict what we allow done with it. + * + * In the case of md components, we usually filter these out in filter-md, +- * but in the special case of md superblocks <= 1.0 where the superblock ++ * but in the special case of md superblock version 1.0 where the superblock + * is at the end of the device, filter-md doesn't always eliminate them + * first, so we eliminate them here. + * +diff --git a/lib/device/dev-md.c b/lib/device/dev-md.c +index f5a736fc2..7196dc007 100644 +--- a/lib/device/dev-md.c ++++ b/lib/device/dev-md.c +@@ -142,13 +142,6 @@ static int _native_dev_is_md(struct device *dev, uint64_t *offset_found, int ful + * command if it should do a full check (cmd->use_full_md_check), + * and set it for commands that could possibly write to an md dev + * (pvcreate/vgcreate/vgextend). +- * +- * For old md versions with magic numbers at the end of devices, +- * the md dev components won't be filtered out here when full is 0, +- * so they will be scanned, and appear as duplicate PVs in lvmcache. +- * The md device itself will be chosen as the primary duplicate, +- * and the components are dropped from the list of duplicates in, +- * i.e. a kind of post-scan filtering. + */ + if (!full) { + sb_offset = 0; +@@ -414,6 +407,26 @@ unsigned long dev_md_stripe_width(struct dev_types *dt, struct device *dev) + return stripe_width_sectors; + } + ++int dev_is_md_with_end_superblock(struct dev_types *dt, struct device *dev) ++{ ++ char version_string[MD_MAX_SYSFS_SIZE]; ++ const char *attribute = "metadata_version"; ++ ++ if (MAJOR(dev->dev) != dt->md_major) ++ return 0; ++ ++ if (_md_sysfs_attribute_scanf(dt, dev, attribute, ++ "%s", &version_string) != 1) ++ return -1; ++ ++ log_very_verbose("Device %s %s is %s.", ++ dev_name(dev), attribute, version_string); ++ ++ if (!strcmp(version_string, "1.0")) ++ return 1; ++ return 0; ++} ++ + #else + + int dev_is_md(struct device *dev __attribute__((unused)), +diff --git a/lib/device/dev-type.h b/lib/device/dev-type.h +index 843e2545b..f629a0278 100644 +--- a/lib/device/dev-type.h ++++ b/lib/device/dev-type.h +@@ -76,6 +76,7 @@ int wipe_known_signatures(struct cmd_context *cmd, struct device *dev, const cha + + /* Type-specific device properties */ + unsigned long dev_md_stripe_width(struct dev_types *dt, struct device *dev); ++int dev_is_md_with_end_superblock(struct dev_types *dt, struct device *dev); + + /* Partitioning */ + int major_max_partitions(struct dev_types *dt, int major); +diff --git a/lib/filters/filter-md.c b/lib/filters/filter-md.c +index ab97b5946..ad5b8e4e8 100644 +--- a/lib/filters/filter-md.c ++++ b/lib/filters/filter-md.c +@@ -29,43 +29,43 @@ + * + * (This is assuming lvm.conf md_component_detection=1.) + * +- * If lvm does *not* ignore the components, then lvm will read lvm +- * labels from the md dev and from the component devs, and will see +- * them all as duplicates of each other. LVM duplicate resolution +- * will then kick in and keep the md dev around to use and ignore +- * the components. +- * +- * It is better to exclude the components as early as possible during +- * lvm processing, ideally before lvm even looks for labels on the +- * components, so that duplicate resolution can be avoided. There are +- * a number of ways that md components can be excluded earlier than +- * the duplicate resolution phase: +- * +- * - When external_device_info_source="udev", lvm discovers a device is +- * an md component by asking udev during the initial filtering phase. +- * However, lvm's default is to not use udev for this. The +- * alternative is "native" detection in which lvm tries to detect +- * md components itself. +- * +- * - When using native detection, lvm's md filter looks for the md +- * superblock at the start of devices. It will see the md superblock +- * on the components, exclude them in the md filter, and avoid +- * handling them later in duplicate resolution. +- * +- * - When using native detection, lvm's md filter will not detect +- * components when the md device has an older superblock version that +- * places the superblock at the end of the device. This case will +- * fall back to duplicate resolution to exclude components. +- * +- * A variation of the description above occurs for lvm commands that +- * intend to create new PVs on devices (pvcreate, vgcreate, vgextend). +- * For these commands, the native md filter also reads the end of all +- * devices to check for the odd md superblocks. +- * +- * (The reason that external_device_info_source is not set to udev by +- * default is that there have be issues with udev not being promptly +- * or reliably updated about md state changes, causing the udev info +- * that lvm uses to be occasionally wrong.) ++ * If lvm does *not* ignore the components, then lvm may read lvm ++ * labels from the component devs and potentially the md dev, ++ * which can trigger duplicate detection, and/or cause lvm to display ++ * md components as PVs rather than ignoring them. ++ * ++ * If scanning md componenents causes duplicates to be seen, then ++ * the lvm duplicate resolution will exclude the components. ++ * ++ * The lvm md filter has three modes: ++ * ++ * 1. look for md superblock at the start of the device ++ * 2. look for md superblock at the start and end of the device ++ * 3. use udev to detect components ++ * ++ * mode 1 will not detect and exclude components of md devices ++ * that use superblock version 1.0 which is at the end of the device. ++ * ++ * mode 2 will detect these, but mode 2 doubles the i/o done by label ++ * scan, since there's a read at both the start and end of every device. ++ * ++ * mode 3 is used when external_device_info_source="udev". It does ++ * not require any io from lvm, but this mode is not used by default ++ * because there have been problems getting reliable info from udev. ++ * ++ * lvm uses mode 2 when: ++ * ++ * - the command is pvcreate/vgcreate/vgextend, which format new ++ * devices, and if the user ran these commands on a component ++ * device of an md device 1.0, then it would cause problems. ++ * FIXME: this would only really need to scan the end of the ++ * devices being formatted, not all devices. ++ * ++ * - it sees an md device on the system using version 1.0. ++ * The point of this is just to avoid displaying md components ++ * from the 'pvs' command. ++ * FIXME: the cost (double i/o) may not be worth the benefit ++ * (not showing md components). + */ + + /* +diff --git a/lib/label/label.c b/lib/label/label.c +index 837033c4b..e76ddd4b2 100644 +--- a/lib/label/label.c ++++ b/lib/label/label.c +@@ -856,6 +856,20 @@ int label_scan(struct cmd_context *cmd) + bcache_invalidate_fd(scan_bcache, dev->bcache_fd); + _scan_dev_close(dev); + } ++ ++ /* ++ * When md devices exist that use the old superblock at the ++ * end of the device, then in order to detect and filter out ++ * the component devices of those md devs, we need to enable ++ * the full md filter which scans both the start and the end ++ * of every device. This doubles the amount of scanning i/o, ++ * which we want to avoid. FIXME: it may not be worth the ++ * cost of double i/o just to avoid displaying md component ++ * devs in 'pvs', which is a pretty harmless effect from a ++ * pretty uncommon situation. ++ */ ++ if (dev_is_md_with_end_superblock(cmd->dev_types, dev)) ++ cmd->use_full_md_check = 1; + }; + dev_iter_destroy(iter); + +diff --git a/test/shell/pvcreate-md-fake-hdr.sh b/test/shell/pvcreate-md-fake-hdr.sh +index b89fe4377..4c9ac7cbc 100644 +--- a/test/shell/pvcreate-md-fake-hdr.sh ++++ b/test/shell/pvcreate-md-fake-hdr.sh +@@ -89,6 +89,7 @@ sleep 1 + # (when mdadm supports repair) + if mdadm --action=repair "$mddev" ; then + sleep 1 ++ pvscan -vvvv + # should be showing correctly PV3 & PV4 +- pvs ++ pvs -vvvv "$dev3" "$dev4" + fi +-- +2.12.3 + diff --git a/device-mapper.changes b/device-mapper.changes index 32b56e9..dd353ad 100644 --- a/device-mapper.changes +++ b/device-mapper.changes @@ -1,3 +1,14 @@ +------------------------------------------------------------------- +Wed Aug 21 10:10:30 UTC 2019 - ghe@suse.com + +- MD devices should be detected by LVM2 with metadata=1.0/0.9 (bsc#1145231) + + bug-1145231_lvmetad-improve-scan-for-pvscan-all.patch + + bug-1145231_scan-use-full-md-filter-when-md-1.0-devices-are-pres.patch + + bug-1145231_scan-enable-full-md-filter-when-md-1.0-devices-are-p.patch + + bug-1145231_scan-md-metadata-version-0.90-is-at-the-end-of-disk.patch + + bug-1145231_pvscan-lvmetad-use-full-md-filter-when-md-1.0-device.patch + + bug-1145231_pvscan-lvmetad-use-udev-info-to-improve-md-component.patch + ------------------------------------------------------------------- Tue Jul 9 10:00:05 UTC 2019 - ghe@suse.com diff --git a/device-mapper.spec b/device-mapper.spec index 30618a2..88f6ef8 100644 --- a/device-mapper.spec +++ b/device-mapper.spec @@ -50,10 +50,16 @@ BuildRoot: %{_tmppath}/%{name}-%{version}-build %{?systemd_requires} ### COMMON-PATCH-BEGIN ### # Upstream patches -Patch0001: bug-1114113_metadata-prevent-writing-beyond-metadata-area.patch -Patch0002: bug-1122666_devices-drop-open-error-message.patch -Patch0003: bug-1137296_pvremove-vgextend-fix-using-device-aliases-with-lvmetad.patch -Patch0004: bug-1135984_cache-support-no_discard_passdown.patch +Patch0001: bug-1145231_lvmetad-improve-scan-for-pvscan-all.patch +Patch0002: bug-1145231_scan-use-full-md-filter-when-md-1.0-devices-are-pres.patch +Patch0003: bug-1145231_scan-enable-full-md-filter-when-md-1.0-devices-are-p.patch +Patch0004: bug-1114113_metadata-prevent-writing-beyond-metadata-area.patch +Patch0005: bug-1145231_scan-md-metadata-version-0.90-is-at-the-end-of-disk.patch +Patch0006: bug-1145231_pvscan-lvmetad-use-full-md-filter-when-md-1.0-device.patch +Patch0007: bug-1145231_pvscan-lvmetad-use-udev-info-to-improve-md-component.patch +Patch0008: bug-1122666_devices-drop-open-error-message.patch +Patch0009: bug-1137296_pvremove-vgextend-fix-using-device-aliases-with-lvmetad.patch +Patch0010: bug-1135984_cache-support-no_discard_passdown.patch # SUSE patches: 1000+ for LVM # Never upstream @@ -78,6 +84,12 @@ Programs and man pages for configuring and using the device mapper. %patch0002 -p1 %patch0003 -p1 %patch0004 -p1 +%patch0005 -p1 +%patch0006 -p1 +%patch0007 -p1 +%patch0008 -p1 +%patch0009 -p1 +%patch0010 -p1 %patch1001 -p1 %patch1002 -p1 %patch1003 -p1 diff --git a/lvm2-clvm.changes b/lvm2-clvm.changes index 32b56e9..dd353ad 100644 --- a/lvm2-clvm.changes +++ b/lvm2-clvm.changes @@ -1,3 +1,14 @@ +------------------------------------------------------------------- +Wed Aug 21 10:10:30 UTC 2019 - ghe@suse.com + +- MD devices should be detected by LVM2 with metadata=1.0/0.9 (bsc#1145231) + + bug-1145231_lvmetad-improve-scan-for-pvscan-all.patch + + bug-1145231_scan-use-full-md-filter-when-md-1.0-devices-are-pres.patch + + bug-1145231_scan-enable-full-md-filter-when-md-1.0-devices-are-p.patch + + bug-1145231_scan-md-metadata-version-0.90-is-at-the-end-of-disk.patch + + bug-1145231_pvscan-lvmetad-use-full-md-filter-when-md-1.0-device.patch + + bug-1145231_pvscan-lvmetad-use-udev-info-to-improve-md-component.patch + ------------------------------------------------------------------- Tue Jul 9 10:00:05 UTC 2019 - ghe@suse.com diff --git a/lvm2-clvm.spec b/lvm2-clvm.spec index c574850..9a56a0d 100644 --- a/lvm2-clvm.spec +++ b/lvm2-clvm.spec @@ -58,10 +58,16 @@ Obsoletes: cmirrord < %{version} Provides: cmirrord = %{version} ### COMMON-PATCH-BEGIN ### # Upstream patches -Patch0001: bug-1114113_metadata-prevent-writing-beyond-metadata-area.patch -Patch0002: bug-1122666_devices-drop-open-error-message.patch -Patch0003: bug-1137296_pvremove-vgextend-fix-using-device-aliases-with-lvmetad.patch -Patch0004: bug-1135984_cache-support-no_discard_passdown.patch +Patch0001: bug-1145231_lvmetad-improve-scan-for-pvscan-all.patch +Patch0002: bug-1145231_scan-use-full-md-filter-when-md-1.0-devices-are-pres.patch +Patch0003: bug-1145231_scan-enable-full-md-filter-when-md-1.0-devices-are-p.patch +Patch0004: bug-1114113_metadata-prevent-writing-beyond-metadata-area.patch +Patch0005: bug-1145231_scan-md-metadata-version-0.90-is-at-the-end-of-disk.patch +Patch0006: bug-1145231_pvscan-lvmetad-use-full-md-filter-when-md-1.0-device.patch +Patch0007: bug-1145231_pvscan-lvmetad-use-udev-info-to-improve-md-component.patch +Patch0008: bug-1122666_devices-drop-open-error-message.patch +Patch0009: bug-1137296_pvremove-vgextend-fix-using-device-aliases-with-lvmetad.patch +Patch0010: bug-1135984_cache-support-no_discard_passdown.patch # SUSE patches: 1000+ for LVM # Never upstream @@ -90,6 +96,12 @@ A daemon for using LVM2 Logival Volumes in a clustered environment. %patch0002 -p1 %patch0003 -p1 %patch0004 -p1 +%patch0005 -p1 +%patch0006 -p1 +%patch0007 -p1 +%patch0008 -p1 +%patch0009 -p1 +%patch0010 -p1 %patch1001 -p1 %patch1002 -p1 %patch1003 -p1 diff --git a/lvm2.changes b/lvm2.changes index 32b56e9..dd353ad 100644 --- a/lvm2.changes +++ b/lvm2.changes @@ -1,3 +1,14 @@ +------------------------------------------------------------------- +Wed Aug 21 10:10:30 UTC 2019 - ghe@suse.com + +- MD devices should be detected by LVM2 with metadata=1.0/0.9 (bsc#1145231) + + bug-1145231_lvmetad-improve-scan-for-pvscan-all.patch + + bug-1145231_scan-use-full-md-filter-when-md-1.0-devices-are-pres.patch + + bug-1145231_scan-enable-full-md-filter-when-md-1.0-devices-are-p.patch + + bug-1145231_scan-md-metadata-version-0.90-is-at-the-end-of-disk.patch + + bug-1145231_pvscan-lvmetad-use-full-md-filter-when-md-1.0-device.patch + + bug-1145231_pvscan-lvmetad-use-udev-info-to-improve-md-component.patch + ------------------------------------------------------------------- Tue Jul 9 10:00:05 UTC 2019 - ghe@suse.com diff --git a/lvm2.spec b/lvm2.spec index b3172a7..5692741 100644 --- a/lvm2.spec +++ b/lvm2.spec @@ -60,10 +60,16 @@ BuildRoot: %{_tmppath}/%{name}-%{version}-build ### COMMON-PATCH-BEGIN ### # Upstream patches -Patch0001: bug-1114113_metadata-prevent-writing-beyond-metadata-area.patch -Patch0002: bug-1122666_devices-drop-open-error-message.patch -Patch0003: bug-1137296_pvremove-vgextend-fix-using-device-aliases-with-lvmetad.patch -Patch0004: bug-1135984_cache-support-no_discard_passdown.patch +Patch0001: bug-1145231_lvmetad-improve-scan-for-pvscan-all.patch +Patch0002: bug-1145231_scan-use-full-md-filter-when-md-1.0-devices-are-pres.patch +Patch0003: bug-1145231_scan-enable-full-md-filter-when-md-1.0-devices-are-p.patch +Patch0004: bug-1114113_metadata-prevent-writing-beyond-metadata-area.patch +Patch0005: bug-1145231_scan-md-metadata-version-0.90-is-at-the-end-of-disk.patch +Patch0006: bug-1145231_pvscan-lvmetad-use-full-md-filter-when-md-1.0-device.patch +Patch0007: bug-1145231_pvscan-lvmetad-use-udev-info-to-improve-md-component.patch +Patch0008: bug-1122666_devices-drop-open-error-message.patch +Patch0009: bug-1137296_pvremove-vgextend-fix-using-device-aliases-with-lvmetad.patch +Patch0010: bug-1135984_cache-support-no_discard_passdown.patch # SUSE patches: 1000+ for LVM # Never upstream @@ -98,6 +104,12 @@ Volume Manager. %patch0002 -p1 %patch0003 -p1 %patch0004 -p1 +%patch0005 -p1 +%patch0006 -p1 +%patch0007 -p1 +%patch0008 -p1 +%patch0009 -p1 +%patch0010 -p1 %patch1001 -p1 %patch1002 -p1 %patch1003 -p1 From 4b652108013df86d75bcf559a506529fe8c20a671b9e6ec4a8adfea21df55dcd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1=C5=A1=20Chv=C3=A1tal?= Date: Fri, 30 Aug 2019 08:34:07 +0000 Subject: [PATCH 2/7] OBS-URL: https://build.opensuse.org/package/show/Base:System/lvm2?expand=0&rev=247 --- LVM2.2.02.180.tgz | 3 - LVM2.2.02.180.tgz.asc | 17 - LVM2.2.03.05.tgz | 3 + LVM2.2.03.05.tgz.asc | 17 + _multibuild | 4 + bsc1080299-detect-clvm-properly.patch | 42 - ...prevent-writing-beyond-metadata-area.patch | 336 --- ...2666_devices-drop-open-error-message.patch | 31 - ...84_cache-support-no_discard_passdown.patch | 71 - ...ix-using-device-aliases-with-lvmetad.patch | 35 - ..._lvmetad-improve-scan-for-pvscan-all.patch | 220 -- ...se-full-md-filter-when-md-1.0-device.patch | 65 - ...se-udev-info-to-improve-md-component.patch | 215 -- ...-md-filter-when-md-1.0-devices-are-p.patch | 136 - ...a-version-0.90-is-at-the-end-of-disk.patch | 59 - ...-filter-when-md-1.0-devices-are-pres.patch | 228 -- ...make_pvscan_service_after_multipathd.patch | 27 - device-mapper.changes | 2215 ----------------- device-mapper.spec | 255 -- lvm2-clvm.changes | 2215 ----------------- lvm2-clvm.spec | 260 -- lvm2.spec | 397 ++- pre_checkin.sh | 22 - 23 files changed, 336 insertions(+), 6537 deletions(-) delete mode 100644 LVM2.2.02.180.tgz delete mode 100644 LVM2.2.02.180.tgz.asc create mode 100644 LVM2.2.03.05.tgz create mode 100644 LVM2.2.03.05.tgz.asc create mode 100644 _multibuild delete mode 100644 bsc1080299-detect-clvm-properly.patch delete mode 100644 bug-1114113_metadata-prevent-writing-beyond-metadata-area.patch delete mode 100644 bug-1122666_devices-drop-open-error-message.patch delete mode 100644 bug-1135984_cache-support-no_discard_passdown.patch delete mode 100644 bug-1137296_pvremove-vgextend-fix-using-device-aliases-with-lvmetad.patch delete mode 100644 bug-1145231_lvmetad-improve-scan-for-pvscan-all.patch delete mode 100644 bug-1145231_pvscan-lvmetad-use-full-md-filter-when-md-1.0-device.patch delete mode 100644 bug-1145231_pvscan-lvmetad-use-udev-info-to-improve-md-component.patch delete mode 100644 bug-1145231_scan-enable-full-md-filter-when-md-1.0-devices-are-p.patch delete mode 100644 bug-1145231_scan-md-metadata-version-0.90-is-at-the-end-of-disk.patch delete mode 100644 bug-1145231_scan-use-full-md-filter-when-md-1.0-devices-are-pres.patch delete mode 100644 bug-998893_make_pvscan_service_after_multipathd.patch delete mode 100644 device-mapper.changes delete mode 100644 device-mapper.spec delete mode 100644 lvm2-clvm.changes delete mode 100644 lvm2-clvm.spec delete mode 100644 pre_checkin.sh diff --git a/LVM2.2.02.180.tgz b/LVM2.2.02.180.tgz deleted file mode 100644 index b9a0cc2..0000000 --- a/LVM2.2.02.180.tgz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:24997e26dfc916151707c9da504d38d0473bec3481a8230b676bc079041bead6 -size 2373004 diff --git a/LVM2.2.02.180.tgz.asc b/LVM2.2.02.180.tgz.asc deleted file mode 100644 index 22a61dc..0000000 --- a/LVM2.2.02.180.tgz.asc +++ /dev/null @@ -1,17 +0,0 @@ ------BEGIN PGP SIGNATURE----- -Version: GnuPG v2.0.22 (GNU/Linux) - -iQIcBAABAgAGBQJbUMBzAAoJELkRJDHlCQOfksgQAKHvpM0f4Nt354cmY6N+ha7i -ikSv6aYsFHuHYOHFKJLPJBcNaMs3oZxBtVN69ZuV0cdJ7oiwrQzQzy94wvcaBOZy -tWRLVI+grVU7Fp4uyFwGe4kkxUSGK3/lQrhtI8j+drwGvKk7O0dg8k/ayb9N1do5 -hx86WsucXDl8EFxCSYGu6D8DaL+5zNhumIBXrjp5IbQunckw1/hRqstfMfs/q7dm -7dLlrCWXuEL6AwHYvSI8BorO2vRX2iUBvovNneooGUnfz+c06VawhgmwMVA3j/Lk -jOyT9ytVAgnI/yvMHKB7RUSbjCHqppvxg0K0Fs3ex2rca+GiSrtXoxsK83xVaqiS -8J3amb46ItLsE+5XUFzsSfFCxAdzEGqdW+/YmgQNRQ0OXHlsg98hTD9zNbhNMIqj -RtlPqzFKdIZfhgRAY3fw2TEAaKkuBG1+AeeJHLrPZFcDOXHyvJqoPYcMb3QeANCx -RhrMNLvs4MKlhXUkeimBJZTKXSCCIwaqtH8rOtYYM9Ei50AQYZddUObVLBoQB01Y -MxC87m1eZgIKipWTNfEXm41M4tLPebkaxT9+IBp38yVcZ1jeXxOk41EXtzcs3PII -/SlUw66qokTgSyXFH+mptqxfB3Xkk8li5wv31yOiVY9MZQzt8fvz/veY5uEGxU/a -1et7yfJMpeJYrMuhtCL4 -=kQvz ------END PGP SIGNATURE----- diff --git a/LVM2.2.03.05.tgz b/LVM2.2.03.05.tgz new file mode 100644 index 0000000..0e42114 --- /dev/null +++ b/LVM2.2.03.05.tgz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ca52815c999b20c6d25e3192f142f081b93d01f07b9d787e99664b169dba2700 +size 2427412 diff --git a/LVM2.2.03.05.tgz.asc b/LVM2.2.03.05.tgz.asc new file mode 100644 index 0000000..385c6ae --- /dev/null +++ b/LVM2.2.03.05.tgz.asc @@ -0,0 +1,17 @@ +-----BEGIN PGP SIGNATURE----- +Version: GnuPG v2.0.22 (GNU/Linux) + +iQIcBAABAgAGBQJdBJ/2AAoJELkRJDHlCQOfLpcP/3eY1mo/MlhPwxsz23a8v7sW +0NYZKqTC0N+xOc0lZ4kwDl1ru/b59T5gGwDinmXCqjP41fvT1PZlFklrsffyCI7i +jy1QO/a06r+w8xTmdwHL08tuhkO6gh8+BKsBChYsJhdGrgBibNRO9HvIlU8LpLFs +i96GXbjoZZ3irKxy+1OxCFer1Hd2ISbBBq/YHnGlA1h24awBsiL4YDNMxC+pIEiV +nqlypDFqeNe29y/IRWrq8D3WxOm5YK40lzTi59blvl5OAIZLnhtRKm+roGTuoML5 +V/ZKbTYxr/LTclUS5cIkSxQEiJxNq0TIP8zVspgAroQFKx5JX8C40bzWEDTVnrsx +3wfJWN0jPyBwPox8/QjqScE1MJ+5G8iUOxbf/SuIpp103eBJ4RR+HzaQeig7BgP/ +cpk80CZwKzlKTMYedmuAE4WK5igqncrdoW2AbtVvVQLUk7cp3tdLvxMyH2z+jv5D +DCpWHqc5eB+sMmD4+Vjp6Mrg2ViSEMdAmorTX0TPrd5meos39Ged3SUZ5v0M7N0q +Lhj2jT2oqPGXKp6/7HLGd4do7zBqX4oaJ1DcfhsEi2kEBIUYdE5o9qlqn22QacpJ +N/waVKjEjmi1AiMiAaZAP/WuutH3UJmpdRZn1Qvd+Xlx1Iw0YbY/8S9NAtKazzFq +iF8g3kZyRIcBfvq94k5q +=NABD +-----END PGP SIGNATURE----- diff --git a/_multibuild b/_multibuild new file mode 100644 index 0000000..f75b3a8 --- /dev/null +++ b/_multibuild @@ -0,0 +1,4 @@ + + devicemapper + lockd + diff --git a/bsc1080299-detect-clvm-properly.patch b/bsc1080299-detect-clvm-properly.patch deleted file mode 100644 index a9c2fce..0000000 --- a/bsc1080299-detect-clvm-properly.patch +++ /dev/null @@ -1,42 +0,0 @@ -Index: LVM2.2.02.178/configure -=================================================================== ---- LVM2.2.02.178.orig/configure -+++ LVM2.2.02.178/configure -@@ -10888,8 +10888,6 @@ if [ `expr x"$CLVMD" : '.*corosync.*'` ! - fi - - ################################################################################ --if test "$CLVMD" != none; then -- - # Check whether --with-clvmd-pidfile was given. - if test "${with_clvmd_pidfile+set}" = set; then : - withval=$with_clvmd_pidfile; CLVMD_PIDFILE=$withval -@@ -10902,8 +10900,6 @@ cat >>confdefs.h <<_ACEOF - #define CLVMD_PIDFILE "$CLVMD_PIDFILE" - _ACEOF - --fi -- - ################################################################################ - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build cluster mirror log daemon" >&5 - $as_echo_n "checking whether to build cluster mirror log daemon... " >&6; } -Index: LVM2.2.02.178/configure.ac -=================================================================== ---- LVM2.2.02.178.orig/configure.ac -+++ LVM2.2.02.178/configure.ac -@@ -959,7 +959,6 @@ fi - - ################################################################################ - dnl -- clvmd pidfile --if test "$CLVMD" != none; then - AC_ARG_WITH(clvmd-pidfile, - AC_HELP_STRING([--with-clvmd-pidfile=PATH], - [clvmd pidfile [PID_DIR/clvmd.pid]]), -@@ -967,7 +966,6 @@ if test "$CLVMD" != none; then - CLVMD_PIDFILE="$DEFAULT_PID_DIR/clvmd.pid") - AC_DEFINE_UNQUOTED(CLVMD_PIDFILE, ["$CLVMD_PIDFILE"], - [Path to clvmd pidfile.]) --fi - - ################################################################################ - dnl -- Build cluster mirror log daemon diff --git a/bug-1114113_metadata-prevent-writing-beyond-metadata-area.patch b/bug-1114113_metadata-prevent-writing-beyond-metadata-area.patch deleted file mode 100644 index 2083ccf..0000000 --- a/bug-1114113_metadata-prevent-writing-beyond-metadata-area.patch +++ /dev/null @@ -1,336 +0,0 @@ -From ab27d5dc2a5c3bf23ab8fed438f1542015dc723d Mon Sep 17 00:00:00 2001 -From: David Teigland -Date: Mon, 29 Oct 2018 11:06:00 -0500 -Subject: [PATCH] metadata: prevent writing beyond metadata area - -lvm uses a bcache block size of 128K. A bcache block -at the end of the metadata area will overlap the PEs -from which LVs are allocated. How much depends on -alignments. When lvm reads and writes one of these -bcache blocks to update VG metadata, it can also be -reading and writing PEs that belong to an LV. - -If these overlapping PEs are being written to by the -LV user (e.g. filesystem) at the same time that lvm -is modifying VG metadata in the overlapping bcache -block, then the user's updates to the PEs can be lost. - -This patch is a quick hack to prevent lvm from writing -past the end of the metadata area. ---- - lib/device/bcache.c | 79 +++++++++++++++++++++++++++++++++++++++++-- - lib/device/bcache.h | 3 ++ - lib/format_text/format-text.c | 10 ++++++ - lib/label/label.c | 35 ++++++++++++++++++- - lib/label/label.h | 2 ++ - lib/metadata/mirror.c | 4 +++ - 6 files changed, 130 insertions(+), 3 deletions(-) - -diff --git a/lib/device/bcache.c b/lib/device/bcache.c -index 531d83b10..62352563a 100644 ---- a/lib/device/bcache.c -+++ b/lib/device/bcache.c -@@ -156,6 +156,10 @@ static void _async_destroy(struct io_engine *ioe) - dm_free(e); - } - -+static int _last_byte_fd; -+static uint64_t _last_byte_offset; -+static int _last_byte_sector_size; -+ - static bool _async_issue(struct io_engine *ioe, enum dir d, int fd, - sector_t sb, sector_t se, void *data, void *context) - { -@@ -163,12 +167,53 @@ static bool _async_issue(struct io_engine *ioe, enum dir d, int fd, - struct iocb *cb_array[1]; - struct control_block *cb; - struct async_engine *e = _to_async(ioe); -+ sector_t offset; -+ sector_t nbytes; -+ sector_t limit_nbytes; -+ sector_t extra_nbytes = 0; - - if (((uintptr_t) data) & e->page_mask) { - log_warn("misaligned data buffer"); - return false; - } - -+ offset = sb << SECTOR_SHIFT; -+ nbytes = (se - sb) << SECTOR_SHIFT; -+ -+ /* -+ * If bcache block goes past where lvm wants to write, then clamp it. -+ */ -+ if ((d == DIR_WRITE) && _last_byte_offset && (fd == _last_byte_fd)) { -+ if (offset > _last_byte_offset) { -+ log_error("Limit write at %llu len %llu beyond last byte %llu", -+ (unsigned long long)offset, -+ (unsigned long long)nbytes, -+ (unsigned long long)_last_byte_offset); -+ return false; -+ } -+ -+ if (offset + nbytes > _last_byte_offset) { -+ limit_nbytes = _last_byte_offset - offset; -+ if (limit_nbytes % _last_byte_sector_size) -+ extra_nbytes = _last_byte_sector_size - (limit_nbytes % _last_byte_sector_size); -+ -+ if (extra_nbytes) { -+ log_debug("Limit write at %llu len %llu to len %llu rounded to %llu", -+ (unsigned long long)offset, -+ (unsigned long long)nbytes, -+ (unsigned long long)limit_nbytes, -+ (unsigned long long)(limit_nbytes + extra_nbytes)); -+ nbytes = limit_nbytes + extra_nbytes; -+ } else { -+ log_debug("Limit write at %llu len %llu to len %llu", -+ (unsigned long long)offset, -+ (unsigned long long)nbytes, -+ (unsigned long long)limit_nbytes); -+ nbytes = limit_nbytes; -+ } -+ } -+ } -+ - cb = _cb_alloc(e->cbs, context); - if (!cb) { - log_warn("couldn't allocate control block"); -@@ -179,10 +224,22 @@ static bool _async_issue(struct io_engine *ioe, enum dir d, int fd, - - cb->cb.aio_fildes = (int) fd; - cb->cb.u.c.buf = data; -- cb->cb.u.c.offset = sb << SECTOR_SHIFT; -- cb->cb.u.c.nbytes = (se - sb) << SECTOR_SHIFT; -+ cb->cb.u.c.offset = offset; -+ cb->cb.u.c.nbytes = nbytes; - cb->cb.aio_lio_opcode = (d == DIR_READ) ? IO_CMD_PREAD : IO_CMD_PWRITE; - -+#if 0 -+ if (d == DIR_READ) { -+ log_debug("io R off %llu bytes %llu", -+ (unsigned long long)cb->cb.u.c.offset, -+ (unsigned long long)cb->cb.u.c.nbytes); -+ } else { -+ log_debug("io W off %llu bytes %llu", -+ (unsigned long long)cb->cb.u.c.offset, -+ (unsigned long long)cb->cb.u.c.nbytes); -+ } -+#endif -+ - cb_array[0] = &cb->cb; - do { - r = io_submit(e->aio_context, 1, cb_array); -@@ -1153,3 +1210,21 @@ bool bcache_invalidate_fd(struct bcache *cache, int fd) - - //---------------------------------------------------------------- - -+void bcache_set_last_byte(struct bcache *cache, int fd, uint64_t offset, int sector_size) -+{ -+ _last_byte_fd = fd; -+ _last_byte_offset = offset; -+ _last_byte_sector_size = sector_size; -+ if (!sector_size) -+ _last_byte_sector_size = 512; -+} -+ -+void bcache_unset_last_byte(struct bcache *cache, int fd) -+{ -+ if (_last_byte_fd == fd) { -+ _last_byte_fd = 0; -+ _last_byte_offset = 0; -+ _last_byte_sector_size = 0; -+ } -+} -+ -diff --git a/lib/device/bcache.h b/lib/device/bcache.h -index b0aebb49d..cb902ef36 100644 ---- a/lib/device/bcache.h -+++ b/lib/device/bcache.h -@@ -158,6 +158,9 @@ bool bcache_write_bytes(struct bcache *cache, int fd, uint64_t start, size_t len - bool bcache_zero_bytes(struct bcache *cache, int fd, uint64_t start, size_t len); - bool bcache_set_bytes(struct bcache *cache, int fd, uint64_t start, size_t len, uint8_t val); - -+void bcache_set_last_byte(struct bcache *cache, int fd, uint64_t offset, int sector_size); -+void bcache_unset_last_byte(struct bcache *cache, int fd); -+ - //---------------------------------------------------------------- - - #endif -diff --git a/lib/format_text/format-text.c b/lib/format_text/format-text.c -index 5c7b72f8e..4160ba810 100644 ---- a/lib/format_text/format-text.c -+++ b/lib/format_text/format-text.c -@@ -400,10 +400,14 @@ static int _raw_write_mda_header(const struct format_type *fmt, - MDA_HEADER_SIZE - - sizeof(mdah->checksum_xl))); - -+ dev_set_last_byte(dev, start_byte + MDA_HEADER_SIZE); -+ - if (!dev_write_bytes(dev, start_byte, MDA_HEADER_SIZE, mdah)) { -+ dev_unset_last_byte(dev); - log_error("Failed to write mda header to %s fd %d", dev_name(dev), dev->bcache_fd); - return 0; - } -+ dev_unset_last_byte(dev); - - return 1; - } -@@ -677,10 +681,13 @@ static int _vg_write_raw(struct format_instance *fid, struct volume_group *vg, - (unsigned long long)(mdac->rlocn.size - new_wrap), - (unsigned long long)new_wrap); - -+ dev_set_last_byte(mdac->area.dev, mdac->area.start + mdah->size); -+ - if (!dev_write_bytes(mdac->area.dev, mdac->area.start + mdac->rlocn.offset, - (size_t) (mdac->rlocn.size - new_wrap), - fidtc->raw_metadata_buf)) { - log_error("Failed to write metadata to %s fd %d", dev_name(mdac->area.dev), mdac->area.dev->bcache_fd); -+ dev_unset_last_byte(mdac->area.dev); - goto out; - } - -@@ -694,10 +701,13 @@ static int _vg_write_raw(struct format_instance *fid, struct volume_group *vg, - (size_t) new_wrap, - fidtc->raw_metadata_buf + mdac->rlocn.size - new_wrap)) { - log_error("Failed to write metadata wrap to %s fd %d", dev_name(mdac->area.dev), mdac->area.dev->bcache_fd); -+ dev_unset_last_byte(mdac->area.dev); - goto out; - } - } - -+ dev_unset_last_byte(mdac->area.dev); -+ - mdac->rlocn.checksum = calc_crc(INITIAL_CRC, (uint8_t *)fidtc->raw_metadata_buf, - (uint32_t) (mdac->rlocn.size - - new_wrap)); -diff --git a/lib/label/label.c b/lib/label/label.c -index e5aa2c129..5377847b3 100644 ---- a/lib/label/label.c -+++ b/lib/label/label.c -@@ -173,6 +173,7 @@ int label_write(struct device *dev, struct label *label) - { - char buf[LABEL_SIZE] __attribute__((aligned(8))); - struct label_header *lh = (struct label_header *) buf; -+ uint64_t offset; - int r = 1; - - if (!label->labeller->ops->write) { -@@ -207,11 +208,17 @@ int label_write(struct device *dev, struct label *label) - return 0; - } - -- if (!dev_write_bytes(dev, label->sector << SECTOR_SHIFT, LABEL_SIZE, buf)) { -+ offset = label->sector << SECTOR_SHIFT; -+ -+ dev_set_last_byte(dev, offset + LABEL_SIZE); -+ -+ if (!dev_write_bytes(dev, offset, LABEL_SIZE, buf)) { - log_debug_devs("Failed to write label to %s", dev_name(dev)); - r = 0; - } - -+ dev_unset_last_byte(dev); -+ - return r; - } - -@@ -1354,9 +1361,12 @@ bool dev_write_zeros(struct device *dev, uint64_t start, size_t len) - } - } - -+ dev_set_last_byte(dev, start + len); -+ - if (!bcache_zero_bytes(scan_bcache, dev->bcache_fd, start, len)) { - log_error("Error writing device %s at %llu length %u.", - dev_name(dev), (unsigned long long)start, (uint32_t)len); -+ dev_unset_last_byte(dev); - label_scan_invalidate(dev); - return false; - } -@@ -1364,9 +1374,11 @@ bool dev_write_zeros(struct device *dev, uint64_t start, size_t len) - if (!bcache_flush(scan_bcache)) { - log_error("Error writing device %s at %llu length %u.", - dev_name(dev), (unsigned long long)start, (uint32_t)len); -+ dev_unset_last_byte(dev); - label_scan_invalidate(dev); - return false; - } -+ dev_unset_last_byte(dev); - return true; - } - -@@ -1400,9 +1412,12 @@ bool dev_set_bytes(struct device *dev, uint64_t start, size_t len, uint8_t val) - } - } - -+ dev_set_last_byte(dev, start + len); -+ - if (!bcache_set_bytes(scan_bcache, dev->bcache_fd, start, len, val)) { - log_error("Error writing device %s at %llu length %u.", - dev_name(dev), (unsigned long long)start, (uint32_t)len); -+ dev_unset_last_byte(dev); - label_scan_invalidate(dev); - return false; - } -@@ -1410,9 +1425,27 @@ bool dev_set_bytes(struct device *dev, uint64_t start, size_t len, uint8_t val) - if (!bcache_flush(scan_bcache)) { - log_error("Error writing device %s at %llu length %u.", - dev_name(dev), (unsigned long long)start, (uint32_t)len); -+ dev_unset_last_byte(dev); - label_scan_invalidate(dev); - return false; - } -+ -+ dev_unset_last_byte(dev); - return true; - } - -+void dev_set_last_byte(struct device *dev, uint64_t offset) -+{ -+ unsigned int phys_block_size = 0; -+ unsigned int block_size = 0; -+ -+ dev_get_block_size(dev, &phys_block_size, &block_size); -+ -+ bcache_set_last_byte(scan_bcache, dev->bcache_fd, offset, phys_block_size); -+} -+ -+void dev_unset_last_byte(struct device *dev) -+{ -+ bcache_unset_last_byte(scan_bcache, dev->bcache_fd); -+} -+ -diff --git a/lib/label/label.h b/lib/label/label.h -index 5b83bc734..ae6a4f5f4 100644 ---- a/lib/label/label.h -+++ b/lib/label/label.h -@@ -126,5 +126,7 @@ bool dev_read_bytes(struct device *dev, uint64_t start, size_t len, void *data); - bool dev_write_bytes(struct device *dev, uint64_t start, size_t len, void *data); - bool dev_write_zeros(struct device *dev, uint64_t start, size_t len); - bool dev_set_bytes(struct device *dev, uint64_t start, size_t len, uint8_t val); -+void dev_set_last_byte(struct device *dev, uint64_t offset); -+void dev_unset_last_byte(struct device *dev); - - #endif -diff --git a/lib/metadata/mirror.c b/lib/metadata/mirror.c -index c7d8a9e94..b1dcaa0e2 100644 ---- a/lib/metadata/mirror.c -+++ b/lib/metadata/mirror.c -@@ -302,10 +302,14 @@ static int _write_log_header(struct cmd_context *cmd, struct logical_volume *lv) - return 0; - } - -+ dev_set_last_byte(dev, sizeof(log_header)); -+ - if (!dev_write_bytes(dev, UINT64_C(0), sizeof(log_header), &log_header)) { -+ dev_unset_last_byte(dev); - log_error("Failed to write log header to %s.", name); - return 0; - } -+ dev_unset_last_byte(dev); - - label_scan_invalidate(dev); - --- -2.12.3 - diff --git a/bug-1122666_devices-drop-open-error-message.patch b/bug-1122666_devices-drop-open-error-message.patch deleted file mode 100644 index 2dd15ce..0000000 --- a/bug-1122666_devices-drop-open-error-message.patch +++ /dev/null @@ -1,31 +0,0 @@ -From 559cf0cd1e226baf63a98c39572264fbf5c3f6b4 Mon Sep 17 00:00:00 2001 -From: David Teigland -Date: Tue, 23 Apr 2019 09:39:42 -0500 -Subject: [PATCH] devices: drop open error message - -This open error is being printed in more common, -non-error circumstances than expected. After a -number of complaints make it only a debug message. ---- - lib/device/dev-io.c | 5 +---- - 1 file changed, 1 insertion(+), 4 deletions(-) - -diff --git a/lib/device/dev-io.c b/lib/device/dev-io.c -index 2a83a9657..6996a44dc 100644 ---- a/lib/device/dev-io.c -+++ b/lib/device/dev-io.c -@@ -572,10 +572,7 @@ int dev_open_flags(struct device *dev, int flags, int direct, int quiet) - } - } - #endif -- if (quiet) -- log_sys_debug("open", name); -- else -- log_sys_error("open", name); -+ log_sys_debug("open", name); - - dev->flags |= DEV_OPEN_FAILURE; - return 0; --- -2.21.0 - diff --git a/bug-1135984_cache-support-no_discard_passdown.patch b/bug-1135984_cache-support-no_discard_passdown.patch deleted file mode 100644 index 6ac400b..0000000 --- a/bug-1135984_cache-support-no_discard_passdown.patch +++ /dev/null @@ -1,71 +0,0 @@ -From adf9bf80a32500b45b37eb24b98fa7c2c933019e Mon Sep 17 00:00:00 2001 -From: Zdenek Kabelac -Date: Wed, 5 Jun 2019 14:31:34 +0200 -Subject: [PATCH] cache: support no_discard_passdown - -Recent kernel version from kernel commit: -de7180ff908b2bc0342e832dbdaa9a5f1ecaa33a -started to report in cache status line new flag: -no_discard_passdown - -Whenever lvm spots unknown status it reports: -Unknown feature in status: - -So add reconginzing this feature flag and also report this with - -'lvs -o+kernel_discards' - -When no_discard_passdown is found in status 'nopassdown' gets reported -for this field (roughly matching what we report for thin-pools). ---- - WHATS_NEW | 1 + - WHATS_NEW_DM | 1 + - lib/metadata/lv.c | 5 +++++ - libdm/libdevmapper.h | 1 + - libdm/libdm-targets.c | 2 ++ - 5 files changed, 10 insertions(+) - -diff --git a/lib/metadata/lv.c b/lib/metadata/lv.c -index 2abe42db7..538b292a2 100644 ---- a/lib/metadata/lv.c -+++ b/lib/metadata/lv.c -@@ -245,6 +245,11 @@ char *lvseg_kernel_discards_dup_with_info_and_seg_status(struct dm_pool *mem, co - return 0; - } - s = get_pool_discards_name(d); -+ } else if (lvdm->seg_status.type == SEG_STATUS_CACHE) { -+ if (lvdm->seg_status.cache->feature_flags & -+ DM_CACHE_FEATURE_NO_DISCARD_PASSDOWN) { -+ s = "nopassdown"; -+ } - } - - if (!(ret = dm_pool_strdup(mem, s))) { -diff --git a/libdm/libdevmapper.h b/libdm/libdevmapper.h -index 19032d775..e885f52ae 100644 ---- a/libdm/libdevmapper.h -+++ b/libdm/libdevmapper.h -@@ -1893,6 +1893,7 @@ int dm_tree_node_add_raid_target_with_params_v2(struct dm_tree_node *node, - #define DM_CACHE_FEATURE_WRITETHROUGH 0x00000002 - #define DM_CACHE_FEATURE_PASSTHROUGH 0x00000004 - #define DM_CACHE_FEATURE_METADATA2 0x00000008 /* cache v1.10 */ -+#define DM_CACHE_FEATURE_NO_DISCARD_PASSDOWN 0x00000010 - - struct dm_config_node; - /* -diff --git a/libdm/libdm-targets.c b/libdm/libdm-targets.c -index 876678943..d0a8b4332 100644 ---- a/libdm/libdm-targets.c -+++ b/libdm/libdm-targets.c -@@ -296,6 +296,8 @@ int dm_get_status_cache(struct dm_pool *mem, const char *params, - s->feature_flags |= DM_CACHE_FEATURE_PASSTHROUGH; - else if (!strncmp(p, "metadata2 ", 10)) - s->feature_flags |= DM_CACHE_FEATURE_METADATA2; -+ else if (!strncmp(p, "no_discard_passdown ", 20)) -+ s->feature_flags |= DM_CACHE_FEATURE_NO_DISCARD_PASSDOWN; - else - log_error("Unknown feature in status: %s", params); - --- -2.12.3 - diff --git a/bug-1137296_pvremove-vgextend-fix-using-device-aliases-with-lvmetad.patch b/bug-1137296_pvremove-vgextend-fix-using-device-aliases-with-lvmetad.patch deleted file mode 100644 index 1bb5af4..0000000 --- a/bug-1137296_pvremove-vgextend-fix-using-device-aliases-with-lvmetad.patch +++ /dev/null @@ -1,35 +0,0 @@ -From b13ebfa4c289a5bc6eb4f8ba26126db8e6d78296 Mon Sep 17 00:00:00 2001 -From: David Teigland -Date: Wed, 26 Jun 2019 16:03:42 -0500 -Subject: [PATCH] pvremove/vgextend: fix using device aliases with lvmetad - -These commands were looking for the requested device alias -before dev_cache_scan had created the list of devs on the -system, so they would fail and report the dev wasn't found. ---- - tools/toollib.c | 9 +++++++++ - 1 file changed, 9 insertions(+) - -diff --git a/tools/toollib.c b/tools/toollib.c -index 3221e5f1ca..1b01cccfa2 100644 ---- a/tools/toollib.c -+++ b/tools/toollib.c -@@ -5543,6 +5543,15 @@ int pvcreate_each_device(struct cmd_context *cmd, - - lvmcache_label_scan(cmd); - -+ /* -+ * When using lvmetad, we want to do a dev cache scan here (if not done -+ * already) so that the dev_cache_get just below will be able to find -+ * device aliases. When not using lvmetad, the label_scan just above -+ * has done dev_cache_scan, and this will not be run. -+ */ -+ if (!dev_cache_has_scanned()) -+ dev_cache_scan(); -+ - /* - * Translate arg names into struct device's. - */ --- -2.21.0 - diff --git a/bug-1145231_lvmetad-improve-scan-for-pvscan-all.patch b/bug-1145231_lvmetad-improve-scan-for-pvscan-all.patch deleted file mode 100644 index 0ec2921..0000000 --- a/bug-1145231_lvmetad-improve-scan-for-pvscan-all.patch +++ /dev/null @@ -1,220 +0,0 @@ -From c527a0cbfc391645d30407d2dc4a30275c6472f1 Mon Sep 17 00:00:00 2001 -From: David Teigland -Date: Mon, 27 Aug 2018 11:15:35 -0500 -Subject: [PATCH] lvmetad: improve scan for pvscan all - -For 'pvscan --cache' avoid using dev_iter in the loop -after the label_scan by passing the necessary devs back -from the label_scan for the continued pvscan. -The dev_iter functions reapply the filters which will -trigger more io when we don't need or want it. With -many devs, incidental opens from the filters (not controlled -by the label scan) can lead to too many open files. ---- - lib/cache/lvmetad.c | 34 ++++++++++++------------- - lib/label/label.c | 73 +++++++++++++++++++++++++++++++++++++++++++++++++++++ - lib/label/label.h | 1 + - 3 files changed, 91 insertions(+), 17 deletions(-) - -diff --git a/lib/cache/lvmetad.c b/lib/cache/lvmetad.c -index a1ab41aab..acbb52e54 100644 ---- a/lib/cache/lvmetad.c -+++ b/lib/cache/lvmetad.c -@@ -2322,8 +2322,8 @@ bad: - - int lvmetad_pvscan_all_devs(struct cmd_context *cmd, int do_wait) - { -- struct dev_iter *iter; -- struct device *dev; -+ struct device_list *devl, *devl2; -+ struct dm_list scan_devs; - daemon_reply reply; - char *future_token; - const char *reason; -@@ -2339,6 +2339,8 @@ int lvmetad_pvscan_all_devs(struct cmd_context *cmd, int do_wait) - } - - retry: -+ dm_list_init(&scan_devs); -+ - /* - * If another update is in progress, delay to allow it to finish, - * rather than interrupting it with our own update. -@@ -2348,7 +2350,7 @@ int lvmetad_pvscan_all_devs(struct cmd_context *cmd, int do_wait) - replacing_other_update = 1; - } - -- label_scan(cmd); -+ label_scan_pvscan_all(cmd, &scan_devs); - - lvmcache_pvscan_duplicate_check(cmd); - -@@ -2357,19 +2359,14 @@ int lvmetad_pvscan_all_devs(struct cmd_context *cmd, int do_wait) - return 0; - } - -- log_verbose("Scanning all devices to update lvmetad."); -- -- if (!(iter = dev_iter_create(cmd->lvmetad_filter, 1))) { -- log_error("dev_iter creation failed"); -- return 0; -- } -+ log_verbose("Scanning metadata from %d devices to update lvmetad.", -+ dm_list_size(&scan_devs)); - - future_token = _lvmetad_token; - _lvmetad_token = (char *) LVMETAD_TOKEN_UPDATE_IN_PROGRESS; - - if (!_token_update(&replaced_update)) { - log_error("Failed to update lvmetad which had an update in progress."); -- dev_iter_destroy(iter); - _lvmetad_token = future_token; - return 0; - } -@@ -2385,12 +2382,10 @@ int lvmetad_pvscan_all_devs(struct cmd_context *cmd, int do_wait) - if (do_wait && !retries) { - retries = 1; - log_warn("WARNING: lvmetad update in progress, retrying update."); -- dev_iter_destroy(iter); - _lvmetad_token = future_token; - goto retry; - } - log_warn("WARNING: lvmetad update in progress, skipping update."); -- dev_iter_destroy(iter); - _lvmetad_token = future_token; - return 0; - } -@@ -2404,15 +2399,22 @@ int lvmetad_pvscan_all_devs(struct cmd_context *cmd, int do_wait) - was_silent = silent_mode(); - init_silent(1); - -- while ((dev = dev_iter_get(iter))) { -+ dm_list_iterate_items_safe(devl, devl2, &scan_devs) { - if (sigint_caught()) { - ret = 0; - stack; - break; - } - -- if (!lvmetad_pvscan_single(cmd, dev, NULL, NULL)) { -- ret = 0; -+ dm_list_del(&devl->list); -+ -+ ret = lvmetad_pvscan_single(cmd, devl->dev, NULL, NULL); -+ -+ label_scan_invalidate(devl->dev); -+ -+ dm_free(devl); -+ -+ if (!ret) { - stack; - break; - } -@@ -2420,8 +2422,6 @@ int lvmetad_pvscan_all_devs(struct cmd_context *cmd, int do_wait) - - init_silent(was_silent); - -- dev_iter_destroy(iter); -- - _lvmetad_token = future_token; - - /* -diff --git a/lib/label/label.c b/lib/label/label.c -index bafa54366..837033c4b 100644 ---- a/lib/label/label.c -+++ b/lib/label/label.c -@@ -876,6 +876,79 @@ int label_scan(struct cmd_context *cmd) - return 1; - } - -+int label_scan_pvscan_all(struct cmd_context *cmd, struct dm_list *scan_devs) -+{ -+ struct dm_list all_devs; -+ struct dev_iter *iter; -+ struct device_list *devl, *devl2; -+ struct device *dev; -+ -+ log_debug_devs("Finding devices to scan"); -+ -+ dm_list_init(&all_devs); -+ -+ /* -+ * Iterate through all the devices in dev-cache (block devs that appear -+ * under /dev that could possibly hold a PV and are not excluded by -+ * filters). Read each to see if it's an lvm device, and if so -+ * populate lvmcache with some basic info about the device and the VG -+ * on it. This info will be used by the vg_read() phase of the -+ * command. -+ */ -+ dev_cache_scan(); -+ -+ if (!(iter = dev_iter_create(cmd->lvmetad_filter, 0))) { -+ log_error("Scanning failed to get devices."); -+ return 0; -+ } -+ -+ while ((dev = dev_iter_get(iter))) { -+ if (!(devl = dm_zalloc(sizeof(*devl)))) -+ return 0; -+ devl->dev = dev; -+ dm_list_add(&all_devs, &devl->list); -+ -+ /* -+ * label_scan should not generally be called a second time, -+ * so this will usually not be true. -+ */ -+ if (_in_bcache(dev)) { -+ bcache_invalidate_fd(scan_bcache, dev->bcache_fd); -+ _scan_dev_close(dev); -+ } -+ }; -+ dev_iter_destroy(iter); -+ -+ log_debug_devs("Found %d devices to scan", dm_list_size(&all_devs)); -+ -+ if (!scan_bcache) { -+ if (!_setup_bcache(dm_list_size(&all_devs))) -+ return 0; -+ } -+ -+ _scan_list(cmd, cmd->lvmetad_filter, &all_devs, NULL); -+ -+ dm_list_iterate_items_safe(devl, devl2, &all_devs) { -+ dm_list_del(&devl->list); -+ -+ /* -+ * If this device is lvm's then, return it to pvscan -+ * to do the further pvscan. (We could have _scan_list -+ * just set a result in devl indicating the result, but -+ * instead we're just checking indirectly if _scan_list -+ * saved lvmcache info for the dev which also means it's -+ * an lvm device.) -+ */ -+ -+ if (lvmcache_has_dev_info(devl->dev)) -+ dm_list_add(scan_devs, &devl->list); -+ else -+ dm_free(devl); -+ } -+ -+ return 1; -+} -+ - /* - * Scan and cache lvm data from the listed devices. If a device is already - * scanned and cached, this replaces the previously cached lvm data for the -diff --git a/lib/label/label.h b/lib/label/label.h -index 5ed8bc86b..5b83bc734 100644 ---- a/lib/label/label.h -+++ b/lib/label/label.h -@@ -116,6 +116,7 @@ void label_scan_confirm(struct device *dev); - int label_scan_setup_bcache(void); - int label_scan_open(struct device *dev); - int label_scan_open_excl(struct device *dev); -+int label_scan_pvscan_all(struct cmd_context *cmd, struct dm_list *scan_devs); - - /* - * Wrappers around bcache equivalents. --- -2.12.3 - diff --git a/bug-1145231_pvscan-lvmetad-use-full-md-filter-when-md-1.0-device.patch b/bug-1145231_pvscan-lvmetad-use-full-md-filter-when-md-1.0-device.patch deleted file mode 100644 index 766405a..0000000 --- a/bug-1145231_pvscan-lvmetad-use-full-md-filter-when-md-1.0-device.patch +++ /dev/null @@ -1,65 +0,0 @@ -From a01e1fec0fe7c2fa61577c0e636e907cde7279ea Mon Sep 17 00:00:00 2001 -From: David Teigland -Date: Thu, 29 Nov 2018 14:06:20 -0600 -Subject: [PATCH] pvscan lvmetad: use full md filter when md 1.0 devices are - present - -Apply the same logic to pvscan/lvmetad that was added to -the non-lvmetad label_scan in commit 3fd75d1b: - scan: use full md filter when md 1.0 devices are present - -Before scanning, check if any of the devs on the system are -md 0.90/1.0, and if so make the scan read both the start and -the end of the device so that the components of those md -versions can be ignored. ---- - tools/pvscan.c | 19 +++++++++++++++++++ - 1 file changed, 19 insertions(+) - -diff --git a/tools/pvscan.c b/tools/pvscan.c -index 2915db599..3755684d2 100644 ---- a/tools/pvscan.c -+++ b/tools/pvscan.c -@@ -18,6 +18,8 @@ - #include "lvmetad.h" - #include "lvmcache.h" - -+extern int use_full_md_check; -+ - struct pvscan_params { - int new_pvs_found; - int pvs_found; -@@ -302,6 +304,7 @@ static int _pvscan_cache(struct cmd_context *cmd, int argc, char **argv) - struct dm_list found_vgnames; - struct device *dev; - struct device_list *devl; -+ struct dev_iter *iter; - const char *pv_name; - const char *reason = NULL; - int32_t major = -1; -@@ -443,6 +446,22 @@ static int _pvscan_cache(struct cmd_context *cmd, int argc, char **argv) - /* Creates a list of dev names from /dev, sysfs, etc; does not read any. */ - dev_cache_scan(); - -+ /* See the same check in label_scan() to handle md 0.9/1.0 components. */ -+ if (!(iter = dev_iter_create(cmd->full_filter, 0))) { -+ log_error("Scanning failed to get devices."); -+ return 0; -+ } -+ while ((dev = dev_iter_get(iter))) { -+ if (dev_is_md_with_end_superblock(cmd->dev_types, dev)) { -+ cmd->use_full_md_check = 1; -+ use_full_md_check = 1; -+ log_debug("Found md with end superblock %s", dev_name(dev)); -+ } -+ } -+ dev_iter_destroy(iter); -+ if (!use_full_md_check) -+ log_debug("No md devs with end superblock"); -+ - dm_list_init(&single_devs); - - while (argc--) { --- -2.12.3 - diff --git a/bug-1145231_pvscan-lvmetad-use-udev-info-to-improve-md-component.patch b/bug-1145231_pvscan-lvmetad-use-udev-info-to-improve-md-component.patch deleted file mode 100644 index 61d72cf..0000000 --- a/bug-1145231_pvscan-lvmetad-use-udev-info-to-improve-md-component.patch +++ /dev/null @@ -1,215 +0,0 @@ -From a188b1e513ed5ca0f5f3702c823490f5610d4495 Mon Sep 17 00:00:00 2001 -From: David Teigland -Date: Fri, 30 Nov 2018 16:32:32 -0600 -Subject: [PATCH] pvscan lvmetad: use udev info to improve md component - detection - -When no md devs are started, pvscan will only scan the start of -an md component, and if it has a superblock at the end may not -exclude it. udev may already have info identifying it as an -md component, so use that. ---- - lib/device/dev-md.c | 14 ++++++++++-- - lib/device/dev-type.c | 62 +++++++++++++++++++++++++++++++++++++++++---------- - lib/device/dev-type.h | 1 + - lib/label/label.c | 6 +++++ - tools/pvscan.c | 3 ++- - 5 files changed, 71 insertions(+), 15 deletions(-) - -diff --git a/lib/device/dev-md.c b/lib/device/dev-md.c -index 185499baf..972850726 100644 ---- a/lib/device/dev-md.c -+++ b/lib/device/dev-md.c -@@ -190,14 +190,24 @@ out: - - int dev_is_md(struct device *dev, uint64_t *offset_found, int full) - { -+ int ret; - - /* - * If non-native device status source is selected, use it - * only if offset_found is not requested as this - * information is not in udev db. - */ -- if ((dev->ext.src == DEV_EXT_NONE) || offset_found) -- return _native_dev_is_md(dev, offset_found, full); -+ if ((dev->ext.src == DEV_EXT_NONE) || offset_found) { -+ ret = _native_dev_is_md(dev, offset_found, full); -+ -+ if (!full) { -+ if (!ret || (ret == -EAGAIN)) { -+ if (udev_dev_is_md_component(dev)) -+ return 1; -+ } -+ } -+ return ret; -+ } - - if (dev->ext.src == DEV_EXT_UDEV) - return _udev_dev_is_md(dev); -diff --git a/lib/device/dev-type.c b/lib/device/dev-type.c -index af4b40760..33ebb73b2 100644 ---- a/lib/device/dev-type.c -+++ b/lib/device/dev-type.c -@@ -1004,25 +1004,23 @@ int dev_is_rotational(struct dev_types *dt, struct device *dev) - * failed already due to timeout in udev - in both cases the - * udev_device_get_is_initialized returns 0. - */ --#define UDEV_DEV_IS_MPATH_COMPONENT_ITERATION_COUNT 100 --#define UDEV_DEV_IS_MPATH_COMPONENT_USLEEP 100000 -+#define UDEV_DEV_IS_COMPONENT_ITERATION_COUNT 100 -+#define UDEV_DEV_IS_COMPONENT_USLEEP 100000 - --int udev_dev_is_mpath_component(struct device *dev) -+static struct udev_device *_udev_get_dev(struct device *dev) - { - struct udev *udev_context = udev_get_library_context(); - struct udev_device *udev_device = NULL; -- const char *value; - int initialized = 0; - unsigned i = 0; -- int ret = 0; - - if (!udev_context) { - log_warn("WARNING: No udev context available to check if device %s is multipath component.", dev_name(dev)); -- return 0; -+ return NULL; - } - - while (1) { -- if (i >= UDEV_DEV_IS_MPATH_COMPONENT_ITERATION_COUNT) -+ if (i >= UDEV_DEV_IS_COMPONENT_ITERATION_COUNT) - break; - - if (udev_device) -@@ -1030,7 +1028,7 @@ int udev_dev_is_mpath_component(struct device *dev) - - if (!(udev_device = udev_device_new_from_devnum(udev_context, 'b', dev->dev))) { - log_warn("WARNING: Failed to get udev device handler for device %s.", dev_name(dev)); -- return 0; -+ return NULL; - } - - #ifdef HAVE_LIBUDEV_UDEV_DEVICE_GET_IS_INITIALIZED -@@ -1042,19 +1040,32 @@ int udev_dev_is_mpath_component(struct device *dev) - #endif - - log_debug("Device %s not initialized in udev database (%u/%u, %u microseconds).", dev_name(dev), -- i + 1, UDEV_DEV_IS_MPATH_COMPONENT_ITERATION_COUNT, -- i * UDEV_DEV_IS_MPATH_COMPONENT_USLEEP); -+ i + 1, UDEV_DEV_IS_COMPONENT_ITERATION_COUNT, -+ i * UDEV_DEV_IS_COMPONENT_USLEEP); - -- usleep(UDEV_DEV_IS_MPATH_COMPONENT_USLEEP); -+ usleep(UDEV_DEV_IS_COMPONENT_USLEEP); - i++; - } - - if (!initialized) { - log_warn("WARNING: Device %s not initialized in udev database even after waiting %u microseconds.", -- dev_name(dev), i * UDEV_DEV_IS_MPATH_COMPONENT_USLEEP); -+ dev_name(dev), i * UDEV_DEV_IS_COMPONENT_USLEEP); - goto out; - } - -+out: -+ return udev_device; -+} -+ -+int udev_dev_is_mpath_component(struct device *dev) -+{ -+ struct udev_device *udev_device; -+ const char *value; -+ int ret = 0; -+ -+ if (!(udev_device = _udev_get_dev(dev))) -+ return 0; -+ - value = udev_device_get_property_value(udev_device, DEV_EXT_UDEV_BLKID_TYPE); - if (value && !strcmp(value, DEV_EXT_UDEV_BLKID_TYPE_MPATH)) { - log_debug("Device %s is multipath component based on blkid variable in udev db (%s=\"%s\").", -@@ -1074,6 +1085,28 @@ out: - udev_device_unref(udev_device); - return ret; - } -+ -+int udev_dev_is_md_component(struct device *dev) -+{ -+ struct udev_device *udev_device; -+ const char *value; -+ int ret = 0; -+ -+ if (!(udev_device = _udev_get_dev(dev))) -+ return 0; -+ -+ value = udev_device_get_property_value(udev_device, DEV_EXT_UDEV_BLKID_TYPE); -+ if (value && !strcmp(value, DEV_EXT_UDEV_BLKID_TYPE_SW_RAID)) { -+ log_debug("Device %s is md raid component based on blkid variable in udev db (%s=\"%s\").", -+ dev_name(dev), DEV_EXT_UDEV_BLKID_TYPE, value); -+ ret = 1; -+ goto out; -+ } -+out: -+ udev_device_unref(udev_device); -+ return ret; -+} -+ - #else - - int udev_dev_is_mpath_component(struct device *dev) -@@ -1081,4 +1114,9 @@ int udev_dev_is_mpath_component(struct device *dev) - return 0; - } - -+int udev_dev_is_md_component(struct device *dev) -+{ -+ return 0; -+} -+ - #endif -diff --git a/lib/device/dev-type.h b/lib/device/dev-type.h -index f629a0278..264438339 100644 ---- a/lib/device/dev-type.h -+++ b/lib/device/dev-type.h -@@ -62,6 +62,7 @@ int dev_is_swap(struct device *dev, uint64_t *signature, int full); - int dev_is_luks(struct device *dev, uint64_t *signature, int full); - int dasd_is_cdl_formatted(struct device *dev); - int udev_dev_is_mpath_component(struct device *dev); -+int udev_dev_is_md_component(struct device *dev); - - int dev_is_lvm1(struct device *dev, char *buf, int buflen); - int dev_is_pool(struct device *dev, char *buf, int buflen); -diff --git a/lib/label/label.c b/lib/label/label.c -index b26ff3370..e01608d2c 100644 ---- a/lib/label/label.c -+++ b/lib/label/label.c -@@ -957,6 +957,12 @@ int label_scan_pvscan_all(struct cmd_context *cmd, struct dm_list *scan_devs) - bcache_invalidate_fd(scan_bcache, dev->bcache_fd); - _scan_dev_close(dev); - } -+ -+ if (dev_is_md_with_end_superblock(cmd->dev_types, dev)) { -+ cmd->use_full_md_check = 1; -+ use_full_md_check = 1; -+ log_debug("Found md component in sysfs with end superblock %s", dev_name(dev)); -+ } - }; - dev_iter_destroy(iter); - -diff --git a/tools/pvscan.c b/tools/pvscan.c -index 3755684d2..877b6b2db 100644 ---- a/tools/pvscan.c -+++ b/tools/pvscan.c -@@ -455,7 +455,8 @@ static int _pvscan_cache(struct cmd_context *cmd, int argc, char **argv) - if (dev_is_md_with_end_superblock(cmd->dev_types, dev)) { - cmd->use_full_md_check = 1; - use_full_md_check = 1; -- log_debug("Found md with end superblock %s", dev_name(dev)); -+ log_debug("Found md component in sysfs with end superblock %s", dev_name(dev)); -+ break; - } - } - dev_iter_destroy(iter); --- -2.12.3 - diff --git a/bug-1145231_scan-enable-full-md-filter-when-md-1.0-devices-are-p.patch b/bug-1145231_scan-enable-full-md-filter-when-md-1.0-devices-are-p.patch deleted file mode 100644 index beca210..0000000 --- a/bug-1145231_scan-enable-full-md-filter-when-md-1.0-devices-are-p.patch +++ /dev/null @@ -1,136 +0,0 @@ -From e7bb50880901a4462e350ce0d272a63aa8440781 Mon Sep 17 00:00:00 2001 -From: David Teigland -Date: Thu, 18 Oct 2018 11:32:32 -0500 -Subject: [PATCH] scan: enable full md filter when md 1.0 devices are present - -The previous commit de2863739f2ea17d89d0e442379109f967b5919d - scan: use full md filter when md 1.0 devices are present - -needs the use_full_md_check flag in the md filter, but -the cmd struct is not available when the filter is run, -so that commit wasn't working. Fix this by setting the -flag in a global variable. - -(This was fixed in the master branch with commit 8eab37593 -in which the cmd struct was passed to the filters, but it -was an intrusive change, so this commit is using the less -intrusive global variable.) ---- - lib/filters/filter-md.c | 33 +++++++-------------------------- - lib/label/label.c | 13 ++++++++++++- - 2 files changed, 19 insertions(+), 27 deletions(-) - -diff --git a/lib/filters/filter-md.c b/lib/filters/filter-md.c -index ad5b8e4e8..e03ff5059 100644 ---- a/lib/filters/filter-md.c -+++ b/lib/filters/filter-md.c -@@ -16,6 +16,9 @@ - #include "lib.h" - #include "filter.h" - -+/* See label.c comment about this hack. */ -+extern int use_full_md_check; -+ - #ifdef __linux__ - - #define MSG_SKIPPING "%s: Skipping md component device" -@@ -80,7 +83,7 @@ - * that will not pass. - */ - --static int _passes_md_filter(struct device *dev, int full) -+static int _passes_md_filter(struct dev_filter *f, struct device *dev) - { - int ret; - -@@ -91,7 +94,7 @@ static int _passes_md_filter(struct device *dev, int full) - if (!md_filtering()) - return 1; - -- ret = dev_is_md(dev, NULL, full); -+ ret = dev_is_md(dev, NULL, use_full_md_check); - - if (ret == -EAGAIN) { - /* let pass, call again after scan */ -@@ -104,6 +107,7 @@ static int _passes_md_filter(struct device *dev, int full) - return 1; - - if (ret == 1) { -+ log_debug_devs("md filter full %d excluding md component %s", use_full_md_check, dev_name(dev)); - if (dev->ext.src == DEV_EXT_NONE) - log_debug_devs(MSG_SKIPPING, dev_name(dev)); - else -@@ -121,18 +125,6 @@ static int _passes_md_filter(struct device *dev, int full) - return 1; - } - --static int _passes_md_filter_lite(struct dev_filter *f __attribute__((unused)), -- struct device *dev) --{ -- return _passes_md_filter(dev, 0); --} -- --static int _passes_md_filter_full(struct dev_filter *f __attribute__((unused)), -- struct device *dev) --{ -- return _passes_md_filter(dev, 1); --} -- - static void _destroy(struct dev_filter *f) - { - if (f->use_count) -@@ -150,18 +142,7 @@ struct dev_filter *md_filter_create(struct cmd_context *cmd, struct dev_types *d - return NULL; - } - -- /* -- * FIXME: for commands that want a full md check (pvcreate, vgcreate, -- * vgextend), we do an extra read at the end of every device that the -- * filter looks at. This isn't necessary; we only need to do the full -- * md check on the PVs that these commands are trying to use. -- */ -- -- if (cmd->use_full_md_check) -- f->passes_filter = _passes_md_filter_full; -- else -- f->passes_filter = _passes_md_filter_lite; -- -+ f->passes_filter = _passes_md_filter; - f->destroy = _destroy; - f->use_count = 0; - f->private = dt; -diff --git a/lib/label/label.c b/lib/label/label.c -index e76ddd4b2..e5aa2c129 100644 ---- a/lib/label/label.c -+++ b/lib/label/label.c -@@ -27,6 +27,7 @@ - #include - #include - -+int use_full_md_check; - - /* FIXME Allow for larger labels? Restricted to single sector currently */ - -@@ -868,8 +869,18 @@ int label_scan(struct cmd_context *cmd) - * devs in 'pvs', which is a pretty harmless effect from a - * pretty uncommon situation. - */ -- if (dev_is_md_with_end_superblock(cmd->dev_types, dev)) -+ if (dev_is_md_with_end_superblock(cmd->dev_types, dev)) { - cmd->use_full_md_check = 1; -+ -+ /* This is a hack because 'cmd' is not passed -+ into the filters so we can't check the flag -+ in the cmd struct. The master branch has -+ changed the filters in commit 8eab37593eccb -+ to accept cmd, but it's a complex change -+ that I'm trying to avoid in the stable branch. */ -+ -+ use_full_md_check = 1; -+ } - }; - dev_iter_destroy(iter); - --- -2.12.3 - diff --git a/bug-1145231_scan-md-metadata-version-0.90-is-at-the-end-of-disk.patch b/bug-1145231_scan-md-metadata-version-0.90-is-at-the-end-of-disk.patch deleted file mode 100644 index dd11392..0000000 --- a/bug-1145231_scan-md-metadata-version-0.90-is-at-the-end-of-disk.patch +++ /dev/null @@ -1,59 +0,0 @@ -From 0e42ebd6d4012d210084a9ccf8d76f853726de3c Mon Sep 17 00:00:00 2001 -From: Peter Rajnoha -Date: Thu, 29 Nov 2018 11:51:05 -0600 -Subject: [PATCH] scan: md metadata version 0.90 is at the end of disk - -commit de28637 - scan: use full md filter when md 1.0 devices are present - -missed the fact that md superblock version 0.90 also puts -metadata at the end of the device, so the full md filter -needs to be used when either 0.90 or 1.0 is present. ---- - lib/device/dev-md.c | 2 +- - lib/filters/filter-md.c | 6 +++--- - 2 files changed, 4 insertions(+), 4 deletions(-) - -diff --git a/lib/device/dev-md.c b/lib/device/dev-md.c -index 7196dc007..185499baf 100644 ---- a/lib/device/dev-md.c -+++ b/lib/device/dev-md.c -@@ -422,7 +422,7 @@ int dev_is_md_with_end_superblock(struct dev_types *dt, struct device *dev) - log_very_verbose("Device %s %s is %s.", - dev_name(dev), attribute, version_string); - -- if (!strcmp(version_string, "1.0")) -+ if (!strcmp(version_string, "1.0") || !strcmp(version_string, "0.90")) - return 1; - return 0; - } -diff --git a/lib/filters/filter-md.c b/lib/filters/filter-md.c -index e03ff5059..2011e1d5a 100644 ---- a/lib/filters/filter-md.c -+++ b/lib/filters/filter-md.c -@@ -47,7 +47,7 @@ extern int use_full_md_check; - * 3. use udev to detect components - * - * mode 1 will not detect and exclude components of md devices -- * that use superblock version 1.0 which is at the end of the device. -+ * that use superblock version 0.9 or 1.0 which is at the end of the device. - * - * mode 2 will detect these, but mode 2 doubles the i/o done by label - * scan, since there's a read at both the start and end of every device. -@@ -60,11 +60,11 @@ extern int use_full_md_check; - * - * - the command is pvcreate/vgcreate/vgextend, which format new - * devices, and if the user ran these commands on a component -- * device of an md device 1.0, then it would cause problems. -+ * device of an md device 0.9 or 1.0, then it would cause problems. - * FIXME: this would only really need to scan the end of the - * devices being formatted, not all devices. - * -- * - it sees an md device on the system using version 1.0. -+ * - it sees an md device on the system using version 0.9 or 1.0. - * The point of this is just to avoid displaying md components - * from the 'pvs' command. - * FIXME: the cost (double i/o) may not be worth the benefit --- -2.12.3 - diff --git a/bug-1145231_scan-use-full-md-filter-when-md-1.0-devices-are-pres.patch b/bug-1145231_scan-use-full-md-filter-when-md-1.0-devices-are-pres.patch deleted file mode 100644 index 7acaa69..0000000 --- a/bug-1145231_scan-use-full-md-filter-when-md-1.0-devices-are-pres.patch +++ /dev/null @@ -1,228 +0,0 @@ -From de2863739f2ea17d89d0e442379109f967b5919d Mon Sep 17 00:00:00 2001 -From: David Teigland -Date: Fri, 15 Jun 2018 11:42:10 -0500 -Subject: [PATCH] scan: use full md filter when md 1.0 devices are present - -The md filter can operate in two native modes: -- normal: reads only the start of each device -- full: reads both the start and end of each device - -md 1.0 devices place the superblock at the end of the device, -so components of this version will only be identified and -excluded when lvm uses the full md filter. - -Previously, the full md filter was only used in commands -that could write to the device. Now, the full md filter -is also applied when there is an md 1.0 device present -on the system. This means the 'pvs' command can avoid -displaying md 1.0 components (at the cost of doubling -the i/o to every device on the system.) - -(The md filter can operate in a third mode, using udev, -but this is disabled by default because there have been -problems with reliability of the info returned from udev.) ---- - lib/cache/lvmcache.c | 2 +- - lib/device/dev-md.c | 27 ++++++++++---- - lib/device/dev-type.h | 1 + - lib/filters/filter-md.c | 74 +++++++++++++++++++------------------- - lib/label/label.c | 14 ++++++++ - test/shell/pvcreate-md-fake-hdr.sh | 3 +- - 6 files changed, 75 insertions(+), 46 deletions(-) - -diff --git a/lib/cache/lvmcache.c b/lib/cache/lvmcache.c -index 3e681a2ba..a2ee0cd43 100644 ---- a/lib/cache/lvmcache.c -+++ b/lib/cache/lvmcache.c -@@ -998,7 +998,7 @@ int lvmcache_dev_is_unchosen_duplicate(struct device *dev) - * unused_duplicate_devs list, and restrict what we allow done with it. - * - * In the case of md components, we usually filter these out in filter-md, -- * but in the special case of md superblocks <= 1.0 where the superblock -+ * but in the special case of md superblock version 1.0 where the superblock - * is at the end of the device, filter-md doesn't always eliminate them - * first, so we eliminate them here. - * -diff --git a/lib/device/dev-md.c b/lib/device/dev-md.c -index f5a736fc2..7196dc007 100644 ---- a/lib/device/dev-md.c -+++ b/lib/device/dev-md.c -@@ -142,13 +142,6 @@ static int _native_dev_is_md(struct device *dev, uint64_t *offset_found, int ful - * command if it should do a full check (cmd->use_full_md_check), - * and set it for commands that could possibly write to an md dev - * (pvcreate/vgcreate/vgextend). -- * -- * For old md versions with magic numbers at the end of devices, -- * the md dev components won't be filtered out here when full is 0, -- * so they will be scanned, and appear as duplicate PVs in lvmcache. -- * The md device itself will be chosen as the primary duplicate, -- * and the components are dropped from the list of duplicates in, -- * i.e. a kind of post-scan filtering. - */ - if (!full) { - sb_offset = 0; -@@ -414,6 +407,26 @@ unsigned long dev_md_stripe_width(struct dev_types *dt, struct device *dev) - return stripe_width_sectors; - } - -+int dev_is_md_with_end_superblock(struct dev_types *dt, struct device *dev) -+{ -+ char version_string[MD_MAX_SYSFS_SIZE]; -+ const char *attribute = "metadata_version"; -+ -+ if (MAJOR(dev->dev) != dt->md_major) -+ return 0; -+ -+ if (_md_sysfs_attribute_scanf(dt, dev, attribute, -+ "%s", &version_string) != 1) -+ return -1; -+ -+ log_very_verbose("Device %s %s is %s.", -+ dev_name(dev), attribute, version_string); -+ -+ if (!strcmp(version_string, "1.0")) -+ return 1; -+ return 0; -+} -+ - #else - - int dev_is_md(struct device *dev __attribute__((unused)), -diff --git a/lib/device/dev-type.h b/lib/device/dev-type.h -index 843e2545b..f629a0278 100644 ---- a/lib/device/dev-type.h -+++ b/lib/device/dev-type.h -@@ -76,6 +76,7 @@ int wipe_known_signatures(struct cmd_context *cmd, struct device *dev, const cha - - /* Type-specific device properties */ - unsigned long dev_md_stripe_width(struct dev_types *dt, struct device *dev); -+int dev_is_md_with_end_superblock(struct dev_types *dt, struct device *dev); - - /* Partitioning */ - int major_max_partitions(struct dev_types *dt, int major); -diff --git a/lib/filters/filter-md.c b/lib/filters/filter-md.c -index ab97b5946..ad5b8e4e8 100644 ---- a/lib/filters/filter-md.c -+++ b/lib/filters/filter-md.c -@@ -29,43 +29,43 @@ - * - * (This is assuming lvm.conf md_component_detection=1.) - * -- * If lvm does *not* ignore the components, then lvm will read lvm -- * labels from the md dev and from the component devs, and will see -- * them all as duplicates of each other. LVM duplicate resolution -- * will then kick in and keep the md dev around to use and ignore -- * the components. -- * -- * It is better to exclude the components as early as possible during -- * lvm processing, ideally before lvm even looks for labels on the -- * components, so that duplicate resolution can be avoided. There are -- * a number of ways that md components can be excluded earlier than -- * the duplicate resolution phase: -- * -- * - When external_device_info_source="udev", lvm discovers a device is -- * an md component by asking udev during the initial filtering phase. -- * However, lvm's default is to not use udev for this. The -- * alternative is "native" detection in which lvm tries to detect -- * md components itself. -- * -- * - When using native detection, lvm's md filter looks for the md -- * superblock at the start of devices. It will see the md superblock -- * on the components, exclude them in the md filter, and avoid -- * handling them later in duplicate resolution. -- * -- * - When using native detection, lvm's md filter will not detect -- * components when the md device has an older superblock version that -- * places the superblock at the end of the device. This case will -- * fall back to duplicate resolution to exclude components. -- * -- * A variation of the description above occurs for lvm commands that -- * intend to create new PVs on devices (pvcreate, vgcreate, vgextend). -- * For these commands, the native md filter also reads the end of all -- * devices to check for the odd md superblocks. -- * -- * (The reason that external_device_info_source is not set to udev by -- * default is that there have be issues with udev not being promptly -- * or reliably updated about md state changes, causing the udev info -- * that lvm uses to be occasionally wrong.) -+ * If lvm does *not* ignore the components, then lvm may read lvm -+ * labels from the component devs and potentially the md dev, -+ * which can trigger duplicate detection, and/or cause lvm to display -+ * md components as PVs rather than ignoring them. -+ * -+ * If scanning md componenents causes duplicates to be seen, then -+ * the lvm duplicate resolution will exclude the components. -+ * -+ * The lvm md filter has three modes: -+ * -+ * 1. look for md superblock at the start of the device -+ * 2. look for md superblock at the start and end of the device -+ * 3. use udev to detect components -+ * -+ * mode 1 will not detect and exclude components of md devices -+ * that use superblock version 1.0 which is at the end of the device. -+ * -+ * mode 2 will detect these, but mode 2 doubles the i/o done by label -+ * scan, since there's a read at both the start and end of every device. -+ * -+ * mode 3 is used when external_device_info_source="udev". It does -+ * not require any io from lvm, but this mode is not used by default -+ * because there have been problems getting reliable info from udev. -+ * -+ * lvm uses mode 2 when: -+ * -+ * - the command is pvcreate/vgcreate/vgextend, which format new -+ * devices, and if the user ran these commands on a component -+ * device of an md device 1.0, then it would cause problems. -+ * FIXME: this would only really need to scan the end of the -+ * devices being formatted, not all devices. -+ * -+ * - it sees an md device on the system using version 1.0. -+ * The point of this is just to avoid displaying md components -+ * from the 'pvs' command. -+ * FIXME: the cost (double i/o) may not be worth the benefit -+ * (not showing md components). - */ - - /* -diff --git a/lib/label/label.c b/lib/label/label.c -index 837033c4b..e76ddd4b2 100644 ---- a/lib/label/label.c -+++ b/lib/label/label.c -@@ -856,6 +856,20 @@ int label_scan(struct cmd_context *cmd) - bcache_invalidate_fd(scan_bcache, dev->bcache_fd); - _scan_dev_close(dev); - } -+ -+ /* -+ * When md devices exist that use the old superblock at the -+ * end of the device, then in order to detect and filter out -+ * the component devices of those md devs, we need to enable -+ * the full md filter which scans both the start and the end -+ * of every device. This doubles the amount of scanning i/o, -+ * which we want to avoid. FIXME: it may not be worth the -+ * cost of double i/o just to avoid displaying md component -+ * devs in 'pvs', which is a pretty harmless effect from a -+ * pretty uncommon situation. -+ */ -+ if (dev_is_md_with_end_superblock(cmd->dev_types, dev)) -+ cmd->use_full_md_check = 1; - }; - dev_iter_destroy(iter); - -diff --git a/test/shell/pvcreate-md-fake-hdr.sh b/test/shell/pvcreate-md-fake-hdr.sh -index b89fe4377..4c9ac7cbc 100644 ---- a/test/shell/pvcreate-md-fake-hdr.sh -+++ b/test/shell/pvcreate-md-fake-hdr.sh -@@ -89,6 +89,7 @@ sleep 1 - # (when mdadm supports repair) - if mdadm --action=repair "$mddev" ; then - sleep 1 -+ pvscan -vvvv - # should be showing correctly PV3 & PV4 -- pvs -+ pvs -vvvv "$dev3" "$dev4" - fi --- -2.12.3 - diff --git a/bug-998893_make_pvscan_service_after_multipathd.patch b/bug-998893_make_pvscan_service_after_multipathd.patch deleted file mode 100644 index 81ab6ea..0000000 --- a/bug-998893_make_pvscan_service_after_multipathd.patch +++ /dev/null @@ -1,27 +0,0 @@ -From 0da043466ace27eb483114c87ce81feaf00ed682 Mon Sep 17 00:00:00 2001 -From: Eric Ren -Date: Thu, 6 Apr 2017 11:22:30 +0800 -Subject: [PATCH] systemd service: make pvscan service after multipathd - -bsc#998893 -Signed-off-by: Eric Ren ---- - scripts/lvm2_pvscan_systemd_red_hat@.service.in | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/scripts/lvm2_pvscan_systemd_red_hat@.service.in b/scripts/lvm2_pvscan_systemd_red_hat@.service.in -index 03651d5..1d6342f 100644 ---- a/scripts/lvm2_pvscan_systemd_red_hat@.service.in -+++ b/scripts/lvm2_pvscan_systemd_red_hat@.service.in -@@ -4,7 +4,7 @@ Documentation=man:pvscan(8) - StartLimitInterval=0 - BindsTo=dev-block-%i.device - Requires=lvm2-lvmetad.socket --After=lvm2-lvmetad.socket lvm2-lvmetad.service -+After=lvm2-lvmetad.socket lvm2-lvmetad.service multipathd.service - Before=shutdown.target - Conflicts=shutdown.target - --- -2.10.2 - diff --git a/device-mapper.changes b/device-mapper.changes deleted file mode 100644 index dd353ad..0000000 --- a/device-mapper.changes +++ /dev/null @@ -1,2215 +0,0 @@ -------------------------------------------------------------------- -Wed Aug 21 10:10:30 UTC 2019 - ghe@suse.com - -- MD devices should be detected by LVM2 with metadata=1.0/0.9 (bsc#1145231) - + bug-1145231_lvmetad-improve-scan-for-pvscan-all.patch - + bug-1145231_scan-use-full-md-filter-when-md-1.0-devices-are-pres.patch - + bug-1145231_scan-enable-full-md-filter-when-md-1.0-devices-are-p.patch - + bug-1145231_scan-md-metadata-version-0.90-is-at-the-end-of-disk.patch - + bug-1145231_pvscan-lvmetad-use-full-md-filter-when-md-1.0-device.patch - + bug-1145231_pvscan-lvmetad-use-udev-info-to-improve-md-component.patch - -------------------------------------------------------------------- -Tue Jul 9 10:00:05 UTC 2019 - ghe@suse.com - -- Fix unknown feature in status message (bsc#1135984) - + bug-1135984_cache-support-no_discard_passdown.patch - -------------------------------------------------------------------- -Thu Jun 27 02:53:03 UTC 2019 - heming.zhao@suse.com - -- Fix using device aliases with lvmetad (bsc#1137296) - + bug-1137296_pvremove-vgextend-fix-using-device-aliases-with-lvmetad.patch - -------------------------------------------------------------------- -Tue Apr 30 10:20:05 UTC 2019 - ghe@suse.com - -- Fix devices drop open error message (bsc#1122666) - + bug-1122666_devices-drop-open-error-message.patch - -------------------------------------------------------------------- -Tue Mar 19 12:02:02 UTC 2019 - Martin Liška - -- Use %make_build in order to provide verbose output. - -------------------------------------------------------------------- -Fri Feb 1 08:20:15 UTC 2019 - ghe@suse.com - -- Disable the LVM lock daemon using sanlock, in order to avoid the - dependence on sanlock related packages (bsc#1121382) - -------------------------------------------------------------------- -Mon Jan 14 14:23:52 CET 2019 - kukuk@suse.de - -- Use %license instead of %doc [bsc#1082318] - -------------------------------------------------------------------- -Mon Nov 5 08:10:05 UTC 2018 - ghe@suse.com - -- Prevent writing beyond metadata area (bsc#1114113) - + bug-1114113_metadata-prevent-writing-beyond-metadata-area.patch - -------------------------------------------------------------------- -Wed Aug 29 10:20:30 UTC 2018 - ghe@suse.com - -- Fix lvm2 activation issue when used on top of multipath - bsc#998893 - + bug-998893_make_pvscan_service_after_multipathd.patch - -------------------------------------------------------------------- -Mon Jul 23 11:45:20 UTC 2018 - ghe@suse.com - -- Update to LVM2.2.02.180 - Never send any discard ioctl with test mode. - Fix thin-pool alloc which needs same PV for data and metadata. - Extend list of non-memlocked areas with newly linked libs. - Enhance vgcfgrestore to check for active LVs in restored VG. - lvconvert: provide possible layouts between linear and striped/raid - Fix unmonitoring of merging snapshots. - Add missing -l description in fsadm man page. - Cache can uses metadata format 2 with cleaner policy. - Avoid showing internal error in lvs output or pvmoved LVs. - Fix check if resized PV can also fit metadata area. - Reopen devices RDWR only before writing to avoid udev issues. - Change pvresize output confusing when no resize took place. - Fix lvmetad hanging on shutdown. - Fix mem leak in clvmd and more coverity issues. - Fix that pvmove does not work (bsc#1080299) -- Drop patches that have been merged upstream - - fate-323203_lvmlockd-add-lockopt-values-for-skipping-selected-lo.patch - - lvm2-69-dm-lvm-metad.rules-explicit-pvscan-rule.patch - - lvm2-69-dm-lvm-metad.rules-set-systemd-vars-on-chang.patch - - bug-1095960_dev_io-no-discard-in-testmode.patch -- Refresh patches - + bsc1080299-detect-clvm-properly.patch - + bug-950089_test-fix-lvm2-testsuite-build-error.patch -- Update spec files - Fix BuildRequires package name for modprobe (bsc#1102668) - Fix cmirrord LV creation/activation failure (bsc#1091863) -- Fix building error in OBS due to the script interpreter - + tests-specify-python3-as-the-script-interpreter.patch - -------------------------------------------------------------------- -Wed Jul 18 11:33:30 UTC 2018 - ghe@suse.com - -- Fix issuing discard in test mode (bsc#1095960) - + bug-1095960_dev_io-no-discard-in-testmode.patch - -------------------------------------------------------------------- -Tue May 29 10:45:30 UTC 2018 - ghe@suse.com - -- Fix the wrong filter for the cdrom device in /etc/lvm/lvm.conf - (bsc#1081530) - -------------------------------------------------------------------- -Thu Apr 19 10:59:59 UTC 2018 - mwilck@suse.com - -- Fix handling of udev CHANGE events with systemd (bsc#1067312) - + lvm2-69-dm-lvm-metad.rules-explicit-pvscan-rule.patch - + lvm2-69-dm-lvm-metad.rules-set-systemd-vars-on-chang.patch - -------------------------------------------------------------------- -Mon Feb 12 09:01:29 UTC 2018 - tchvatal@suse.com - -- Fix detection of clvm that happens on compile time based on - CLVM_PIDFILE, as we determine these features on runtime - bsc#1080299: - + bsc1080299-detect-clvm-properly.patch - -------------------------------------------------------------------- -Tue Jan 16 11:53:36 UTC 2018 - zren@suse.com - -- clvmd: try to refresh device cache on the first failure - (bsc#978055, bsc#1076042) - + bug-978055_clvmd-try-to-refresh-device-cache-on-the-first-failu.patch - -------------------------------------------------------------------- -Wed Jan 10 10:41:45 UTC 2018 - zren@suse.com - -- lvmlockd: add lockopt values for skipping selected locks (fate#323203) - + fate-323203_lvmlockd-add-lockopt-values-for-skipping-selected-lo.patch - -------------------------------------------------------------------- -Tue Dec 19 07:35:11 UTC 2017 - zren@suse.com - -- device-mapper.spec: fix wrong replacement of DM_VERSION (bsc#1072524) -- Fixes failure of some testcases caused by nc behavior change (bsc#1072624) - + bug-1072624_test-lvmetad_dump-always-timed-out-when-using-nc.patch -- Refreshed fate-31841_fsadm-add-support-for-btrfs.patch -- Update to LVM2.2.02.177 - When writing text metadata content, use complete 4096 byte blocks. - Change text format metadata alignment from 512 to 4096 bytes. - When writing metadata, consistently skip mdas marked as failed. - Refactor and adjust text format metadata alignment calculation. - Ensure _node_send_message always uses clean status of thin pool. - Fix lvmlockd to use pool lock when accessing _tmeta volume. - Report expected sanlock_convert errors only when retries fail. - Avoid blocking in sanlock_convert on SH to EX lock conversion. - Deactivate missing raid LV legs (_rimage_X-missing_Y_Z) on decativation. - Categorise I/O with reason annotations in debug messages. - Allow extending of raid LVs created with --nosync after a failed repair. - Command will lock memory only when suspending volumes. - Merge segments when pvmove is finished. - Activation code for pvmove automatically discovers holding LVs for resume. - Make a pvmove LV locking holder. - Do not change critical section counter on resume path without real resume. - Enhance activation code to automatically suspend pvmove participants. - Prevent conversion of thin volumes to snapshot origin when lvmlockd is used. - Add support for pvmove of cache and snapshot origins. - Avoid using precommitted metadata for suspending pvmove tree. - Deactivate activated LVs on error path when pvmove activation fails. - Add "io" to log/debug_classes for logging low-level I/O. - Avoid importing persistent filter in vgscan/pvscan/vgrename. - Fix memleak of string buffer when vgcfgbackup runs in secure mode. - Do not print error when clvmd cannot find running clvmd. - Prevent start of new merge of snapshot if origin is already being merged. - Fix offered type for raid6_n_6 to raid5 conversion (raid5_n). - Deactivate sub LVs when removing unused cache-pool. - Do not take backup with suspended devices. - -------------------------------------------------------------------- -Tue Nov 21 09:29:02 UTC 2017 - zren@suse.com - -- Update to LVM2.2.02.176: - Keep Install section only in lvm2-{lvmetad,lvmpolld}.socket systemd unit. - Fix segfault in lvm_pv_remove in liblvm. (2.02.173) - Do not allow storing VG metadata with LV without any segment. - Fix printed message when thin snapshot was already merged. - Remove created spare LV when creation of thin-pool failed. - Avoid reading ignored metadata when mda gets used again. - Fix detection of moved PVs in vgsplit. (2.02.175) - Ignore --stripes/--stripesize on RAID takeover - Improve used paths for generated systemd units and init shells. - Disallow creation of snapshot of mirror/raid subLV (was never supported). - Fix regression in more advanced vgname extraction in lvconvert (2.02.169). - Allow lvcreate to be used for caching of _tdata LV. - Avoid internal error when resizing cache type _tdata LV (not yet supported). - Show original converted names when lvconverting LV to pool volume. - Move lib code used only by liblvm into metadata-liblvm.c. - Distinguish between device not found and excluded by filter. - Monitor external origin LVs. - Remove the replicator code, including configure --with-replicators. - Allow lvcreate --type mirror to work with 100%FREE. - Improve selection of resource name for complex volume activation lock. - Avoid cutting first character of resource name for activation lock. - Support for encrypted devices in fsadm. - Improve thin pool overprovisioning and repair warning messages. - Fix incorrect adjustment of region size on striped RaidLVs. -- Drop: bug-960044_lvm2-lvmetad.service-add-Also-lvm2-lvmetad.socket.patch -- Refresh: fate-31841_fsadm-add-support-for-btrfs.patch - -------------------------------------------------------------------- -Thu Nov 2 12:48:23 UTC 2017 - zren@suse.com - -- Re-add a strict requires on sanlock, fate#323203 - -------------------------------------------------------------------- -Mon Oct 23 07:50:33 UTC 2017 - zren@suse.com - -- Update to LVM2.2.02.175 -- Use week dependency for lvm2-lockd on libdlm and sanlock -- Rename/refresh patches: - - display-dm-name-for-lv-name.diff to fate-309425_display-dm-name-for-lv-name.patch - - fsadm-add-support-for-btrfs.patch to fate-31841_fsadm-add-support-for-btrfs.patch - - dmeventd-fix-dso-name-wrong-compare.patch to bug-935623_dmeventd-fix-dso-name-wrong-compare.patch - - lvm2-lvmetad.service-add-Also-lvm2-lvmetad.socket.patch to bug-960044_lvm2-lvmetad.service-add-Also-lvm2-lvmetad.socket.patch - - simplify-special-case-for-md-in-69-dm-lvm-metadata.patch to bug-1012973_simplify-special-case-for-md-in-69-dm-lvm-metadata.patch - - lvm2-testsuite.patch to bug-950089_test-fix-lvm2-testsuite-build-error.patch - -------------------------------------------------------------------- -Thu Sep 14 09:51:18 UTC 2017 - zren@suse.com - -- Drop resource agents for clvmd and cmirror (bsc#1058680) - - clvmd.ocf - - cmirrord.ocf -- Drop all patches for cmirror (bsc#1058661) - - cluster_support_mirrord_log.diff - - cmirrord_improvment_performance.patch - - lvconvert-cluster-mirrored-disk-failed.patch - - improve-mirror-legs-on-different-tag-pvs.patch - - make-mirror-legs-on-different-tag-pvs.patch - - use-mirrortype-asdefault-whenclvmdrunning.patch - -------------------------------------------------------------------- -Fri Aug 18 09:53:39 UTC 2017 - mwilck@suse.com - -- Dropped udev rule patches (bsc#1054363) - * dropped udev_rules-update.diff - * dropped device-mapper-dmsetup-export.patch - * dropped udev-Check-for-DM_NR_VALID_PATHS.patch - * dropped Import-ID_FS_XXX-variables-bnc909358.patch - * dropped 69-dm-lvm-metad.rules-Do-not-process-rules-for-multi.patch - -------------------------------------------------------------------- -Tue Aug 1 05:59:29 UTC 2017 - zren@suse.com - -- Dropped several not-upstreamed patches, some of them neither have - history reference nor patch header, some were temporary workaround - fix. - - device-mapper-gcc-warnings.patch - - device-mapper-type_punning.diff - - fix-closedown-before-thread-finish.patch - - libdm-iface-not-output-error-message-inside-retry-loop.patch - - pvcreate-enhance-the-error-message.patch - - pvmove_support_clustered_vg.diff - - version-plugins-in-libdir.patch - -------------------------------------------------------------------- -Tue Jul 25 13:48:00 UTC 2017 - zren@suse.com - -- Update to LVM2.2.02.173 -- Sync our lvm.conf with V2.02.173 - -------------------------------------------------------------------- -Thu Jul 13 13:09:35 UTC 2017 - tchvatal@suse.com - -- Require device-mapper-devel rather than recommend. It is really - needed (the .h files are required by the lvm2app and lvm2cmd) - -------------------------------------------------------------------- -Thu Jul 6 10:18:09 UTC 2017 - zren@suse.com - -- Don't create symlink for invisible device like thin-pool (bsc#1046591) - * drop 10-dm.rules-Reset-state-variable-for-spurious-events.patch - -------------------------------------------------------------------- -Tue Jul 4 10:24:40 UTC 2017 - zren@suse.com - -- Update to LVM2.2.02.172 -- Cleanup spec file, and refresh patches - * removed device-mapper-link.patch - * removed bug-1033691_tests-missed-to-export-lvm-binary-for-fsadm.patch - * removed Makefile-skip-compliling-daemons-lvmlockd-directory.patch - * added bug-1037309_Makefile-skip-compliling-daemons-lvmlockd-directory.patch - -------------------------------------------------------------------- -Thu Jun 29 16:38:05 UTC 2017 - dimstar@opensuse.org - -- Fix zypper update issue with device-mapper package, see bsc#1045396 - -------------------------------------------------------------------- -Sat Jun 17 16:50:53 UTC 2017 - zren@suse.com - -- Backport fix for lvresize-full.sh failed, see bsc#1033691 - + bug-1033691_tests-missed-to-export-lvm-binary-for-fsadm.patch - -------------------------------------------------------------------- -Sat Jun 17 14:56:58 UTC 2017 - zren@suse.com - -- Fix test failures about read ahead issue, see bsc#1043040 - + bug-1043040_test-fix-read-ahead-issues-in-test-scripts.patch -- Reorder the patches to put them into the right groups - -------------------------------------------------------------------- -Fri Jun 9 19:27:45 UTC 2017 - kukuk@suse.com - -- Don't package dynamic directories in /run - -------------------------------------------------------------------- -Wed May 17 08:21:27 UTC 2017 - zren@suse.com - -- Add lvmlockd-related configuration items in lvm.conf, fate#323203 - -------------------------------------------------------------------- -Tue May 16 07:45:25 UTC 2017 - zren@suse.com - -- Fix compiling issue of lvmlockd, bsc#1037309 - + Makefile-skip-compliling-daemons-lvmlockd-directory.patch - -------------------------------------------------------------------- -Fri May 5 11:33:28 UTC 2017 - tchvatal@suse.com - -- Remove comments breaking scriptlets: - * warning: %postun(libdevmapper1_03-1.02.137-5.1.x86_64) scriptlet failed - -------------------------------------------------------------------- -Wed May 3 09:01:42 UTC 2017 - zren@suse.com - -- This patch has been dropped since SLE12 (bsc#952300) - * removed sys_mount_instead_linux_fs.diff -- Drop obsolete patches: - * removed improve_probing.diff (bsc#49657) - * removed no-inc-audit.diff - * removed suppress_format1_size_warning.diff -- Add more bug/fate references, and reorder the patches accordingly - -------------------------------------------------------------------- -Tue Apr 25 12:00:23 UTC 2017 - zren@suse.com - -- Add check_pv_device_sizes option to check PV and disk sizes - bsc#999878 - -------------------------------------------------------------------- -Mon Apr 24 17:08:34 UTC 2017 - arvidjaar@gmail.com - -- BuildRequire modutils so build script detects modprobe and module - autoloading works again (boo#983221) - -------------------------------------------------------------------- -Tue Apr 18 11:07:01 UTC 2017 - tchvatal@suse.com - -- Update to 2.02.170: - * Few smal fixes around; obsoleted 169 release that was removed - from mirrors -- Refresh patch: - * display-dm-name-for-lv-name.diff - -------------------------------------------------------------------- -Wed Apr 12 01:33:15 UTC 2017 - zren@suse.com - -- Update device mapper version to 1.02.138, see WHATS_NEW_DM for - detailed changelogs - * Drop obsolete lvmchange files accordingly -- Refresh libdm-iface-not-output-error-message-inside-retry-loop.patch -- Refresh make-mirror-legs-on-different-tag-pvs.patch -- device-mapper-dmsetup-export.patch - -------------------------------------------------------------------- -Mon Apr 10 23:08:45 UTC 2017 - jnelson-suse@jamponi.net - -- Version update to 2.02.169 release, see WHATS_NEW and WHATS_NEW_DM - files for detailed changelogs - -------------------------------------------------------------------- -Mon Apr 10 10:41:02 UTC 2017 - tchvatal@suse.com - -- Split configure options to have one per line -- Pass over with spec-cleaner -- Enable internal cache -- Enable lvmpolld - -------------------------------------------------------------------- -Mon Apr 10 07:41:10 UTC 2017 - zren@suse.com - -- Add 'lvm2-lockd' subpackage, fate#323203 to lvm2-clvm to not pull - corosync and other deps to the core lvm2 package - -------------------------------------------------------------------- -Fri Feb 24 10:57:16 UTC 2017 - zren@suse.com - -- Improve the layout and readability of spec files - * Place subpackages' sections at the bottom of spec file, making - the layout more reasonable: 1. main package's spec sections are - contiguous without a break; 2. subpackage's spec spections can - also be placed together. - * Get rid of wild-card usage in %files section; spec file is a - perfect place for packager to know what files are exactly delivered - with each RPMs; staring at wild-card doesn't give much information. - * Put bsc#xxx at previous line of each SUSE patch at my best, some - are still missing. - -------------------------------------------------------------------- -Thu Feb 23 06:27:55 UTC 2017 - zren@suse.com - -- Enable lvmetad in sync with SLE - -------------------------------------------------------------------- -Wed Feb 22 11:25:01 UTC 2017 - zren@suse.com - -- Add systemid feature - * update lvm.conf accordingly - * replace whitespaces with tab in lvm.conf - -------------------------------------------------------------------- -Wed Feb 22 10:43:38 UTC 2017 - zren@suse.com - -- Fix several issues about clvmd/cmorriord RAs (bsc#1023283, - bsc#1025560) - * deal with time values passed down with time units - * make correct "return code" - * fix format issue that tab messes up with spaces - -------------------------------------------------------------------- -Wed Feb 22 06:39:27 UTC 2017 - zren@suse.com - -- udev: simplify special-case for md in 69-dm-lvm-metadata.rules - * fix regression of bsc#1012973 - * drop remove-special-case-for-md-in-69-dm-lvm-metadata.rul.patch - * add simplify-special-case-for-md-in-69-dm-lvm-metadata.patch - -------------------------------------------------------------------- -Fri Jan 20 09:46:27 UTC 2017 - tchvatal@suse.com - -- Remove special case for md (bsc#1012973) - * remove-special-case-for-md-in-69-dm-lvm-metadata.rul.patch - -------------------------------------------------------------------- -Tue Jan 10 09:25:17 UTC 2017 - zlliu@suse.com - -- add a new test package named lvm2-testsuite bnc#950089 - * lvm2-testsuite.patch - -------------------------------------------------------------------- -Wed Dec 28 11:08:23 UTC 2016 - tchvatal@suse.com - -- Version update to 2.02.168 release, see WHATS_NEW and WHATS_NEW_DM - files for detailed changelogs - * Refresh patch cluster_support_mirrord_log.diff - -------------------------------------------------------------------- -Wed Dec 28 10:58:29 UTC 2016 - zlliu@suse.com - -- fix bsc#1015357 about blkid_wiping printed warning. - * Add dependency on pkgconfig(blkid) - -------------------------------------------------------------------- -Fri Sep 9 09:24:19 UTC 2016 - tchvatal@suse.com - -- This is sync commit from Leap/SLE12 only -- Add patch pvcreate-enhance-the-error-message.patch bsc#960744 -- Modify GPL-2.0 to GPL-2.0+ and LGPL-2.1 to LGPL-2.1+ to avoid - license conflict with thin-provisioning-tools which is using GPL-3.0 -- Also contains fix for bsc#969310 -- Fix clvmd.ocf and cmirrord to remove "-d" option for cmirrod - (bsc#971334) -- Fix clvmd.ocf to add lvmconf --enable-cluster before start daemon - when locking_type is not 3 or use_lvmetad is 1 in setting - (bsc#970439) -- Modified spec to enable blkid-wiping (fate#319908) -- Fix clvmd binary not found in case that users still use RA from - ocf:lvm2:clvm (bsc#980200) - Add sbindir=$HA_SBIN_DIR for clvmd.ocf and cmirrord.ocf -- The bsc#979635 wnd bsc#991181 as fixed in past thanks to proper /usr - migration code -- Modified raid10_segtype_default from "mirror" to "raid10"(bsc#982329) -- Remove lvm2-clvmd/cmirrord.service and related activation services - from %service_add _pre/post/preun/postun because we start clvmd - /clmirrord and activate via pacemaker and RA. (bsc#980296) -- Lvchange improve refresh by trying to deactivate snapshot thinLV - in case it's preventing merge process change integrated upstream. - (bsc#984321) -- Fixed in past bsc#992843 -- Fixed by upstream bsc#984321 -- Fixed by upstream bsc#970943 -- 69-dm-lvm-metad.rules: Do not process rules for multipath - devices (bsc#bsc#990538, bsc#986734) - Add: 69-dm-lvm-metad.rules-Do-not-process-rules-for-multi.patch -- Rewrite patches to include patch header: - * 10-dm.rules-Reset-state-variable-for-spurious-events.patch - * device-mapper-link - * device-mapper-type_punning.diff - * udev_rules-update.diff -- Sync also lvm.conf - -------------------------------------------------------------------- -Fri Sep 2 08:23:06 UTC 2016 - tchvatal@suse.com - -- Update to 2.02.164 release, WHATS_NEW for changelog - * Mostly because the old tarball was no longer available - * Refresh fuzz on patch: - + make-mirror-legs-on-different-tag-pvs.patch - + cluster_support_mirrord_log.diff -- Update patch to use correct api: - + make-mirror-legs-on-different-tag-pvs.patch - -------------------------------------------------------------------- -Fri Jul 8 13:43:41 UTC 2016 - tchvatal@suse.com - -- Update to 2.02.160 release, read WHATS_NEW for detailed log. - * Most notable is lvconvert refactor/enhancements - * Refresh patch: - + cluster_support_mirrord_log.diff - -------------------------------------------------------------------- -Tue Jun 7 12:08:24 UTC 2016 - tchvatal@suse.com - -- Add thin-provisioning-tools to deps to fix configure warnings - -------------------------------------------------------------------- -Tue Jun 7 11:45:56 UTC 2016 - tchvatal@suse.com - -- Do not run initrd regenerating twice in post - -------------------------------------------------------------------- -Tue Jun 7 11:40:41 UTC 2016 - tchvatal@suse.com - -- Update to 2.02.155 release, read WHATS_NEW for detailed log. - * Mostly few bugfixes around caching -- Refresh patch pvmove_support_clustered_vg.diff - -------------------------------------------------------------------- -Thu May 19 12:07:09 UTC 2016 - tchvatal@suse.com - -- Add compat symlinks for binaries to /sbin/ to avoid errors on - hardcoded systems, obsolete them with leap 43 - -------------------------------------------------------------------- -Thu May 12 08:12:54 UTC 2016 - tchvatal@suse.com - -- Add conflicts on unsplit packages to allow smooth upgrade path - Also do the conflict properly in baselibs.conf - -------------------------------------------------------------------- -Wed May 11 07:54:19 UTC 2016 - tchvatal@suse.com - -- Add dependencies to the devel pacakge in baselibs.conf - -------------------------------------------------------------------- -Wed May 4 10:36:40 UTC 2016 - tchvatal@suse.com - -- Update patch use-mirrortype-asdefault-whenclvmdrunning.patch - to match up the patches/pvmove_support_clustered_vg.diff and not - use the define declared only when building clvm codebase; - it is still broken if someone changes the PID location, but at least - it now does not depend on clvm code -- Regenerate_initrd in post of the lvm2 main pkg -- Update baselibs to point to split-out devicemapper libraries - -------------------------------------------------------------------- -Wed May 4 09:27:30 UTC 2016 - tchvatal@suse.com - -- Keep in sync the common configuration options that are shared among - all the variants dm/lvm2/clvm - -------------------------------------------------------------------- -Tue May 3 14:03:30 UTC 2016 - tchvatal@suse.com - -- Provide symlinks to 1.02 versions of dm and dm-event libs - * this should sort out binary packages without the need of double - rebuilding - -------------------------------------------------------------------- -Tue May 3 13:23:52 UTC 2016 - tchvatal@suse.com - -- Update to 2.02.152 release, read WHATS_NEW for detailed log. -- Refresh patches: - * 10-dm.rules-Reset-state-variable-for-spurious-events.patch - * device-mapper-gcc-warnings.patch - * device-mapper-link.patch - * udev-Check-for-DM_NR_VALID_PATHS.patch -- Slightly tweak btrfs patch as the code changed for the detection: - * fsadm-add-support-for-btrfs.patch - -------------------------------------------------------------------- -Tue May 3 12:55:34 UTC 2016 - tchvatal@suse.com - -- Build and install properly cluster files -- Remove csm-converter.tar.gz as the evms was last present on sle10 - and thus migration is bit out of scope today - -------------------------------------------------------------------- -Tue May 3 09:23:48 UTC 2016 - tchvatal@suse.com - -- Add pre_checkin.sh to allow syncing of patches between packages: - workflow = add everything to lvm2.spec and run pre_checkin.sh - -------------------------------------------------------------------- -Mon May 2 17:41:55 UTC 2016 - tchvatal@suse.com - -- Refresh patch use-mirrortype-asdefault-whenclvmdrunning.patch to - work without clvm code enabled - -------------------------------------------------------------------- -Mon May 2 17:29:09 UTC 2016 - tchvatal@suse.com - -- Regenerate lvm2 tmpfiles after install so they won't populate just - after the reboot -- Split out lvm2 libraries to separate subpkgs per standards -- Rename versioning of plugins patch: - * version-plugins-in-libdir -> version-plugins-in-libdir.patch - -------------------------------------------------------------------- -Mon May 2 16:51:09 UTC 2016 - tchvatal@suse.com - -- Remove evms provides/obsoletes, last seen on sle10 -- Mark configs as such -- Ghost the during-run created dirs -- Install rcbla compat service symlinks - -------------------------------------------------------------------- -Mon May 2 15:13:35 UTC 2016 - tchvatal@suse.com - -- Sync with device-mapper.spec, build only lvm and wipe devicemapper - binaries -- Install in /usr there is no technical reason to keep this out - of /usr - -------------------------------------------------------------------- -Mon May 2 13:23:49 UTC 2016 - tchvatal@suse.com - -- Split out device-mapper and clvm to separate spec files - * No factual changes just deletion in the spec to keep it out - of interacting with those parts - -------------------------------------------------------------------- -Fri Apr 29 11:05:04 UTC 2016 - tchvatal@suse.com - -- Do not explicitely require expat it is only used by thin_provisioning - -------------------------------------------------------------------- -Thu Apr 28 20:40:17 UTC 2016 - tchvatal@suse.com - -- There is no factual reason to keep the device mapper out of /usr - so just match everything else - -------------------------------------------------------------------- -Thu Apr 28 20:12:48 UTC 2016 - tchvatal@suse.com - -- Remove device-mapper-static.patch as there should be no need to - have static library here and it can be reenabled with some explanation - if needed - -------------------------------------------------------------------- -Thu Apr 28 19:57:54 UTC 2016 - tchvatal@suse.com - -- Rename device-mapper-link to device-mapper-link.patch - -------------------------------------------------------------------- -Mon Mar 7 01:53:34 UTC 2016 - lwang@suse.com - -- not output error message inside retry loops to avoid noisy error - message being output inside retry loops in case of remove failure - because device busy. (bsc#940298 boo#957059) - add: libdm-iface-not-output-error-message-inside-retry-loop.patch - -------------------------------------------------------------------- -Thu Jan 28 03:47:31 UTC 2016 - lwang@suse.com - -- Add 'Also=lvm2-lvmetad.socket' in '[Install]' section of lvm2-lvmetad. - service to remove lvm2-lvmetad.socket when disable lvm2-lvmetad.service. - (bsc#960044) - add: lvm2-lvmetad.service-add-Also-lvm2-lvmetad.socket.patch - -------------------------------------------------------------------- -Wed Jan 27 05:38:07 UTC 2016 - lwang@suse.com - -- Split thin-provisioning-tools from lvm2 package for easier maintenance. -- Update to lvm2-2.02.141 (device-mapper-1.02.115) - - Remove patches: - lvm2-do-not-strip-pdata_tools.patch: thin-provisioning-tools patch - lvmetad.c-ignore-lvmetad-global-handle-on-disconnect.patch: - already in upstream - no_buildroot_shared.diff: LVM_SHARED_PATH dropped by upstream - -------------------------------------------------------------------- -Mon Dec 14 14:52:00 CET 2015 - tiwai@suse.de - -- Fix missing dependency on coreutils for initrd macros (boo#958562) -- Call missing initrd macro at postun (boo#958562) - -------------------------------------------------------------------- -Fri Dec 11 16:03:58 UTC 2015 - dimstar@opensuse.org - -- Re-add lvm2-do-not-strip-pdata_tools.patch: this is still needed. - -------------------------------------------------------------------- -Tue Aug 25 02:27:10 UTC 2015 - lwang@suse.com - -- Fix boot failed due to segfault at libc (bnc#942755) - add: lvmetad.c-ignore-lvmetad-global-handle-on-disconnect.patch - -------------------------------------------------------------------- -Thu Aug 6 06:13:20 UTC 2015 - lwang@suse.com - -- fix spec to change /sbin/thin-check to %{_sbindir}/thin-check. - (bnc#940754) - -------------------------------------------------------------------- -Mon Jul 27 19:35:15 UTC 2015 - mpluskal@suse.com - -- Update thin-provisioning tools to 0.5.3 - * Fix bug where the tools would crash if given a very large - metadata device to restore to. - * - thin_delta, thin_trim - * --clear-needs-check flag for cache_check - * space map checking for thin check -- Drop unnecessary lvm2-do-not-strip-pdata_tools.patch - -------------------------------------------------------------------- -Fri Jul 24 13:16:09 UTC 2015 - dvaleev@suse.com - -- Allow building without clvm (boo#923127) - Keep clvm2 building by default - -------------------------------------------------------------------- -Tue Jul 14 09:05:13 UTC 2015 - lwang@suse.com - -- dmeventd: fix dso_name compare error. dso_name is thought as not - empty and doesn't create monitor thread. (bnc#935623) - add: dmeventd-fix-dso-name-wrong-compare.patch - -------------------------------------------------------------------- -Tue Jul 14 05:41:55 UTC 2015 - lzhong@suse.com - -- 13-dm-disk.rules: Import ID_FS_XXX variables from udev - database(bnc#909358) - If the disk is unavailable we need to import the existing ID_FS_XXX - variables from the database, otherwise the filesystem UUID won't - be set and the by-uuid symlink will disappear, leading to - intermittent boot failures - + Import-ID_FS_XXX-variables-bnc909358.patch - -- 10-dm.rules: Reset state variables for spurious events (bsc#932300) - + 10-dm.rules-Reset-state-variable-for-spurious-events.patch - -------------------------------------------------------------------- -Tue May 19 16:30:47 UTC 2015 - jeffm@suse.com - -- Update to 2.02.120 - - Fixed numerous bugs(see WHATS_NEW for full details) - - Deleted dab3ebce-devices-Do-not-support-unpartitioned-DASD.patch (upstream) - -------------------------------------------------------------------- -Fri Apr 3 02:45:02 UTC 2015 - lzhong@suse.com - -- fsadm: add support for btrfs(fate#318413) - fsadm-add-support-for-btrfs.patch - -------------------------------------------------------------------- -Mon Mar 23 07:50:05 UTC 2015 - lwang@suse.com - -- Moved BuildRequires: libcorosync-devel and libdlm-devel from lvm package - to clmv package to avoid dracut build needing cluster stack to be built. - (bsc#923127) - -------------------------------------------------------------------- -Sat Feb 14 14:06:36 UTC 2015 - i@marguerite.su - -- provides libdevmapper.so.1.02 libdevmapper-event.so.1.02 - for VirtualBox. - -------------------------------------------------------------------- -Thu Feb 5 03:13:52 UTC 2015 - lwang@suse.com - -- LVM2 does not support unpartitioned DASD device which has special - format in the first 2 tracks and will siliently discards LVM2 lable - information written to it when pvcreate. (bsc#894202) - Add: dab3ebce-devices-Do-not-support-unpartitioned-DASD.patch -- Delete lvm2-lvmetad.socket from %service_del_preun/postun to avoid - lvmetad.service being started by 'systemctl retry-start' when updating - package. (bsc#914415) - -------------------------------------------------------------------- -Thu Jan 22 09:45:12 UTC 2015 - mpluskal@suse.com - -- Don't replace lvm.conf - -------------------------------------------------------------------- -Mon Jan 12 08:33:14 UTC 2015 - mpluskal@suse.com - -- Re-add lvm2-lvmetad.service to %service_add_pre/post -- Add service registrations for cmirrord and clvm -- Correct category for device-mapper-devel - -------------------------------------------------------------------- -Thu Jan 8 15:21:17 UTC 2015 - dimstar@opensuse.org - -- Add lvm2-do-not-strip-pdata_tools.patch: Change build system to - not strip pdata_tools during installation. We need the file in - tact in order to be able to produce valid debuginfo packages - (boo#910327). - -------------------------------------------------------------------- -Mon Dec 22 07:10:10 UTC 2014 - lwang@suse.com - -- delete lvm2-lvmetad.service from %service_add_pre/post and - %service_del_preun/postun to avoid lvm2-lvmetad.service running - when use_lvmetad=0. (bnc#901859) -- locking_type is set to 3(clustered lock) by default will output - warning message if cmirrord is not running. Set to 1 to be same - with upstream. (bnc#906710) -- Set silent default to 0 to avoid some commands have no output - and to be same with upstream. (bnc#888798) - -------------------------------------------------------------------- -Mon Dec 8 21:19:13 UTC 2014 - jengelh@inai.de - -- spec: replace some shell variables and paths by rpm macros -- shorten filelists by using wildcards - -------------------------------------------------------------------- -Wed Dec 3 03:23:47 UTC 2014 - jeffm@suse.com - -- Update to 2.02.114 - - Removed cmirrord-fix-s390-endian-issue.patch - - Renumbered patches to allow for upstream patches to be applied - before local ones. - -------------------------------------------------------------------- -Wed Nov 19 22:40:13 UTC 2014 - dimstar@opensuse.org - -- Drop libudev-devel BuildRequires: we already buildrequire - pkgconfig(libudev), which is the better choice, as it allows us - to get libudev-mini-devel. - -------------------------------------------------------------------- -Mon Nov 10 09:01:35 UTC 2014 - dimstar@opensuse.org - -- Require device-mapper by device-mapper-devel: otherwise, the .so - symlinks might happen to point to no target. - -------------------------------------------------------------------- -Tue Oct 28 07:18:36 UTC 2014 - lwang@suse.com - -- Delete BuildRequire for device-mapper-devel for all symbols needed - is created in ./include/.symlinks file. -- Add link /usr/sbin/lvm file to avoid others using /usr/sbin/lvm - -------------------------------------------------------------------- -Fri Sep 26 07:09:27 UTC 2014 - lwang@suse.com - -- recover no_buildroot_shared.diff, this may cause gcc error - -------------------------------------------------------------------- -Wed Sep 24 08:24:13 UTC 2014 - lwang@suse.com - -- All patches eliminated since update to 2.02.111 - - Eliminated 25 patches in lvm2 package: - no_buildroot_shared.diff: don't know why necessary change this - pipe_buff-definition.diff: don't know why necessary - handle_extended_devt.diff: not need(bnc#525060 not reproduce even without this patch) - support-drbd-filter.diff: source to patch not found - lvm-path.patch: not needed, upstream fixed hardcode - suppress_locking_failer_message.patch: no doc as to why suppress warning - add_scm_support.patch: definition device_info_t _device_info is no longer exist - upstream patches(18): - man_page_sectors.diff - make_raid1_default.diff - remove-fedora-systemd.patch - 0001-lvmetad-Init-lazily-to-avoid-socket-access-on-config.patch - do_not_read_from_mirrors_have_failed_devices.diff - avoid_reading_failed_dev_in_mirrored_log.diff - mirrored_log_fixed_when_double_fault_occurs.diff - device_is_usable_mem_leak.diff - clmvd-fix-decriptor-leak-on-restart.patch - clvmd-Fix-node-up-down-handing-in-corosync-module.patch - clvmd-Avoid-a-3-way-deadlock-in-dead-client-cleanup.patch - 0001-clvmd-avoid-logging-in-signal-handler.patch - 0001-RAID-Make-RAID-4-5-6-display-sync-status-under-headi.patch - clvmd-fix-debugging-level-set-in-clvmd_set_debug-function.patch - 0001-toolcontext-Only-reopen-stdin-if-readable.patch - systemd-lvm2-activation-generator-report-only-error.patch - systemd-use-umask-022-for-generated-systemd-units-by.patch - remove-quote-in-lvm2-monitor.patch - - - Eliminated 6 patches in device-mapper package: - bug-479104_device-mapper-dmsetup-deps-export.patch:merged with device-mapper-dmsetup-export.patch - udev_sync-cookie_set-1-on-each-dm_task_set_cookie-ca.patch: already included in upstream - increase-minor-version.diff: not needed - segault_for_truncated_string_token.patch: upstream - s390-sectorsize4096.patch: upstream - add_integrate_flush_flag.patch: included in cmirrord_improvment_performance.patch - - - Moved device-mapper patches to lvm2: - device-mapper-dmsetup-export.patch(bnc#707253) - device-mapper-gcc-warnings.patch - device-mapper-static.patch - device-mapper-link - udev_rules-update.diff(bnc#78902,bnc#789019,bnc#789020) - -------------------------------------------------------------------- -Wed Sep 24 02:34:46 UTC 2014 - lwang@suse.com - -- cmirrord has endian issue which cause cmirrord start fail on s390 - patch: cmirrord-fix-s390-endian-issue.patch(bnc#890452,bnc#893684) - -------------------------------------------------------------------- -Thu Sep 11 15:55:50 UTC 2014 - jeffm@suse.com - -- Integrated device-mapper and thin-provisioning packages into - lvm2 package. device-mapper and lvm2 have been included in - the same source repository for some time. - -------------------------------------------------------------------- -Thu Sep 11 05:17:27 UTC 2014 - jeffm@suse.com - -- Update to 2.02.111 - - Eliminated 21 patches. - -------------------------------------------------------------------- -Wed Sep 3 01:48:48 CEST 2014 - ro@suse.de - -- sanitize release line in specfile - -------------------------------------------------------------------- -Fri Jul 4 09:14:10 UTC 2014 - dmzhang@suse.com - -- bnc#885632, set multipath_componnet_detection = 1 per default - -------------------------------------------------------------------- -Fri Jun 13 10:31:48 CEST 2014 - hare@suse.de - -- Generate all symlinks even for multipath events (bnc#875233) - patch: udev-Check-for-DM_NR_VALID_PATHS.patch - -------------------------------------------------------------------- - -Tue May 30 09:01:08 UTC 2014 - lmb@suse.com - -- Versioning for the lvm2-cmirrord dependencies - -------------------------------------------------------------------- -Thu May 29 10:01:35 UTC 2014 - dmzhang@suse.com - -- bnc#878930, systemd is putting out an erroneous message about lvm2-monitor.service - patch: remove-quote-in-lvm2-monitor.patch - -------------------------------------------------------------------- -Wed May 28 16:45:45 UTC 2014 - lwang@suse.com - -- fix lvm2-activation{,-early}.service is marked world-inaccessible (bnc#878481) - add systemd-use-umask-022-for-generated-systemd-units-by.patch -- add comment to lvm.conf to inform user to start lvm2-lvmetad.socket - if it is not started in case of use_lvmetad = 1 (bnc#878473) -- disable lvmetad in lvm.conf to fix it (bnc#862076) - -------------------------------------------------------------------- -Wed May 28 15:46:58 UTC 2014 - lwang@suse.com - -- bnc#878121, modify clvmd.ocf start debug level -d2 to d0 - -------------------------------------------------------------------- -Wed May 28 14:57:23 UTC 2014 - lwang@suse.com - -- bnc#870598, change lockdir to /run/lvm/lock - modify lvm.conf - bnc#854092, backport patches to fix 'nohup lvm' crash - patch:0001-toolcontext-Only-reopen-stdin-if-readable.patch - bnc#870824, defaut the mirrortype to mirror when clvmd is running - patch:use-mirrortype-asdefault-whenclvmdrunning.patch - bnc#859824, get rid of the annoying message 'LVM activation generator successfully completed' - patch:systemd-lvm2-activation-generator-report-only-error.patch - bnc#837538, fix closedown of clvmd - patch:fix-closedown-before-thread-finish.patch - -------------------------------------------------------------------- -Wed May 28 14:50:13 UTC 2014 - lwang@suse.com - -- Added: clvmd-fix-debugging-level-set-in-clvmd_set_debug-function.patch - This patch is missed in sle12, added from sle11sp3 - Fix debugging level set in clvmd_set_debug by using the correct - variable (bnc#785467),change default -d0 to -d2 - -------------------------------------------------------------------- -Wed May 28 14:34:04 UTC 2014 - meissner@suse.com - -- add missing %pre section, specify all sockets and services in - all 4 calls. - -------------------------------------------------------------------- -Mon May 12 08:11:08 UTC 2014 - lwang@suse.com - --bnc#871176, 0001-RAID-Make-RAID-4-5-6-display-sync-status-under-headi.patch - -------------------------------------------------------------------- -Wed Apr 16 09:11:32 UTC 2014 - trenn@suse.de - -- Switch from mkinitrd to dracut - - Dracut already has a lvm module and takes care that the right stuff is - include into initrd, therefore remove: - - mkinitrd-lvm2-boot.sh - - mkinitrd-lvm2-setup.sh - mkinitrd scripts from sources - - Add dracut macros in %post and %posttrans to ensure initrd recreation -- Remove unneeded comments in .spec file -- Do not compile in DATE and TIME to avoid build unneeded retriggering in obs - Add: cmirrord_remove_date_time_from_compilation.patch - -------------------------------------------------------------------- -Tue Apr 8 08:47:51 UTC 2014 - lwang@suse.com - -- bnc#862403, modify lvm.conf to add filter to exclude floppy and cdrom - -------------------------------------------------------------------- -Tue Mar 25 09:08:16 UTC 2014 - dmzhang@suse.com - -- backport more patches from slesp3(bnc#831518) - scm support: - add_scm_support.patch - mirrored log fix: - do_not_read_from_mirrors_have_failed_devices.diff - avoid_reading_failed_dev_in_mirrored_log.diff - mirrored_log_fixed_when_double_fault_occurs.diff - device_is_usable_mem_leak.diff - clvmd: - clmvd-fix-decriptor-leak-on-restart.patch - clvmd-Avoid-a-3-way-deadlock-in-dead-client-cleanup.patch - clvmd-Fix-node-up-down-handing-in-corosync-module.patch - 0001-clvmd-avoid-logging-in-signal-handler.patch - fate#314367, missing patch - lvconvert-cluster-mirrored-disk-failed.patch - other fix: - pvmove_support_clustered_vg.diff - suppress_format1_size_warning.diff - display-dm-name-for-lv-name.diff - no longer needed patches: - autoactivate-lvmetad-with-generator.patch - -------------------------------------------------------------------- -Thu Feb 20 16:23:21 UTC 2014 - arvidjaar@gmail.com - -- add 0001-lvmetad-Init-lazily-to-avoid-socket-access-on-config.patch - avoid connect to lvmetad.socket too early to prevent deadlock during - "systemctl daemon-reload" (bnc#862076) - -------------------------------------------------------------------- -Thu Feb 13 06:39:47 UTC 2014 - dmzhang@suse.com - -- fate#315092, improve performance of cluster mirror - add cmirrord_improvment_performance.patch - -------------------------------------------------------------------- -Wed Feb 12 15:17:05 UTC 2014 - arvidjaar@gmail.com - -- add autoactivate-lvmetad-with-generator.patch - if use_lvmetad=1, - automatically activate lvm2-lvmetad.socket to ensure lvmetad is - started when required (bnc#862076) - -------------------------------------------------------------------- -Wed Jan 22 14:34:41 UTC 2014 - henrik.kuhn@origenis.de - -- added a lvm2-devel package definition - -------------------------------------------------------------------- -Mon Jan 6 07:43:59 UTC 2014 - dmzhang@suse.com - -- add csm_convert to lvm2-clvm package(bnc#854076) -- system fails to boot due to missing /usr/sbin/lvm(bnc#837954) -- lvm2 systemd incorrectly uses dependencies on Fedora services(bnc#851741) -- set use_lvmetad = 1 as default of lvm.conf(bnc#854413) -- drop patch dont_ignore_tmp_device_file.diff -- backport patches from sle11sp3 - fate#314367,cluster_support_mirrord_log.diff - fate#312248,make-mirror-legs-on-different-tag-pvs.patch - improve-mirror-legs-on-different-tag-pvs.patch -- set default mirror to md_raid1 insdead of dm_mirror for better performance -- enable lvm2-lvmetad.socket by default - -------------------------------------------------------------------- -Sun Oct 27 21:44:41 CET 2013 - ohering@suse.de - -- Remove /etc/sysconfig/lvm to avoid errors during mkinitrd run - LVM_VGS_ACTIVATED_ON_BOOT is not handled anymore with systemd -- Remove fillup and insserv from PreReq - -------------------------------------------------------------------- -Mon Oct 21 08:09:41 UTC 2013 - dmzhang@suse.com - -- bnc#779965, use export before %configure in spec - -------------------------------------------------------------------- -Wed Sep 11 10:18:47 CEST 2013 - fcrozat@suse.com - -- Add lvm-path.patch: fix lvm binary path in systemd generator. -- Use %_tmpfilesdir macro for tmpfiles directory. - -------------------------------------------------------------------- -Sun Sep 8 22:20:46 UTC 2013 - crrodriguez@opensuse.org - -- Set all "run" directories relative to /run not just the "lock" - location -- Install /usr/lib/tmpfiles.d/lvm2.conf as required to ensure - such runtime directories are _always_ there. - -------------------------------------------------------------------- -Wed Aug 28 11:15:54 UTC 2013 - meissner@suse.com - -- replace BuildRequires: systemd by pkgconfig(udev) again - to avoid cycles. - -------------------------------------------------------------------- -Tue Aug 20 07:59:06 UTC 2013 - dmzhang@suse.com - -- add systemd support to lvm2 package - split device-mapper to another package. - -------------------------------------------------------------------- -Tue Jul 16 14:55:10 CEST 2013 - ohering@suse.de - -- Remove usage of absolute paths in mkinitrd scripts - -------------------------------------------------------------------- -Tue Jul 16 14:39:31 CEST 2013 - ohering@suse.de - -- Fix parsing lvdisplay -c output with more than 10 volumes in - mkinitrd-lvm2-setup.sh (bnc#826727) - -------------------------------------------------------------------- -Mon Apr 22 14:01:29 UTC 2013 - cfarrell@suse.com - -- license update: GPL-2.0 and LGPL-2.1 - Presence of multiple files (both GPL and LGPL) with "only" licenses - -------------------------------------------------------------------- -Tue Apr 16 11:57:28 UTC 2013 - mmeister@suse.com - -- Added url as source. - Please see http://en.opensuse.org/SourceUrls - -------------------------------------------------------------------- -Fri Feb 15 11:44:36 UTC 2013 - rmilasan@suse.com - -- Move all udev releated files in the appropriate udev directory. - -------------------------------------------------------------------- -Wed Nov 28 09:37:23 UTC 2012 - rmilasan@suse.com - -- udev_sync-cookie_set-1-on-each-dm_task_set_cookie-ca.patch: - cookie_set=1 on each dm_task_set_cookie call (bnc#788882) - -------------------------------------------------------------------- -Mon Nov 12 10:41:45 UTC 2012 - seife+obs@b1-systems.com - -- fix 10-dm.rules (bnc#789021) -- port dmsetup export patch to new LVM code (bnc#789019,bnc#789020) - -------------------------------------------------------------------- -Mon Nov 5 21:10:28 UTC 2012 - hrvoje.senjan@gmail.com - -- Now also fix devmapper-setup - -------------------------------------------------------------------- -Mon Nov 5 12:08:26 UTC 2012 - hrvoje.senjan@gmail.com - -- Adapt mkinitrd scripts to new udev locataion - -------------------------------------------------------------------- -Sun Nov 4 02:31:00 UTC 2012 - crrodriguez@opensuse.org - -- Fix booting ... place udev rules in the proper location.. - -------------------------------------------------------------------- -Thu Oct 18 12:35:30 UTC 2012 - hrvoje.senjan@gmail.com - -- Change the default locking dir to reflect the change in filesystem package - -------------------------------------------------------------------- -Wed Oct 17 23:01:54 UTC 2012 - nfbrown@suse.com - -- lvm2.spec: merge rules for device-mapper and - lvm2-clvm packages, so there is only one - spec file and all packages are built consistently. - -------------------------------------------------------------------- -Tue Oct 16 09:34:40 UTC 2012 - coolo@suse.com - -- build against the minimal udev to avoid cycles -- the sysvinit requires are no longer necessary - -------------------------------------------------------------------- -Tue Oct 16 04:19:59 UTC 2012 - nfbrown@suse.com - -- Upgrade to LVM2-2-02-98. Improvements include - improved interaction with udev and systemd, - improved dmraid support, and new command - "blkdeactivate". - -------------------------------------------------------------------- -Thu Sep 27 01:11:17 UTC 2012 - nfbrown@suse.com - -- lvm2.spec: make sure MODPROBE_CMD is set properly - when configure is run. Without it, modules are - not auto-loaded. (bnc#779965) - -------------------------------------------------------------------- -Fri Apr 20 07:52:09 UTC 2012 - rmilasan@suse.com - -- Run update of initrd at %post and %postun. - We need this to make sure initrd reflects the updates. - -------------------------------------------------------------------- -Sun Sep 18 17:17:12 UTC 2011 - jengelh@medozas.de - -- Remove redundant tags/sections from specfile - (cf. packaging guidelines) -- Use %_smp_mflags for parallel build - -------------------------------------------------------------------- -Fri May 27 09:09:35 UTC 2011 - lnussel@suse.de - -- don't unconditionally enable boot.lvm by default. yast takes care - of enabling the script when creating lvm volumes. -- don't hard require boot.device-mapper in boot.dmraid. dm-mod is - autoloaded when accessing /dev/mapper/control anyways. - -------------------------------------------------------------------- -Thu Mar 10 11:07:22 UTC 2011 - coolo@novell.com - -- prereq sysvinit(boot.device-mapper) to fix build - -------------------------------------------------------------------- -Tue Feb 15 08:48:48 UTC 2011 - xwhu@novell.com - -- Update to LVM 2.02.84 - - Fix handling of simultaneous mirror image and mirrored log - image failure. - - Fix vgremove to allow removal of VG with missing PVs - - Remove log directly if all mirror images of a mirrored log fail - - Fix potential for corruption during cluster mirror device - failure - - Allow internal suspend and resume of origin without its - snapshots - - Allow exclusive activation of snapshots in a cluster - -------------------------------------------------------------------- -Thu Nov 11 12:24:04 UTC 2010 - coolo@novell.com - -- own parent directories for device-mapper files - -------------------------------------------------------------------- -Sun Oct 31 12:37:02 UTC 2010 - jengelh@medozas.de - -- Use %_smp_mflags - -------------------------------------------------------------------- -Fri Jul 16 10:11:59 UTC 2010 - xwhu@novell.com - -- bnc#556177, undefined symbol error while loading dmevent so. - -------------------------------------------------------------------- -Wed Jun 23 05:50:12 UTC 2010 - xwhu@novell.com - -- Update to LVM.2.02.67 - - Require partial option in lvchange --refresh for partial LVs - - Add replicators' LVs to dtree for activation - - Add lvm2app interfaces to lookup a vgname from a pvid and pvname - - Fix memory leak for invalid regex pattern input - - Disallow the direct removal of a merging snapshot - - Fix lvconvert error message when existing mirrored LV is not found - - Add LVM_SUPPRESS_LOCKING_FAILURE_MESSAGES environment variable - - Improve snapshot merge metadata import validation - -------------------------------------------------------------------- -Tue Jun 1 14:06:38 UTC 2010 - xwhu@novell.com - -- Specify udev_sync and udev_rules in /etc/lvm/lvm.conf - -------------------------------------------------------------------- -Fri May 21 03:41:47 UTC 2010 - xwhu@novell.com - -- Fix mkinitrd-lvm2 to use udev rules for lvm2 - -------------------------------------------------------------------- -Mon Apr 26 16:51:10 CEST 2010 - ro@suse.de - -- fix lvm2-clvm specfile so that patches apply - -------------------------------------------------------------------- -Sat Apr 3 03:17:12 UTC 2010 - xwhu@novell.com - -- Upgrade to LVM2 2.02.58 - - Rename liblvm.so to liblvm2app.so - - Introduce lvconvert --use_policies - - Add readonly locking type to replace implementation of - --ignorelockingfailure - - Add liblvm APIs to implement creation and deletion of VGs - - Add activation/udev_sync to lvm.conf - - Enable dmeventd monitoring section of config file by default - - Add --pvmetadatacopies for pvcreate, vgcreate, vgextend, - vgconvert. - -------------------------------------------------------------------- -Sun Nov 29 06:58:45 UTC 2009 - xwhu@novell.com - -- Link liblvm2cmd.so to libdevmapper-event.so (bnc#556177) - -------------------------------------------------------------------- -Sun Nov 15 10:40:19 CET 2009 - meissner@suse.de - -- quilt refreshed all patches. - -------------------------------------------------------------------- -Mon Oct 12 13:31:12 UTC 2009 - xwhu@novell.com - -- make $tmp_mnt/etc/sysconfig before copying file into (bnc#525237) - -------------------------------------------------------------------- -Wed Sep 23 06:38:47 UTC 2009 - xwhu@novell.com - -- Add -lvm2- infix to mkinitrd scripts -- collect_lvm reads /etc/sysconfig/lvm (bnc#523944) - -------------------------------------------------------------------- -Fri Aug 28 07:37:13 UTC 2009 - xwhu@novell.com - -- Support extended dev with major 259 - -------------------------------------------------------------------- -Fri Jun 26 11:08:39 CST 2009 - xwhu@suse.de - -- bnc#510058, typo in dont_ignore_tmp_device_file.diff, which hangs - mkinitrd - -Mon May 25 16:47:18 CST 2009 - xwhu@suse.de -------------------------------------------------------------------- - -- Cleanup scripts for mkinitrd, so that udev can activate root LV. - -Mon Apr 27 18:37:32 CST 2009 - xwhu@suse.de -------------------------------------------------------------------- - -- Upgrade to LVM2 2.02.45 - Avoid scanning empty metadata areas for VG names - Pass --test from lvresize to fsadm as --dry-run. - Remove duplicate cpg_initialize from clvmd startup. - Add option to /etc/sysconfig/cluster to select cluster type for clvmd. - Remove external dependency on the 'cut' command from fsadm. - Fix pvs segfault when pv mda attributes requested for not available PV. - Fix lvresize size conversion for fsadm when block size is not 1K. - Add pv_mda_size to pvs and vg_mda_size to vgs. - Add "--refresh" functionality to vgchange and vgmknodes. - Fix vgrename using UUID if there are VGs with identical names. - Fix segfault when invalid field given in reporting commands. - Merge device-mapper into the lvm2 tree. - Exit with non-zero status from vgdisplay if couldn't show any requested VG. - Fix snapshot monitoring library to not cancel monitoring invalid snapshot. - Fix conversion of md chunk size into sectors. - Fix misleading error message when there are no allocatable extents in VG. - Fix handling of PVs which reappeared with old metadata version. - Fix mirror DSO to call vgreduce with proper parameters. - Fix validation of --minor and --major in lvcreate to require -My always. - Fix release: clvmd build, vgreduce consolidate & tests, /dev/ioerror warning. - -------------------------------------------------------------------- -Tue Mar 31 11:59:03 CST 2009 - xwhu@suse.de - -- Handle the case that drbd virtual device has the same PV uuid - with the underlining physical device. - -------------------------------------------------------------------- -Wed Mar 25 23:14:29 CST 2009 - xwhu@suse.de - -- Do not filter out tmp device file(bnc#485572) -- Do not try to activate VG when all paths are down already(bnc#479104) - -------------------------------------------------------------------- -Wed Mar 25 22:50:50 CST 2009 - xwhu@suse.de - -- Split CLVMD as a independent package - -------------------------------------------------------------------- -Tue Mar 24 00:23:13 CST 2009 - xwhu@suse.de - -- Fix for bnc#486952 - use "killproc -INT" instead of "killproc" - handle signal in the main loop thread only - -------------------------------------------------------------------- -Thu Feb 26 14:08:22 CST 2009 - xwhu@suse.de - -- add daemon_options parameter to clvmd.ocf -- check EUNLOCK for dlm_ls_unlock_wait - -------------------------------------------------------------------- -Wed Feb 25 18:39:26 CST 2009 - xwhu@suse.de - -- bnc#479422, check both lksb.sb_status and status. - -------------------------------------------------------------------- -Fri Feb 20 10:24:00 CET 2009 - xwhu@suse.de - -- simplify patch of dlm lock to clvmd - -------------------------------------------------------------------- -Fri Feb 20 08:06:37 CET 2009 - xwhu@suse.de - -- bnc#476861, clvmd.ocf doesn't report the correct status when - kill -9 doesn't terminate the process - -------------------------------------------------------------------- -Thu Jan 22 13:00:26 CST 2009 - xwhu@suse.de - -- bnc#464851, use dlm instead of openais lck - -------------------------------------------------------------------- -Wed Jan 21 15:23:31 CET 2009 - ro@suse.de - -- do not require a specific package release from subpackage - (bnc#467704) - -------------------------------------------------------------------- -Wed Dec 3 18:51:27 CST 2008 - xwhu@suse.de - -- Add OCF script for clvmd - -------------------------------------------------------------------- -Wed Nov 12 02:22:56 CST 2008 - xwhu@suse.de - -- bnc#443677. dmeventd DSOs are linked against liblvm2cmd - -------------------------------------------------------------------- -Thu Oct 9 11:54:47 CEST 2008 - xwhu@suse.de - -- bnc#432782. Remove vol_id in 64-lvm2.rules. - -------------------------------------------------------------------- -Mon Sep 29 14:09:33 CEST 2008 - ro@suse.de - -- buildreq: replace openais-devel by libopenais-devel - -------------------------------------------------------------------- -Wed Sep 24 18:25:40 CEST 2008 - ro@suse.de - -- change "udevsettle" to "udevadm settle" - -------------------------------------------------------------------- -Sat Sep 13 11:59:34 CEST 2008 - xwhu@novell.com - -- added missing directories to filelist - -------------------------------------------------------------------- -Wed Sep 10 13:43:17 CEST 2008 - xwhu@novell.com - -- Upgrade to 2.0.39 - Fix up cache for PVs without mdas after consistent VG metadata is processed. - Update validation of safe mirror log type conversions in lvconvert. - Fix lvconvert to disallow snapshot and mirror combinations. - Fix reporting of LV fields alongside unallocated PV segments. - Add --unquoted and --rows to reporting tools. - Avoid undefined return value after _memlock manipulation in lvm2_run. - Avoid link failure if configured without --enable-cmdlib or --enable-readline. - Make clvmd return at once if other nodes down in a gulm or openais cluster. - Fix and improve readahead 'auto' calculation for stripe_size. - Fix lvchange output for -r auto setting if auto is already set. - Fix ambiguous use of identifier error_message_produced. - Fix add_mirror_images not to dereference uninitialized log_lv upon failure. - Don't call openlog for every debug line output by clvmd. - Add --force to lvextend and lvresize. - Fix vgchange to not activate mirror leg and log volumes directly. - Fix test directory clean up in make distclean. -- pvcreate/pvremove/pvchange will create symlinks in /dev/disk/by-id/ - to the device file -------------------------------------------------------------------- -Wed Sep 3 11:09:34 CEST 2008 - hare@suse.de - -- Call mkinitrd_setup during %post and %postun (bnc#413709) - -------------------------------------------------------------------- -Tue Sep 2 16:59:00 CEST 2008 - hare@suse.de - -- Fix initrd scripts if no 'root=' parameter is given - (bnc#421546) - -------------------------------------------------------------------- -Mon Aug 25 12:49:58 CEST 2008 - aj@suse.de - -- Provide and obsolete evms. - -------------------------------------------------------------------- -Mon Aug 25 12:04:29 CEST 2008 - prusnak@suse.cz - -- enabled SELinux support [Fate#303662] - -------------------------------------------------------------------- -Fri Aug 22 12:58:08 CEST 2008 - xwhu@suse.de - -- Remove the -p option for fillup_and_insserv - -------------------------------------------------------------------- -Wed Aug 13 06:18:44 CEST 2008 - xwhu@suse.de - -- Add Should-Stop to boot.lvm - -------------------------------------------------------------------- -Thu Jul 31 16:13:59 CST 2008 - xwhu@suse.de - -- repack LVM2.2.02.38.tar.bz2 into bz2 format - -------------------------------------------------------------------- -Wed Jul 23 15:38:13 CEST 2008 - hare@suse.de - -- Include mkinitrd scriptlets. - -------------------------------------------------------------------- -Fri Jun 27 07:51:31 CEST 2008 - xwhu@suse.de - -- update to 2.02.38 - Fix tracking of validity of PVs with no mdas in lvmcache. - Fix return values for reporting commands when run with no PVs, LVs, or VGs. - Fix free_count when reading pool metadata. - Fix segfault when using pvcreate on a device containing pool metadata. - Fix segfault after _free_vginfo by remembering to remove vginfo from list. - Fix setpriority error message to signed int. - Fix uninitialised mutex in clvmd if all daemons are not running at startup. - Fix fsadm.sh to work with older blockdev, blkid & readlink binaries. - Fix lvresize to pass new size to fsadm when extending device. - Fix nodes list in clvmd-openais, and allow for broadcast messages. - Fix vgsplit internal counting of snapshot LVs. - Fix vgmerge snapshot_count when source VG contains snapshots. - Fix internal LV counter when a snapshot is removed. - Fix metadata corruption writing lvm1-formatted metadata with snapshots. - Fix lvconvert -m0 allocatable space check. - Fix vgdisplay 'Cur LV' field to match lvdisplay output. - Fix lv_count report field to exclude hidden LVs. - Fix vgsplit to only move hidden 'snapshotN' LVs when necessary. - Fix vgreduce to use vg_split_mdas to check sufficient mdas remain. - Fix orphan VG name used for format_pool. - Fix output if overriding command_names on cmdline. - Fix vgsplit locking of new VG (2.02.30). - Fix redundant lvresize message if vg doesn't exist. - Fix another allocation bug with clvmd and large node IDs. - Fix uninitialised variable in clvmd that could cause odd hangs. - -------------------------------------------------------------------- -Mon May 5 11:19:29 CEST 2008 - aj@suse.de - -- Fix requires of clvm. - -------------------------------------------------------------------- -Wed Apr 30 12:17:29 CEST 2008 - hare@suse.de - -- Fixup build errors - -------------------------------------------------------------------- -Wed Apr 30 09:22:55 CEST 2008 - xwhu@suse.de - -- Cleanup clvmd code on openais stack to make it work -- Split clvmd into a separate package (bnc#384708) - -------------------------------------------------------------------- -Wed Apr 23 12:16:22 CEST 2008 - xwhu@suse.de - -- Change async lock primitives to sync - -------------------------------------------------------------------- -Wed Apr 23 07:29:12 CEST 2008 - xwhu@suse.de - -- Fix build aginst beta - definition of PIPE_BUF is missing - -------------------------------------------------------------------- -Tue Apr 22 10:47:17 CEST 2008 - xwhu@suse.de - -- Enable CLVM support in LVM2 - -------------------------------------------------------------------- -Wed Feb 20 11:47:30 CET 2008 - fehr@suse.de - -- allow large minor number on command line with option --minor - (bnc#362960) - -------------------------------------------------------------------- -Wed Feb 13 14:11:32 CET 2008 - fehr@suse.de - -- update to new version 2.02.33 - Fix mirror log name construction during lvconvert. (2.02.30) - Make monitor_dev_for_events recurse through the stack of LVs. - Clean up some more compiler warnings. - -------------------------------------------------------------------- -Thu Feb 7 08:59:16 CET 2008 - hare@suse.de - -- Enable dmeventd (FATE#303381) - -------------------------------------------------------------------- -Thu Jan 31 12:01:35 CET 2008 - fehr@suse.de - -- update to new version 2.02.32 - Fix two check_lv_segments error messages to show whole segment - Refactor mirror log attachment code - Fix pvs, vgs, lvs error exit status on some error paths - Avoid readahead error message with default setting of lvcreate -M1 - Set default readahead to twice maximium stripe size - Reinstate VG extent size and stripe size defaults (halved) - Change vgsplit -l (for unimplemented --list) into --maxlogicalvolumes - Fix process_all_pvs to detect non-orphans with no MDAs correctly - Don't use block_on_error with mirror targets version 1.12 and above - Update vgsplit to accept vgcreate options when new VG is destination - Update vgsplit to accept existing VG as destination - lvconvert waits for completion of initial sync by default - Refactor vgcreate for parameter validation and add tests - Add new convert_lv field to lvs output - Print warning when lvm tools are running as non-root - Prevent pvcreate from overwriting MDA-less PVs belonging to active VGs - Fix a segfault if using pvs with --all argument - Update --uuid argument description in man pages - Fix vgreduce PV list processing not to process every PV in the VG - Extend lvconvert to use polldaemon - Add support for stacked mirrors - Major restructuring of pvmove and lvconvert layer manipulation code - -------------------------------------------------------------------- -Mon Dec 10 12:29:12 CET 2007 - fehr@suse.de - -- update to new version 2.02.29 - Accept sizes with --readahead argument. - Store size arguments as sectors internally. - Attempt to remove incomplete LVs with lvcreate zeroing/activation problems. - Add read_ahead activation code. - Extend readahead arg to accept "auto" and "none". - Prevent lvconvert -s from using same LV as origin and snapshot. - Fix human-readable output of odd numbers of sectors. - Show 'not usable' space when PV is too large for device in pvdisplay. - Ignore and fix up any excessive device size found in metadata. - Detect md superblocks version 1.0, 1.1 and 1.2. - Handle new sysfs subsystem/block/devices directory structure. - Add %PVS extents option to lvresize, lvextend, and lvcreate. - Modify lvremove to prompt for removal if LV active on other cluster nodes. - Add '-f' to vgremove to force removal of VG even if LVs exist. - -------------------------------------------------------------------- -Thu Nov 22 14:49:39 CET 2007 - fehr@suse.de - -- adapt man page for pvdisplay to program (#342862) -- fix spec file to detect path to modprobe binary (#331968) - -------------------------------------------------------------------- -Thu Nov 22 12:44:16 CET 2007 - fehr@suse.de - -- update to new version 2.02.28 - Fix inconsistent licence notices: executables are GPLv2; libraries LGPLv2.1. - Add support for renaming mirrored LVs. - Add --mirrorlog argument to specify log type for mirrors. - Fix lvdisplay man page to say LV size is reported in sectors, not KB. - Fix snapshot cow area deactivation if origin is not active. - Add vg_mda_count and pv_mda_count columns to reports. - Handle vgsplit of an entire VG as a vgrename. - Print warnings to stderr instead of stdout. - Update vgcfgrestore man page. - Allow keyboard interrupt during user prompts when appropriate. - Add -f to vgcfgrestore to list metadata backup files. - Add pvdisplay --maps implementation. - Remove unsupported LVM1 options from vgcfgrestore man page. - Update vgcfgrestore man page to show mandatory VG name. - Update vgrename man page to include UUID and be consistent with lvrename. - -------------------------------------------------------------------- -Mon May 7 14:02:16 CEST 2007 - fehr@suse.de - -- update to new version 2.02.25 - Add devices/preferred_names config regex list for displayed device names - Update pvck to include text metadata area and record detection - Fix creation and conversion of mirrors with tags - Fix vgsplit for lvm1 format (set and validate VG name in PVs metadata) - Split metadata areas in vgsplit properly - Fix vgremove to require at least one vg argument - Fix reading of striped LVs in LVM1 format - Fix vgsplit to handle mirrors - Fix md signature check to handle both endiannesses - Add devices/ignore_suspended_devices to ignore suspended dm devices - -------------------------------------------------------------------- -Tue Feb 20 16:57:34 CET 2007 - fehr@suse.de - -- add boot.dmraid to Should-Start in boot.lvm2 - -------------------------------------------------------------------- -Sun Feb 11 18:49:50 CET 2007 - ro@suse.de - -- fix build as non-root and use DESTDIR - -------------------------------------------------------------------- -Mon Jan 8 16:15:23 CET 2007 - fehr@suse.de - -- fix buggy pointer arithmetic (#232117) - -------------------------------------------------------------------- -Mon Dec 18 10:39:49 CET 2006 - fehr@suse.de - -- update to new version 2.02.17 - Add missing pvremove error message when device doesn't exist. - When lvconvert allocates a mirror log, respect parallel area constraints. - Use loop to iterate through the now-ordered policy list in _allocate(). - Check for failure to allocate just the mirror log. - Introduce calc_area_multiple(). - Support mirror log allocation when there is only one PV: area_count now 0. - Fix detection of smallest area in _alloc_parallel_area() for cling policy. - Add manpage entry for clvmd -T - Fix gulm operation of clvmd, including a hang when doing lvchange -aey - Fix hang in clvmd if a pre-command failed. - -------------------------------------------------------------------- -Wed Dec 6 10:07:57 CET 2006 - fehr@suse.de - -- update to new version 2.02.16 - Fix VG clustered read locks to use PR not CR. - Adjust some alignments for ia64/sparc. - Fix mirror segment removal to use temporary error segment. - Add -T (startup timeout) switch to clvmd. - Install lvmdump by default. - Fix check for snapshot module when activating snapshot. - Fix pvremove error path for case when PV is in use. - Warn if certain duplicate config file entries are seen. - Fix --autobackup argument which could never disable backups. - Fix a label_verify error path. - Fix adjusted_mirror_region_size() to handle 64-bit size. - Add some missing bounds checks on 32-bit extent counters. - Add Petabyte and Exabyte support. - Fix lvcreate error message when 0 extents requested. - lvremove man page: volumes must be cluster inactive before being removed. - Protect .cache manipulations with fcntl locking. - Change .cache timestamp comparisons to use ctime. - Fix mirror log LV writing to set all bits in whole LV. - Fix high-level free space check for partial allocations. - -------------------------------------------------------------------- -Mon Oct 30 12:19:07 CET 2006 - fehr@suse.de - -- update to new version 2.02.13 to finally fix bug #178321 - Add couple of missing files to tools/Makefile CLEAN_TARGETS. - When adding snapshot leave cow LV mapped device active after zeroing. - Fix a clvmd debug message. - Add dev_flush() to set_lv(). - Add lvchange --resync. - Perform high-level free space check before each allocation attempt. - Don't allow a node to remove an LV that's exclusively active on anther node. - Cope if same PV is included more than once in cmdline PE range list. - Set PV size to current device size if it is found to be zero. - Add segment parameter to target_present functions. - -------------------------------------------------------------------- -Tue Oct 17 10:55:33 CEST 2006 - fehr@suse.de - -- update to new version 2.02.12 - Fix pvdisplay to use vg_read() for non-orphans. - Fall back to internal locking if external locking lib is missing or fails. - Retain activation state after changing LV minor number with --force. - Propagate clustered flag in vgsplit and require resizeable flag. - Add clvmd function to return the cluster name. not used by LVM yet. - Add cling allocation policy. - Change _check_contiguous() to use _for_each_pv(). - Extend _for_each_pv() to allow termination without error. - Abstract _is_contiguous(). - Remove duplicated pv arg from _check_contiguous(). - Accept regionsize with lvconvert. - Add report columns with underscore before field names ending 'size'. - Correct regionsize default on lvcreate man page (MB). - Fix clvmd bug that could cause it to die when a node with a long name crashed - Add device size to text metadata. - Fix format_text mda_setup pv->size and pv_setup pe_count calculations. - Fix _for_each_pv() for mirror with core log. - Add lvm_dump.sh script to create a tarball of debugging info from a system. - Capture error messages in clvmd and pass them back to the user. - Remove unused #defines from filter-md.c. - Make clvmd restart init script wait until clvmd has died before starting it. - Add -R to clvmd which tells running clvmds to reload their device cache. - Add LV column to reports listing kernel modules needed for activation. - Show available fields if report given invalid field. (e.g. lvs -o list) - Add timestamp functions with --disable-realtime configure option. - Add %VG, %LV and %FREE suffices to lvcreate/lvresize --extents arg. - Fix two potential NULL pointer derefs in error cases in vg_read(). - Separate --enable-cluster from locking lib options in lvmconf.sh. - Add a missing comma in lvcreate man page. - -------------------------------------------------------------------- -Wed Sep 20 13:26:58 CEST 2006 - fehr@suse.de - -- update to new version 2.02.10 - Fix lvconvert mirror change case detection logic. - Fix mirror log detachment so it correctly becomes a standalone LV. - Extend _check_contiguous() to detect single-area LVs. - Include mirror log (untested) in _for_each_pv() processing. - Use MIRROR_LOG_SIZE constant. - Remove struct seg_pvs from _for_each_pv() to generalise. - Avoid adding duplicates to list of parallel PVs to avoid. - Fix several incorrect comparisons in parallel area avoidance code. - Fix segment lengths when flattening existing parallel areas. - Log existing parallel areas prior to allocation. - Fix mirror log creation when activation disabled. - Don't attempt automatic recovery without proper locking. - When using local file locking, skip clustered VGs. - Add fallback_to_clustered_locking and fallback_to_local_locking parameters. - lvm.static uses built-in cluster locking instead of external locking. - Don't attempt to load shared libraries if built statically. - Change default locking_lib to liblvm2clusterlock.so. - Add skip_dev_dir() to process command line VGs. - Stop clvmd complaining about nodes that have left the cluster. - Move lvm_snprintf(), split_words() and split_dm_name() into libdevmapper. - Add lvconvert man page. - Add mirror options to man pages. - Prevent mirror renames. - Move CMDLIB code into separate file and record whether static build. - -------------------------------------------------------------------- -Wed Sep 13 13:00:55 CEST 2006 - fehr@suse.de - -- change BuildRequires to device-mapper-devel - -------------------------------------------------------------------- -Mon Aug 21 12:26:17 CEST 2006 - fehr@suse.de - -- update to new version 2.02.09 - Fix PE_ALIGN for pagesize over 32KB. - Separate out LVM1_PE_ALIGN and pe_align(). - Add lvm_getpagesize wrapper. - Add --maxphysicalvolumes to vgchange. - -------------------------------------------------------------------- -Wed Aug 16 11:16:13 CEST 2006 - fehr@suse.de - -- update to new version 2.02.08 - Add checks for duplicate LV name, lvid and PV id before writing metadata. - Report all sanity check failures, not just the first. - Fix missing lockfs on first snapshot creation. (#197850) - Add unreliable --trustcache option to reporting commands. - Fix locking for mimage removal. - Fix clvmd_init_rhel4 'status' exit code. - -------------------------------------------------------------------- -Fri Jul 28 13:05:38 CEST 2006 - olh@suse.de - -- remove dropped boot.ibmsis from boot.lvm -- boot.rootfsck should start before boot.lvm (#181972) - -------------------------------------------------------------------- -Wed Jul 26 16:34:45 CEST 2006 - fehr@suse.de - -- update to new version 2.02.06 - Fix activation logic in lvchange --persistent. - Don't ignore persistent minor numbers when activating. - Fix vgreduce --removemissing to return success if VG is already consistent. - Fix return code if VG specified on command line is not found. - Fix PV tools to include orphaned PVs in default output again. - Prevent snapshots of mirrors. - Fix lvcreate corelog validation. - Add --config for overriding most config file settings from cmdline. - Quote arguments when printing command line. - Remove linefeed from 'initialising logging' message. - Add 'Completed' debug message. - Don't attempt library exit after reloading config files. - Always compile with libdevmapper, even if device-mapper is disabled. - -------------------------------------------------------------------- -Mon May 22 17:13:21 CEST 2006 - fehr@suse.de - -- update to new version 2.02.06 - Propagate --monitor around cluster. - Add --monitor to vgcreate and lvcreate to control dmeventd registration. - Filter LCK_NONBLOCK in clvmd lock_vg. - Add --nosync to lvcreate with LV flag NOTSYNCED. - Use mirror's uuid for a core log. - Add mirror log fault-handling policy. - Improve mirror warning messages and tidy dmeventd syslog output. - Propagate nosync flag around cluster. - Allow vgreduce to handle mirror log failures. - Add --corelog to lvcreate and lvconvert. - Create a log header for replacement in-sync mirror log. - Use set_lv() and dev_set() to wipe sections of devices. - Add mirror_library description to example.conf. - Fix uuid_from_num() buffer overrun. - Increase maximum stripe size limit to physical extent size for lvm2 metadata. - Fix activation code to check for pre-existing mirror logs. - Ignore empty strings in config files. - Require non-zero regionsize and document parameter on lvcreate man page. - Invalidate cache if composition of VG changed externally. - -------------------------------------------------------------------- -Wed Apr 26 10:01:52 CEST 2006 - hare@suse.de - -- add LVM_DEVICE_TIMEOUT sysconfig variable to make sure - udev has finished processing (#149979) -- Fix init script dependencies - -------------------------------------------------------------------- -Mon Apr 24 18:32:56 CEST 2006 - fehr@suse.de - -- update to new version 2.02.05 - Fix vgid string termination in recent cache code - -------------------------------------------------------------------- -Thu Apr 20 17:11:07 CEST 2006 - fehr@suse.de - -- update to new version 2.02.04 - Check for libsepol. - Add some cflow & scope support. - Separate out DEFS from CFLAGS. - Remove inlines and use unique function names. - -------------------------------------------------------------------- -Wed Apr 19 09:48:51 CEST 2006 - fehr@suse.de - -- update to new version 2.02.03 - vgrename accepts vgid and exported VG. - Add --partial to pvs. - When choosing between identically-named VGs, also consider creation_host. - Provide total log suppression with 2. - Fix vgexport/vgimport to set/reset PV exported flag so pv_attr is correct. - Add vgid to struct physical_volume and pass with vg_name to some functions. - If two or more VGs are found with the same name, use one that is not exported. - Whenever vgname is captured, also capture vgid and whether exported. - Remove an incorrect unlock_vg() from process_each_lv(). - Update extent size information in vgchange and vgcreate man pages. - Introduce origin_from_cow() and lv_is_visible(). - pvremove without -f now fails if there's no PV label. - Support lvconvert -s. - Suppress locking library load failure message if --ignorelockingfailure. - Propagate partial mode around cluster. - Fix archive file expiration. - Fix dmeventd build. - clvmd now uses libcman rather than cman ioctls. - clvmd will allow new cman to shutdown on request. - -------------------------------------------------------------------- -Thu Apr 6 15:57:04 CEST 2006 - fehr@suse.de - -- add option --mknodes to vgscan call in /etc/init.d/boot.lvm to - avoid potential inconsistencies in minor number of dm devices after - reboot when root fs is LVM LV (#139740) - -------------------------------------------------------------------- -Tue Mar 14 11:25:42 CET 2006 - fehr@suse.de - -- update to new version 2.02.02 - Add %.so: %.a make template rule. - Switchover library building to use LIB_SUFFIX. - Only do lockfs filesystem sync when suspending snapshots. - Always print warning if activation is disabled. - vgreduce removes mirror images. - Add --mirrorsonly to vgreduce. - vgreduce replaces active LVs with error segment before removing them. - Set block_on_error parameter if available. - Add target_version. - Add details to format1 'Invalid LV in extent map' error message. - Fix lvscan snapshot full display. - Bring lvdisplay man page example into line. - Add mirror dmeventd library. - Add some activation logic to remove_mirror_images(). - lvconvert can remove specified PVs from a mirror. - lvconvert turns an existing LV into a mirror. - Allow signed mirrors arguments. - Move create_mirror_log() into toollib. - Determine parallel PVs to avoid with ALLOC_NORMAL allocation. - Fix lv_empty. - -------------------------------------------------------------------- -Wed Jan 25 21:38:06 CET 2006 - mls@suse.de - -- converted neededforbuild to BuildRequires - -------------------------------------------------------------------- -Mon Dec 19 11:19:41 CET 2005 - fehr@suse.de - -- add new binary /sbin/lvconvert to file list - -------------------------------------------------------------------- -Tue Dec 13 13:09:21 CET 2005 - fehr@suse.de - -- add patch lvm-lock.diff to fix bug #138128 - -------------------------------------------------------------------- -Tue Dec 6 16:10:12 CET 2005 - fehr@suse.de - -- update to new version 2.02.01 - -------------------------------------------------------------------- -Tue Nov 8 12:05:32 CET 2005 - fehr@suse.de - -- add fix_striped_old_format.diff to allow striped volumes with - old metadata format (#130433) -- add fix_dm_as_pv.diff to allow usage of dm devices as PVs (#129960) - -------------------------------------------------------------------- -Mon Oct 17 12:38:18 CEST 2005 - fehr@suse.de - -- update to new version 2.01.15 - -------------------------------------------------------------------- -Mon Sep 26 13:39:41 CEST 2005 - fehr@suse.de - -- fix bug in pvscan.c with PVs larger than 2TB in VGs - -------------------------------------------------------------------- -Thu Aug 4 14:49:51 CEST 2005 - fehr@suse.de - -- update to new version 2.01.14 - -------------------------------------------------------------------- -Mon Jul 18 19:05:08 CEST 2005 - fehr@suse.de - -- update to new version 2.01.13 - -------------------------------------------------------------------- -Thu Jun 16 10:21:03 CEST 2005 - fehr@suse.de - -- update to new version 2.01.12 - -------------------------------------------------------------------- -Wed Jun 15 13:36:23 CEST 2005 - meissner@suse.de - -- add libselinux to nfb to enable selinux support. -- use RPM_OPT_FLAGS. - -------------------------------------------------------------------- -Tue Jun 14 10:55:51 CEST 2005 - fehr@suse.de - -- update to new version 2.01.11 - -------------------------------------------------------------------- -Wed May 4 11:01:23 CEST 2005 - fehr@suse.de - -- update to new version 2.01.10 - -------------------------------------------------------------------- -Mon Apr 11 12:43:23 CEST 2005 - fehr@suse.de - -- use -y instead of -Y in options for call to fillup_and_insserv - (#76689) -- update to new version 2.01.09 - -------------------------------------------------------------------- -Wed Mar 9 11:12:58 CET 2005 - fehr@suse.de - -- update to new version 2.01.07 - -------------------------------------------------------------------- -Mon Mar 7 12:03:14 CET 2005 - fehr@suse.de - -- update to new version 2.01.06 - -------------------------------------------------------------------- -Thu Feb 10 16:28:53 CET 2005 - fehr@suse.de - -- update to new version 2.01.04 - -------------------------------------------------------------------- -Wed Feb 2 13:01:12 CET 2005 - fehr@suse.de - -- update to new version 2.01.03 - -------------------------------------------------------------------- -Mon Jan 24 12:08:59 CET 2005 - fehr@suse.de - -- update to new version 2.01.02 - -------------------------------------------------------------------- -Thu Jan 20 14:48:58 CET 2005 - fehr@suse.de - -- update to new version 2.01.01 - -------------------------------------------------------------------- -Wed Jan 19 11:13:53 CET 2005 - fehr@suse.de - -- update to new version 2.01.00 - -------------------------------------------------------------------- -Tue Jan 11 17:41:04 CET 2005 - fehr@suse.de - -- update to new version 2.00.33 - -------------------------------------------------------------------- -Wed Jan 05 12:33:00 CET 2005 - arvin@suse.de - -- update to new version 2.00.32 - -------------------------------------------------------------------- -Fri Dec 17 10:12:03 CET 2004 - arvin@suse.de - -- fixed -s option of vgdisplay (bug #49177) - -------------------------------------------------------------------- -Mon Nov 29 13:01:31 CET 2004 - fehr@suse.de - -- update to new version 2.00.29 - -------------------------------------------------------------------- -Thu Nov 25 11:39:49 CET 2004 - fehr@suse.de - -- update to new version 2.00.27 - -------------------------------------------------------------------- -Wed Nov 24 12:40:10 CET 2004 - fehr@suse.de - -- update to new version 2.00.26 - -------------------------------------------------------------------- -Wed Sep 29 17:24:52 CEST 2004 - fehr@suse.de - -- update to new version 2.00.25 - -------------------------------------------------------------------- -Wed Sep 22 17:40:28 CEST 2004 - fehr@suse.de - -- prevent buggy macro for MAJOR in kdev_t.h creep into code via - include of linux/fs.h - -------------------------------------------------------------------- -Mon Sep 20 11:45:30 CEST 2004 - fehr@suse.de - -- update to new version 2.00.24 - -------------------------------------------------------------------- -Thu Sep 16 15:03:58 CEST 2004 - fehr@suse.de - -- update to new version 2.00.23 - -------------------------------------------------------------------- -Mon Sep 6 12:09:54 CEST 2004 - fehr@suse.de - -- update to new version 2.00.22 - -------------------------------------------------------------------- -Mon Aug 23 12:46:37 CEST 2004 - fehr@suse.de - -- update to new version 2.00.21 -- new version obsoletes lvm2-vgscan.patch - -------------------------------------------------------------------- -Wed Jul 14 15:21:48 CEST 2004 - fehr@suse.de - -- update to new version 2.00.20 - -------------------------------------------------------------------- -Mon Jun 7 11:45:15 CEST 2004 - fehr@suse.de - -- update to new version 2.00.16 -- add forgotten patch no-inc-audit.diff needed for STABLE - -------------------------------------------------------------------- -Mon May 24 14:14:37 CEST 2004 - fehr@suse.de - -- update to new version 2.00.15 to fix bug #41020 - -------------------------------------------------------------------- -Mon May 24 08:31:31 CEST 2004 - hare@suse.de - -- Fixed vgscan on S/390 (readdir returned DT_UNKNOWN) - -------------------------------------------------------------------- -Thu May 13 17:49:47 CEST 2004 - fehr@suse.de - -- ignore udev names in default configuration to prevent yast2 - confusion (#36869) - -------------------------------------------------------------------- -Mon Apr 19 18:09:49 CEST 2004 - fehr@suse.de - -- accept additional devices (IDE->64, iseries/vd->8, #39114) - -------------------------------------------------------------------- -Thu Apr 1 10:28:39 CEST 2004 - fehr@suse.de - -- update to new version 2.00.09 (fixes #34657 and #36877) - -------------------------------------------------------------------- -Tue Mar 2 02:03:07 CET 2004 - ro@suse.de - -- boot.lvm: root-fs is mounted-rw by boot.rootfsck - -------------------------------------------------------------------- -Thu Feb 26 20:14:53 CET 2004 - fehr@suse.de - -- skip cdroms and device with zero size on probing - -------------------------------------------------------------------- -Wed Feb 4 10:58:46 CET 2004 - fehr@suse.de - -- update to new version 2.00.08 -- now lvm2 obsoletes lvm - -------------------------------------------------------------------- -Thu Sep 18 13:05:20 CEST 2003 - fehr@suse.de - -- fix boot.lvm to cope with LABEL= and UUID= in /etc/fstab - also check reiser filesystem (#31060) - -------------------------------------------------------------------- -Wed Sep 17 16:20:18 CEST 2003 - fehr@suse.de - -- update to new version 2.00.07 - -------------------------------------------------------------------- -Thu Aug 21 10:00:04 CEST 2003 - fehr@suse.de - -- update to new version 2.00.06 - -------------------------------------------------------------------- -Mon Aug 18 17:41:31 CEST 2003 - garloff@suse.de - -- (#29083) Add # X-UnitedLinux-Should-Start: boot.scsidev - -------------------------------------------------------------------- -Tue Jul 1 16:13:06 CEST 2003 - fehr@suse.de - -- created initial version of a SuSE package - -------------------------------------------------------------------- diff --git a/device-mapper.spec b/device-mapper.spec deleted file mode 100644 index 88f6ef8..0000000 --- a/device-mapper.spec +++ /dev/null @@ -1,255 +0,0 @@ -# -# spec file for package device-mapper -# -# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany. -# -# All modifications and additions to the file contributed by third parties -# remain the property of their copyright owners, unless otherwise agreed -# upon. The license for this file, and modifications and additions to the -# file, is the same license as for the pristine package itself (unless the -# license for the pristine package is not an Open Source License, in which -# case the license is the MIT License). An "Open Source License" is a -# license that conforms to the Open Source Definition (Version 1.9) -# published by the Open Source Initiative. - -# Please submit bugfixes or comments via https://bugs.opensuse.org/ -# - - -%define libname libdevmapper1_03 -%define libname_event libdevmapper-event1_03 -### COMMON-DEF-BEGIN ### -%define lvm2_version 2.02.180 -%define device_mapper_version 1.02.149 -%define thin_provisioning_version 0.7.0 -### COMMON-DEF-END ### -Name: device-mapper -Version: %{device_mapper_version} -Release: 0 -Summary: Device Mapper Tools -License: GPL-2.0-or-later AND LGPL-2.1-or-later -Group: System/Base -Url: http://www.sourceware.org/lvm2/ -Source: ftp://sources.redhat.com/pub/lvm2/LVM2.%{lvm2_version}.tgz -Source1: ftp://sources.redhat.com/pub/lvm2/LVM2.%{lvm2_version}.tgz.asc -Source99: baselibs.conf -# To detect modprobe during build -BuildRequires: gcc-c++ -BuildRequires: kmod-compat -BuildRequires: libaio-devel -BuildRequires: pkgconfig -BuildRequires: suse-module-tools -BuildRequires: thin-provisioning-tools >= %{thin_provisioning_version} -BuildRequires: pkgconfig(libselinux) -BuildRequires: pkgconfig(libsepol) -BuildRequires: pkgconfig(libudev) -BuildRequires: pkgconfig(systemd) -Requires: thin-provisioning-tools >= %{thin_provisioning_version} -Requires(post): coreutils -BuildRoot: %{_tmppath}/%{name}-%{version}-build -%{?systemd_requires} -### COMMON-PATCH-BEGIN ### -# Upstream patches -Patch0001: bug-1145231_lvmetad-improve-scan-for-pvscan-all.patch -Patch0002: bug-1145231_scan-use-full-md-filter-when-md-1.0-devices-are-pres.patch -Patch0003: bug-1145231_scan-enable-full-md-filter-when-md-1.0-devices-are-p.patch -Patch0004: bug-1114113_metadata-prevent-writing-beyond-metadata-area.patch -Patch0005: bug-1145231_scan-md-metadata-version-0.90-is-at-the-end-of-disk.patch -Patch0006: bug-1145231_pvscan-lvmetad-use-full-md-filter-when-md-1.0-device.patch -Patch0007: bug-1145231_pvscan-lvmetad-use-udev-info-to-improve-md-component.patch -Patch0008: bug-1122666_devices-drop-open-error-message.patch -Patch0009: bug-1137296_pvremove-vgextend-fix-using-device-aliases-with-lvmetad.patch -Patch0010: bug-1135984_cache-support-no_discard_passdown.patch - -# SUSE patches: 1000+ for LVM -# Never upstream -Patch1001: cmirrord_remove_date_time_from_compilation.patch -Patch1002: fate-309425_display-dm-name-for-lv-name.patch -Patch1003: fate-31841_fsadm-add-support-for-btrfs.patch -Patch1004: bug-935623_dmeventd-fix-dso-name-wrong-compare.patch -Patch1005: bsc1080299-detect-clvm-properly.patch -Patch1006: bug-998893_make_pvscan_service_after_multipathd.patch - -#SUSE patches 2000+ for device mapper, udev rules -Patch2001: bug-1012973_simplify-special-case-for-md-in-69-dm-lvm-metadata.patch -### COMMON-PATCH-END ### - -%description -Programs and man pages for configuring and using the device mapper. - -%prep -%setup -q -n LVM2.%{lvm2_version} -### COMMON-PREP-BEGIN ### -%patch0001 -p1 -%patch0002 -p1 -%patch0003 -p1 -%patch0004 -p1 -%patch0005 -p1 -%patch0006 -p1 -%patch0007 -p1 -%patch0008 -p1 -%patch0009 -p1 -%patch0010 -p1 -%patch1001 -p1 -%patch1002 -p1 -%patch1003 -p1 -%patch1004 -p1 -%patch1005 -p1 -%patch1006 -p1 -%patch2001 -p1 -### COMMON-PREP-END ### - -%build -extra_opts="" - -### COMMON-CONFIG-BEGIN ### -export PATH=$PATH:/sbin:%{_prefix}/sbin -# Why this messy fix here? someone released a wrong version... -sed -ie "s/%{device_mapper_version}/1.03.01/g" VERSION_DM -%configure \ - --enable-dmeventd \ - --enable-cmdlib \ - --enable-udev_rules \ - --enable-udev_sync \ - --with-udev-prefix="%{_prefix}/" \ - --enable-selinux \ - --enable-pkgconfig \ - --with-usrlibdir=%{_libdir} \ - --with-usrsbindir=%{_sbindir} \ - --with-default-dm-run-dir=/run \ - --with-tmpfilesdir=%{_tmpfilesdir} \ - --with-thin=internal \ - --with-device-gid=6 \ - --with-device-mode=0640 \ - --with-device-uid=0 \ - --with-dmeventd-path=%{_sbindir}/dmeventd \ - --with-thin-check=%{_sbindir}/thin_check \ - --with-thin-dump=%{_sbindir}/thin_dump \ - --with-thin-repair=%{_sbindir}/thin_repair \ - $extra_opts -### COMMON-CONFIG-END ### - -%make_build device-mapper - -%install -make DESTDIR=%{buildroot} \ - install_device-mapper \ - install_systemd_units install_systemd_generators - -ln -s service %{buildroot}/%{_sbindir}/rcdm-event - -# provide 1.02 compat links for the shared libraries -# this is needed for various binary packages -ln -s libdevmapper.so.1.03 %{buildroot}/%{_libdir}/libdevmapper.so.1.02 -ln -s libdevmapper-event.so.1.03 %{buildroot}/%{_libdir}/libdevmapper-event.so.1.02 - -# remove blkd, will be in lvm2 proper -# without force on purpose to detect changes and fail if it happens -rm %{buildroot}%{_sbindir}/blkdeactivate -rm %{buildroot}%{_unitdir}/blk-availability.service -rm %{buildroot}%{_unitdir}/lvm2-monitor.service -rm %{buildroot}%{_mandir}/man8/blkdeactivate.8 -rm %{buildroot}%{_mandir}/man8/lvm2-activation-generator.8 - -# compat symlinks in /sbin remove with Leap 43 -mkdir -p %{buildroot}/sbin -ln -s %{_sbindir}/dmsetup %{buildroot}/sbin/dmsetup - -%pre -%service_add_pre dm-event.service dm-event.socket - -%post -%service_add_post dm-event.service dm-event.socket -%{?regenerate_initrd_post} - -%posttrans -%{?regenerate_initrd_posttrans} - -%preun -%service_del_preun dm-event.service dm-event.socket - -%postun -%service_del_postun dm-event.service dm-event.socket -%{?regenerate_initrd_post} - -%files -%defattr(-,root,root) -%license COPYING COPYING.LIB -%doc README -%doc udev/12-dm-permissions.rules -/sbin/dmsetup -%{_sbindir}/dmsetup -%{_sbindir}/dmeventd -%{_sbindir}/dmstats -%{_mandir}/man8/dmstats.8%{ext_man} -%{_mandir}/man8/dmsetup.8%{ext_man} -%{_mandir}/man8/dmeventd.8%{ext_man} -%{_udevrulesdir}/10-dm.rules -%{_udevrulesdir}/13-dm-disk.rules -%{_udevrulesdir}/95-dm-notify.rules -%{_unitdir}/dm-event.socket -%{_sbindir}/rcdm-event -%{_unitdir}/dm-event.service - -%package -n %{libname} -Summary: Library for device-mapper -Group: System/Libraries -Conflicts: %{name} < %{version} - -%description -n %{libname} -Device mapper main shared library - -%files -n %{libname} -%defattr(-,root,root) -%{_libdir}/libdevmapper.so.1.03 -%{_libdir}/libdevmapper.so.1.02 - -%post -n %{libname} -if [ -f /%{_lib}/libdevmapper.so.1.03 ]; then - # Special migration - the library is now in %{_libdir}, but up to the point where - # zypp removes the 'old' device-mapper package, the old library 'wins' the ldloader race - # resulting in binaries asking for the newer version still getting the old one. - # This in turn results in funny bugs like boo#1045396 - # Remove /%{_lib}/libdevmapper.so.1.02 - and the run ldconfig - rm /%{_lib}/libdevmapper.so.1.03 -fi - /sbin/ldconfig - -%postun -n %{libname} -p /sbin/ldconfig - -%package -n %{libname_event} -Summary: Event library for device-mapper -Group: System/Libraries -Conflicts: %{name} < %{version} - -%description -n %{libname_event} -Device mapper event daemon shared library - -%files -n %{libname_event} -%defattr(-,root,root) -%{_libdir}/libdevmapper-event.so.1.03 -%{_libdir}/libdevmapper-event.so.1.02 - -%post -n %{libname_event} -p /sbin/ldconfig -%postun -n %{libname_event} -p /sbin/ldconfig - -%package devel -Summary: Development package for the device mapper -Group: Development/Libraries/C and C++ -Requires: %{libname_event} = %{device_mapper_version} -Requires: %{libname} = %{device_mapper_version} -Requires: device-mapper = %{device_mapper_version} - -%description devel -Files needed for software development using the device mapper - -%files devel -%defattr(-,root,root) -%{_libdir}/libdevmapper.so -%{_libdir}/libdevmapper-event.so -%{_includedir}/libdevmapper.h -%{_includedir}/libdevmapper-event.h -%{_libdir}/pkgconfig/devmapper.pc -%{_libdir}/pkgconfig/devmapper-event.pc - -%changelog diff --git a/lvm2-clvm.changes b/lvm2-clvm.changes deleted file mode 100644 index dd353ad..0000000 --- a/lvm2-clvm.changes +++ /dev/null @@ -1,2215 +0,0 @@ -------------------------------------------------------------------- -Wed Aug 21 10:10:30 UTC 2019 - ghe@suse.com - -- MD devices should be detected by LVM2 with metadata=1.0/0.9 (bsc#1145231) - + bug-1145231_lvmetad-improve-scan-for-pvscan-all.patch - + bug-1145231_scan-use-full-md-filter-when-md-1.0-devices-are-pres.patch - + bug-1145231_scan-enable-full-md-filter-when-md-1.0-devices-are-p.patch - + bug-1145231_scan-md-metadata-version-0.90-is-at-the-end-of-disk.patch - + bug-1145231_pvscan-lvmetad-use-full-md-filter-when-md-1.0-device.patch - + bug-1145231_pvscan-lvmetad-use-udev-info-to-improve-md-component.patch - -------------------------------------------------------------------- -Tue Jul 9 10:00:05 UTC 2019 - ghe@suse.com - -- Fix unknown feature in status message (bsc#1135984) - + bug-1135984_cache-support-no_discard_passdown.patch - -------------------------------------------------------------------- -Thu Jun 27 02:53:03 UTC 2019 - heming.zhao@suse.com - -- Fix using device aliases with lvmetad (bsc#1137296) - + bug-1137296_pvremove-vgextend-fix-using-device-aliases-with-lvmetad.patch - -------------------------------------------------------------------- -Tue Apr 30 10:20:05 UTC 2019 - ghe@suse.com - -- Fix devices drop open error message (bsc#1122666) - + bug-1122666_devices-drop-open-error-message.patch - -------------------------------------------------------------------- -Tue Mar 19 12:02:02 UTC 2019 - Martin Liška - -- Use %make_build in order to provide verbose output. - -------------------------------------------------------------------- -Fri Feb 1 08:20:15 UTC 2019 - ghe@suse.com - -- Disable the LVM lock daemon using sanlock, in order to avoid the - dependence on sanlock related packages (bsc#1121382) - -------------------------------------------------------------------- -Mon Jan 14 14:23:52 CET 2019 - kukuk@suse.de - -- Use %license instead of %doc [bsc#1082318] - -------------------------------------------------------------------- -Mon Nov 5 08:10:05 UTC 2018 - ghe@suse.com - -- Prevent writing beyond metadata area (bsc#1114113) - + bug-1114113_metadata-prevent-writing-beyond-metadata-area.patch - -------------------------------------------------------------------- -Wed Aug 29 10:20:30 UTC 2018 - ghe@suse.com - -- Fix lvm2 activation issue when used on top of multipath - bsc#998893 - + bug-998893_make_pvscan_service_after_multipathd.patch - -------------------------------------------------------------------- -Mon Jul 23 11:45:20 UTC 2018 - ghe@suse.com - -- Update to LVM2.2.02.180 - Never send any discard ioctl with test mode. - Fix thin-pool alloc which needs same PV for data and metadata. - Extend list of non-memlocked areas with newly linked libs. - Enhance vgcfgrestore to check for active LVs in restored VG. - lvconvert: provide possible layouts between linear and striped/raid - Fix unmonitoring of merging snapshots. - Add missing -l description in fsadm man page. - Cache can uses metadata format 2 with cleaner policy. - Avoid showing internal error in lvs output or pvmoved LVs. - Fix check if resized PV can also fit metadata area. - Reopen devices RDWR only before writing to avoid udev issues. - Change pvresize output confusing when no resize took place. - Fix lvmetad hanging on shutdown. - Fix mem leak in clvmd and more coverity issues. - Fix that pvmove does not work (bsc#1080299) -- Drop patches that have been merged upstream - - fate-323203_lvmlockd-add-lockopt-values-for-skipping-selected-lo.patch - - lvm2-69-dm-lvm-metad.rules-explicit-pvscan-rule.patch - - lvm2-69-dm-lvm-metad.rules-set-systemd-vars-on-chang.patch - - bug-1095960_dev_io-no-discard-in-testmode.patch -- Refresh patches - + bsc1080299-detect-clvm-properly.patch - + bug-950089_test-fix-lvm2-testsuite-build-error.patch -- Update spec files - Fix BuildRequires package name for modprobe (bsc#1102668) - Fix cmirrord LV creation/activation failure (bsc#1091863) -- Fix building error in OBS due to the script interpreter - + tests-specify-python3-as-the-script-interpreter.patch - -------------------------------------------------------------------- -Wed Jul 18 11:33:30 UTC 2018 - ghe@suse.com - -- Fix issuing discard in test mode (bsc#1095960) - + bug-1095960_dev_io-no-discard-in-testmode.patch - -------------------------------------------------------------------- -Tue May 29 10:45:30 UTC 2018 - ghe@suse.com - -- Fix the wrong filter for the cdrom device in /etc/lvm/lvm.conf - (bsc#1081530) - -------------------------------------------------------------------- -Thu Apr 19 10:59:59 UTC 2018 - mwilck@suse.com - -- Fix handling of udev CHANGE events with systemd (bsc#1067312) - + lvm2-69-dm-lvm-metad.rules-explicit-pvscan-rule.patch - + lvm2-69-dm-lvm-metad.rules-set-systemd-vars-on-chang.patch - -------------------------------------------------------------------- -Mon Feb 12 09:01:29 UTC 2018 - tchvatal@suse.com - -- Fix detection of clvm that happens on compile time based on - CLVM_PIDFILE, as we determine these features on runtime - bsc#1080299: - + bsc1080299-detect-clvm-properly.patch - -------------------------------------------------------------------- -Tue Jan 16 11:53:36 UTC 2018 - zren@suse.com - -- clvmd: try to refresh device cache on the first failure - (bsc#978055, bsc#1076042) - + bug-978055_clvmd-try-to-refresh-device-cache-on-the-first-failu.patch - -------------------------------------------------------------------- -Wed Jan 10 10:41:45 UTC 2018 - zren@suse.com - -- lvmlockd: add lockopt values for skipping selected locks (fate#323203) - + fate-323203_lvmlockd-add-lockopt-values-for-skipping-selected-lo.patch - -------------------------------------------------------------------- -Tue Dec 19 07:35:11 UTC 2017 - zren@suse.com - -- device-mapper.spec: fix wrong replacement of DM_VERSION (bsc#1072524) -- Fixes failure of some testcases caused by nc behavior change (bsc#1072624) - + bug-1072624_test-lvmetad_dump-always-timed-out-when-using-nc.patch -- Refreshed fate-31841_fsadm-add-support-for-btrfs.patch -- Update to LVM2.2.02.177 - When writing text metadata content, use complete 4096 byte blocks. - Change text format metadata alignment from 512 to 4096 bytes. - When writing metadata, consistently skip mdas marked as failed. - Refactor and adjust text format metadata alignment calculation. - Ensure _node_send_message always uses clean status of thin pool. - Fix lvmlockd to use pool lock when accessing _tmeta volume. - Report expected sanlock_convert errors only when retries fail. - Avoid blocking in sanlock_convert on SH to EX lock conversion. - Deactivate missing raid LV legs (_rimage_X-missing_Y_Z) on decativation. - Categorise I/O with reason annotations in debug messages. - Allow extending of raid LVs created with --nosync after a failed repair. - Command will lock memory only when suspending volumes. - Merge segments when pvmove is finished. - Activation code for pvmove automatically discovers holding LVs for resume. - Make a pvmove LV locking holder. - Do not change critical section counter on resume path without real resume. - Enhance activation code to automatically suspend pvmove participants. - Prevent conversion of thin volumes to snapshot origin when lvmlockd is used. - Add support for pvmove of cache and snapshot origins. - Avoid using precommitted metadata for suspending pvmove tree. - Deactivate activated LVs on error path when pvmove activation fails. - Add "io" to log/debug_classes for logging low-level I/O. - Avoid importing persistent filter in vgscan/pvscan/vgrename. - Fix memleak of string buffer when vgcfgbackup runs in secure mode. - Do not print error when clvmd cannot find running clvmd. - Prevent start of new merge of snapshot if origin is already being merged. - Fix offered type for raid6_n_6 to raid5 conversion (raid5_n). - Deactivate sub LVs when removing unused cache-pool. - Do not take backup with suspended devices. - -------------------------------------------------------------------- -Tue Nov 21 09:29:02 UTC 2017 - zren@suse.com - -- Update to LVM2.2.02.176: - Keep Install section only in lvm2-{lvmetad,lvmpolld}.socket systemd unit. - Fix segfault in lvm_pv_remove in liblvm. (2.02.173) - Do not allow storing VG metadata with LV without any segment. - Fix printed message when thin snapshot was already merged. - Remove created spare LV when creation of thin-pool failed. - Avoid reading ignored metadata when mda gets used again. - Fix detection of moved PVs in vgsplit. (2.02.175) - Ignore --stripes/--stripesize on RAID takeover - Improve used paths for generated systemd units and init shells. - Disallow creation of snapshot of mirror/raid subLV (was never supported). - Fix regression in more advanced vgname extraction in lvconvert (2.02.169). - Allow lvcreate to be used for caching of _tdata LV. - Avoid internal error when resizing cache type _tdata LV (not yet supported). - Show original converted names when lvconverting LV to pool volume. - Move lib code used only by liblvm into metadata-liblvm.c. - Distinguish between device not found and excluded by filter. - Monitor external origin LVs. - Remove the replicator code, including configure --with-replicators. - Allow lvcreate --type mirror to work with 100%FREE. - Improve selection of resource name for complex volume activation lock. - Avoid cutting first character of resource name for activation lock. - Support for encrypted devices in fsadm. - Improve thin pool overprovisioning and repair warning messages. - Fix incorrect adjustment of region size on striped RaidLVs. -- Drop: bug-960044_lvm2-lvmetad.service-add-Also-lvm2-lvmetad.socket.patch -- Refresh: fate-31841_fsadm-add-support-for-btrfs.patch - -------------------------------------------------------------------- -Thu Nov 2 12:48:23 UTC 2017 - zren@suse.com - -- Re-add a strict requires on sanlock, fate#323203 - -------------------------------------------------------------------- -Mon Oct 23 07:50:33 UTC 2017 - zren@suse.com - -- Update to LVM2.2.02.175 -- Use week dependency for lvm2-lockd on libdlm and sanlock -- Rename/refresh patches: - - display-dm-name-for-lv-name.diff to fate-309425_display-dm-name-for-lv-name.patch - - fsadm-add-support-for-btrfs.patch to fate-31841_fsadm-add-support-for-btrfs.patch - - dmeventd-fix-dso-name-wrong-compare.patch to bug-935623_dmeventd-fix-dso-name-wrong-compare.patch - - lvm2-lvmetad.service-add-Also-lvm2-lvmetad.socket.patch to bug-960044_lvm2-lvmetad.service-add-Also-lvm2-lvmetad.socket.patch - - simplify-special-case-for-md-in-69-dm-lvm-metadata.patch to bug-1012973_simplify-special-case-for-md-in-69-dm-lvm-metadata.patch - - lvm2-testsuite.patch to bug-950089_test-fix-lvm2-testsuite-build-error.patch - -------------------------------------------------------------------- -Thu Sep 14 09:51:18 UTC 2017 - zren@suse.com - -- Drop resource agents for clvmd and cmirror (bsc#1058680) - - clvmd.ocf - - cmirrord.ocf -- Drop all patches for cmirror (bsc#1058661) - - cluster_support_mirrord_log.diff - - cmirrord_improvment_performance.patch - - lvconvert-cluster-mirrored-disk-failed.patch - - improve-mirror-legs-on-different-tag-pvs.patch - - make-mirror-legs-on-different-tag-pvs.patch - - use-mirrortype-asdefault-whenclvmdrunning.patch - -------------------------------------------------------------------- -Fri Aug 18 09:53:39 UTC 2017 - mwilck@suse.com - -- Dropped udev rule patches (bsc#1054363) - * dropped udev_rules-update.diff - * dropped device-mapper-dmsetup-export.patch - * dropped udev-Check-for-DM_NR_VALID_PATHS.patch - * dropped Import-ID_FS_XXX-variables-bnc909358.patch - * dropped 69-dm-lvm-metad.rules-Do-not-process-rules-for-multi.patch - -------------------------------------------------------------------- -Tue Aug 1 05:59:29 UTC 2017 - zren@suse.com - -- Dropped several not-upstreamed patches, some of them neither have - history reference nor patch header, some were temporary workaround - fix. - - device-mapper-gcc-warnings.patch - - device-mapper-type_punning.diff - - fix-closedown-before-thread-finish.patch - - libdm-iface-not-output-error-message-inside-retry-loop.patch - - pvcreate-enhance-the-error-message.patch - - pvmove_support_clustered_vg.diff - - version-plugins-in-libdir.patch - -------------------------------------------------------------------- -Tue Jul 25 13:48:00 UTC 2017 - zren@suse.com - -- Update to LVM2.2.02.173 -- Sync our lvm.conf with V2.02.173 - -------------------------------------------------------------------- -Thu Jul 13 13:09:35 UTC 2017 - tchvatal@suse.com - -- Require device-mapper-devel rather than recommend. It is really - needed (the .h files are required by the lvm2app and lvm2cmd) - -------------------------------------------------------------------- -Thu Jul 6 10:18:09 UTC 2017 - zren@suse.com - -- Don't create symlink for invisible device like thin-pool (bsc#1046591) - * drop 10-dm.rules-Reset-state-variable-for-spurious-events.patch - -------------------------------------------------------------------- -Tue Jul 4 10:24:40 UTC 2017 - zren@suse.com - -- Update to LVM2.2.02.172 -- Cleanup spec file, and refresh patches - * removed device-mapper-link.patch - * removed bug-1033691_tests-missed-to-export-lvm-binary-for-fsadm.patch - * removed Makefile-skip-compliling-daemons-lvmlockd-directory.patch - * added bug-1037309_Makefile-skip-compliling-daemons-lvmlockd-directory.patch - -------------------------------------------------------------------- -Thu Jun 29 16:38:05 UTC 2017 - dimstar@opensuse.org - -- Fix zypper update issue with device-mapper package, see bsc#1045396 - -------------------------------------------------------------------- -Sat Jun 17 16:50:53 UTC 2017 - zren@suse.com - -- Backport fix for lvresize-full.sh failed, see bsc#1033691 - + bug-1033691_tests-missed-to-export-lvm-binary-for-fsadm.patch - -------------------------------------------------------------------- -Sat Jun 17 14:56:58 UTC 2017 - zren@suse.com - -- Fix test failures about read ahead issue, see bsc#1043040 - + bug-1043040_test-fix-read-ahead-issues-in-test-scripts.patch -- Reorder the patches to put them into the right groups - -------------------------------------------------------------------- -Fri Jun 9 19:27:45 UTC 2017 - kukuk@suse.com - -- Don't package dynamic directories in /run - -------------------------------------------------------------------- -Wed May 17 08:21:27 UTC 2017 - zren@suse.com - -- Add lvmlockd-related configuration items in lvm.conf, fate#323203 - -------------------------------------------------------------------- -Tue May 16 07:45:25 UTC 2017 - zren@suse.com - -- Fix compiling issue of lvmlockd, bsc#1037309 - + Makefile-skip-compliling-daemons-lvmlockd-directory.patch - -------------------------------------------------------------------- -Fri May 5 11:33:28 UTC 2017 - tchvatal@suse.com - -- Remove comments breaking scriptlets: - * warning: %postun(libdevmapper1_03-1.02.137-5.1.x86_64) scriptlet failed - -------------------------------------------------------------------- -Wed May 3 09:01:42 UTC 2017 - zren@suse.com - -- This patch has been dropped since SLE12 (bsc#952300) - * removed sys_mount_instead_linux_fs.diff -- Drop obsolete patches: - * removed improve_probing.diff (bsc#49657) - * removed no-inc-audit.diff - * removed suppress_format1_size_warning.diff -- Add more bug/fate references, and reorder the patches accordingly - -------------------------------------------------------------------- -Tue Apr 25 12:00:23 UTC 2017 - zren@suse.com - -- Add check_pv_device_sizes option to check PV and disk sizes - bsc#999878 - -------------------------------------------------------------------- -Mon Apr 24 17:08:34 UTC 2017 - arvidjaar@gmail.com - -- BuildRequire modutils so build script detects modprobe and module - autoloading works again (boo#983221) - -------------------------------------------------------------------- -Tue Apr 18 11:07:01 UTC 2017 - tchvatal@suse.com - -- Update to 2.02.170: - * Few smal fixes around; obsoleted 169 release that was removed - from mirrors -- Refresh patch: - * display-dm-name-for-lv-name.diff - -------------------------------------------------------------------- -Wed Apr 12 01:33:15 UTC 2017 - zren@suse.com - -- Update device mapper version to 1.02.138, see WHATS_NEW_DM for - detailed changelogs - * Drop obsolete lvmchange files accordingly -- Refresh libdm-iface-not-output-error-message-inside-retry-loop.patch -- Refresh make-mirror-legs-on-different-tag-pvs.patch -- device-mapper-dmsetup-export.patch - -------------------------------------------------------------------- -Mon Apr 10 23:08:45 UTC 2017 - jnelson-suse@jamponi.net - -- Version update to 2.02.169 release, see WHATS_NEW and WHATS_NEW_DM - files for detailed changelogs - -------------------------------------------------------------------- -Mon Apr 10 10:41:02 UTC 2017 - tchvatal@suse.com - -- Split configure options to have one per line -- Pass over with spec-cleaner -- Enable internal cache -- Enable lvmpolld - -------------------------------------------------------------------- -Mon Apr 10 07:41:10 UTC 2017 - zren@suse.com - -- Add 'lvm2-lockd' subpackage, fate#323203 to lvm2-clvm to not pull - corosync and other deps to the core lvm2 package - -------------------------------------------------------------------- -Fri Feb 24 10:57:16 UTC 2017 - zren@suse.com - -- Improve the layout and readability of spec files - * Place subpackages' sections at the bottom of spec file, making - the layout more reasonable: 1. main package's spec sections are - contiguous without a break; 2. subpackage's spec spections can - also be placed together. - * Get rid of wild-card usage in %files section; spec file is a - perfect place for packager to know what files are exactly delivered - with each RPMs; staring at wild-card doesn't give much information. - * Put bsc#xxx at previous line of each SUSE patch at my best, some - are still missing. - -------------------------------------------------------------------- -Thu Feb 23 06:27:55 UTC 2017 - zren@suse.com - -- Enable lvmetad in sync with SLE - -------------------------------------------------------------------- -Wed Feb 22 11:25:01 UTC 2017 - zren@suse.com - -- Add systemid feature - * update lvm.conf accordingly - * replace whitespaces with tab in lvm.conf - -------------------------------------------------------------------- -Wed Feb 22 10:43:38 UTC 2017 - zren@suse.com - -- Fix several issues about clvmd/cmorriord RAs (bsc#1023283, - bsc#1025560) - * deal with time values passed down with time units - * make correct "return code" - * fix format issue that tab messes up with spaces - -------------------------------------------------------------------- -Wed Feb 22 06:39:27 UTC 2017 - zren@suse.com - -- udev: simplify special-case for md in 69-dm-lvm-metadata.rules - * fix regression of bsc#1012973 - * drop remove-special-case-for-md-in-69-dm-lvm-metadata.rul.patch - * add simplify-special-case-for-md-in-69-dm-lvm-metadata.patch - -------------------------------------------------------------------- -Fri Jan 20 09:46:27 UTC 2017 - tchvatal@suse.com - -- Remove special case for md (bsc#1012973) - * remove-special-case-for-md-in-69-dm-lvm-metadata.rul.patch - -------------------------------------------------------------------- -Tue Jan 10 09:25:17 UTC 2017 - zlliu@suse.com - -- add a new test package named lvm2-testsuite bnc#950089 - * lvm2-testsuite.patch - -------------------------------------------------------------------- -Wed Dec 28 11:08:23 UTC 2016 - tchvatal@suse.com - -- Version update to 2.02.168 release, see WHATS_NEW and WHATS_NEW_DM - files for detailed changelogs - * Refresh patch cluster_support_mirrord_log.diff - -------------------------------------------------------------------- -Wed Dec 28 10:58:29 UTC 2016 - zlliu@suse.com - -- fix bsc#1015357 about blkid_wiping printed warning. - * Add dependency on pkgconfig(blkid) - -------------------------------------------------------------------- -Fri Sep 9 09:24:19 UTC 2016 - tchvatal@suse.com - -- This is sync commit from Leap/SLE12 only -- Add patch pvcreate-enhance-the-error-message.patch bsc#960744 -- Modify GPL-2.0 to GPL-2.0+ and LGPL-2.1 to LGPL-2.1+ to avoid - license conflict with thin-provisioning-tools which is using GPL-3.0 -- Also contains fix for bsc#969310 -- Fix clvmd.ocf and cmirrord to remove "-d" option for cmirrod - (bsc#971334) -- Fix clvmd.ocf to add lvmconf --enable-cluster before start daemon - when locking_type is not 3 or use_lvmetad is 1 in setting - (bsc#970439) -- Modified spec to enable blkid-wiping (fate#319908) -- Fix clvmd binary not found in case that users still use RA from - ocf:lvm2:clvm (bsc#980200) - Add sbindir=$HA_SBIN_DIR for clvmd.ocf and cmirrord.ocf -- The bsc#979635 wnd bsc#991181 as fixed in past thanks to proper /usr - migration code -- Modified raid10_segtype_default from "mirror" to "raid10"(bsc#982329) -- Remove lvm2-clvmd/cmirrord.service and related activation services - from %service_add _pre/post/preun/postun because we start clvmd - /clmirrord and activate via pacemaker and RA. (bsc#980296) -- Lvchange improve refresh by trying to deactivate snapshot thinLV - in case it's preventing merge process change integrated upstream. - (bsc#984321) -- Fixed in past bsc#992843 -- Fixed by upstream bsc#984321 -- Fixed by upstream bsc#970943 -- 69-dm-lvm-metad.rules: Do not process rules for multipath - devices (bsc#bsc#990538, bsc#986734) - Add: 69-dm-lvm-metad.rules-Do-not-process-rules-for-multi.patch -- Rewrite patches to include patch header: - * 10-dm.rules-Reset-state-variable-for-spurious-events.patch - * device-mapper-link - * device-mapper-type_punning.diff - * udev_rules-update.diff -- Sync also lvm.conf - -------------------------------------------------------------------- -Fri Sep 2 08:23:06 UTC 2016 - tchvatal@suse.com - -- Update to 2.02.164 release, WHATS_NEW for changelog - * Mostly because the old tarball was no longer available - * Refresh fuzz on patch: - + make-mirror-legs-on-different-tag-pvs.patch - + cluster_support_mirrord_log.diff -- Update patch to use correct api: - + make-mirror-legs-on-different-tag-pvs.patch - -------------------------------------------------------------------- -Fri Jul 8 13:43:41 UTC 2016 - tchvatal@suse.com - -- Update to 2.02.160 release, read WHATS_NEW for detailed log. - * Most notable is lvconvert refactor/enhancements - * Refresh patch: - + cluster_support_mirrord_log.diff - -------------------------------------------------------------------- -Tue Jun 7 12:08:24 UTC 2016 - tchvatal@suse.com - -- Add thin-provisioning-tools to deps to fix configure warnings - -------------------------------------------------------------------- -Tue Jun 7 11:45:56 UTC 2016 - tchvatal@suse.com - -- Do not run initrd regenerating twice in post - -------------------------------------------------------------------- -Tue Jun 7 11:40:41 UTC 2016 - tchvatal@suse.com - -- Update to 2.02.155 release, read WHATS_NEW for detailed log. - * Mostly few bugfixes around caching -- Refresh patch pvmove_support_clustered_vg.diff - -------------------------------------------------------------------- -Thu May 19 12:07:09 UTC 2016 - tchvatal@suse.com - -- Add compat symlinks for binaries to /sbin/ to avoid errors on - hardcoded systems, obsolete them with leap 43 - -------------------------------------------------------------------- -Thu May 12 08:12:54 UTC 2016 - tchvatal@suse.com - -- Add conflicts on unsplit packages to allow smooth upgrade path - Also do the conflict properly in baselibs.conf - -------------------------------------------------------------------- -Wed May 11 07:54:19 UTC 2016 - tchvatal@suse.com - -- Add dependencies to the devel pacakge in baselibs.conf - -------------------------------------------------------------------- -Wed May 4 10:36:40 UTC 2016 - tchvatal@suse.com - -- Update patch use-mirrortype-asdefault-whenclvmdrunning.patch - to match up the patches/pvmove_support_clustered_vg.diff and not - use the define declared only when building clvm codebase; - it is still broken if someone changes the PID location, but at least - it now does not depend on clvm code -- Regenerate_initrd in post of the lvm2 main pkg -- Update baselibs to point to split-out devicemapper libraries - -------------------------------------------------------------------- -Wed May 4 09:27:30 UTC 2016 - tchvatal@suse.com - -- Keep in sync the common configuration options that are shared among - all the variants dm/lvm2/clvm - -------------------------------------------------------------------- -Tue May 3 14:03:30 UTC 2016 - tchvatal@suse.com - -- Provide symlinks to 1.02 versions of dm and dm-event libs - * this should sort out binary packages without the need of double - rebuilding - -------------------------------------------------------------------- -Tue May 3 13:23:52 UTC 2016 - tchvatal@suse.com - -- Update to 2.02.152 release, read WHATS_NEW for detailed log. -- Refresh patches: - * 10-dm.rules-Reset-state-variable-for-spurious-events.patch - * device-mapper-gcc-warnings.patch - * device-mapper-link.patch - * udev-Check-for-DM_NR_VALID_PATHS.patch -- Slightly tweak btrfs patch as the code changed for the detection: - * fsadm-add-support-for-btrfs.patch - -------------------------------------------------------------------- -Tue May 3 12:55:34 UTC 2016 - tchvatal@suse.com - -- Build and install properly cluster files -- Remove csm-converter.tar.gz as the evms was last present on sle10 - and thus migration is bit out of scope today - -------------------------------------------------------------------- -Tue May 3 09:23:48 UTC 2016 - tchvatal@suse.com - -- Add pre_checkin.sh to allow syncing of patches between packages: - workflow = add everything to lvm2.spec and run pre_checkin.sh - -------------------------------------------------------------------- -Mon May 2 17:41:55 UTC 2016 - tchvatal@suse.com - -- Refresh patch use-mirrortype-asdefault-whenclvmdrunning.patch to - work without clvm code enabled - -------------------------------------------------------------------- -Mon May 2 17:29:09 UTC 2016 - tchvatal@suse.com - -- Regenerate lvm2 tmpfiles after install so they won't populate just - after the reboot -- Split out lvm2 libraries to separate subpkgs per standards -- Rename versioning of plugins patch: - * version-plugins-in-libdir -> version-plugins-in-libdir.patch - -------------------------------------------------------------------- -Mon May 2 16:51:09 UTC 2016 - tchvatal@suse.com - -- Remove evms provides/obsoletes, last seen on sle10 -- Mark configs as such -- Ghost the during-run created dirs -- Install rcbla compat service symlinks - -------------------------------------------------------------------- -Mon May 2 15:13:35 UTC 2016 - tchvatal@suse.com - -- Sync with device-mapper.spec, build only lvm and wipe devicemapper - binaries -- Install in /usr there is no technical reason to keep this out - of /usr - -------------------------------------------------------------------- -Mon May 2 13:23:49 UTC 2016 - tchvatal@suse.com - -- Split out device-mapper and clvm to separate spec files - * No factual changes just deletion in the spec to keep it out - of interacting with those parts - -------------------------------------------------------------------- -Fri Apr 29 11:05:04 UTC 2016 - tchvatal@suse.com - -- Do not explicitely require expat it is only used by thin_provisioning - -------------------------------------------------------------------- -Thu Apr 28 20:40:17 UTC 2016 - tchvatal@suse.com - -- There is no factual reason to keep the device mapper out of /usr - so just match everything else - -------------------------------------------------------------------- -Thu Apr 28 20:12:48 UTC 2016 - tchvatal@suse.com - -- Remove device-mapper-static.patch as there should be no need to - have static library here and it can be reenabled with some explanation - if needed - -------------------------------------------------------------------- -Thu Apr 28 19:57:54 UTC 2016 - tchvatal@suse.com - -- Rename device-mapper-link to device-mapper-link.patch - -------------------------------------------------------------------- -Mon Mar 7 01:53:34 UTC 2016 - lwang@suse.com - -- not output error message inside retry loops to avoid noisy error - message being output inside retry loops in case of remove failure - because device busy. (bsc#940298 boo#957059) - add: libdm-iface-not-output-error-message-inside-retry-loop.patch - -------------------------------------------------------------------- -Thu Jan 28 03:47:31 UTC 2016 - lwang@suse.com - -- Add 'Also=lvm2-lvmetad.socket' in '[Install]' section of lvm2-lvmetad. - service to remove lvm2-lvmetad.socket when disable lvm2-lvmetad.service. - (bsc#960044) - add: lvm2-lvmetad.service-add-Also-lvm2-lvmetad.socket.patch - -------------------------------------------------------------------- -Wed Jan 27 05:38:07 UTC 2016 - lwang@suse.com - -- Split thin-provisioning-tools from lvm2 package for easier maintenance. -- Update to lvm2-2.02.141 (device-mapper-1.02.115) - - Remove patches: - lvm2-do-not-strip-pdata_tools.patch: thin-provisioning-tools patch - lvmetad.c-ignore-lvmetad-global-handle-on-disconnect.patch: - already in upstream - no_buildroot_shared.diff: LVM_SHARED_PATH dropped by upstream - -------------------------------------------------------------------- -Mon Dec 14 14:52:00 CET 2015 - tiwai@suse.de - -- Fix missing dependency on coreutils for initrd macros (boo#958562) -- Call missing initrd macro at postun (boo#958562) - -------------------------------------------------------------------- -Fri Dec 11 16:03:58 UTC 2015 - dimstar@opensuse.org - -- Re-add lvm2-do-not-strip-pdata_tools.patch: this is still needed. - -------------------------------------------------------------------- -Tue Aug 25 02:27:10 UTC 2015 - lwang@suse.com - -- Fix boot failed due to segfault at libc (bnc#942755) - add: lvmetad.c-ignore-lvmetad-global-handle-on-disconnect.patch - -------------------------------------------------------------------- -Thu Aug 6 06:13:20 UTC 2015 - lwang@suse.com - -- fix spec to change /sbin/thin-check to %{_sbindir}/thin-check. - (bnc#940754) - -------------------------------------------------------------------- -Mon Jul 27 19:35:15 UTC 2015 - mpluskal@suse.com - -- Update thin-provisioning tools to 0.5.3 - * Fix bug where the tools would crash if given a very large - metadata device to restore to. - * - thin_delta, thin_trim - * --clear-needs-check flag for cache_check - * space map checking for thin check -- Drop unnecessary lvm2-do-not-strip-pdata_tools.patch - -------------------------------------------------------------------- -Fri Jul 24 13:16:09 UTC 2015 - dvaleev@suse.com - -- Allow building without clvm (boo#923127) - Keep clvm2 building by default - -------------------------------------------------------------------- -Tue Jul 14 09:05:13 UTC 2015 - lwang@suse.com - -- dmeventd: fix dso_name compare error. dso_name is thought as not - empty and doesn't create monitor thread. (bnc#935623) - add: dmeventd-fix-dso-name-wrong-compare.patch - -------------------------------------------------------------------- -Tue Jul 14 05:41:55 UTC 2015 - lzhong@suse.com - -- 13-dm-disk.rules: Import ID_FS_XXX variables from udev - database(bnc#909358) - If the disk is unavailable we need to import the existing ID_FS_XXX - variables from the database, otherwise the filesystem UUID won't - be set and the by-uuid symlink will disappear, leading to - intermittent boot failures - + Import-ID_FS_XXX-variables-bnc909358.patch - -- 10-dm.rules: Reset state variables for spurious events (bsc#932300) - + 10-dm.rules-Reset-state-variable-for-spurious-events.patch - -------------------------------------------------------------------- -Tue May 19 16:30:47 UTC 2015 - jeffm@suse.com - -- Update to 2.02.120 - - Fixed numerous bugs(see WHATS_NEW for full details) - - Deleted dab3ebce-devices-Do-not-support-unpartitioned-DASD.patch (upstream) - -------------------------------------------------------------------- -Fri Apr 3 02:45:02 UTC 2015 - lzhong@suse.com - -- fsadm: add support for btrfs(fate#318413) - fsadm-add-support-for-btrfs.patch - -------------------------------------------------------------------- -Mon Mar 23 07:50:05 UTC 2015 - lwang@suse.com - -- Moved BuildRequires: libcorosync-devel and libdlm-devel from lvm package - to clmv package to avoid dracut build needing cluster stack to be built. - (bsc#923127) - -------------------------------------------------------------------- -Sat Feb 14 14:06:36 UTC 2015 - i@marguerite.su - -- provides libdevmapper.so.1.02 libdevmapper-event.so.1.02 - for VirtualBox. - -------------------------------------------------------------------- -Thu Feb 5 03:13:52 UTC 2015 - lwang@suse.com - -- LVM2 does not support unpartitioned DASD device which has special - format in the first 2 tracks and will siliently discards LVM2 lable - information written to it when pvcreate. (bsc#894202) - Add: dab3ebce-devices-Do-not-support-unpartitioned-DASD.patch -- Delete lvm2-lvmetad.socket from %service_del_preun/postun to avoid - lvmetad.service being started by 'systemctl retry-start' when updating - package. (bsc#914415) - -------------------------------------------------------------------- -Thu Jan 22 09:45:12 UTC 2015 - mpluskal@suse.com - -- Don't replace lvm.conf - -------------------------------------------------------------------- -Mon Jan 12 08:33:14 UTC 2015 - mpluskal@suse.com - -- Re-add lvm2-lvmetad.service to %service_add_pre/post -- Add service registrations for cmirrord and clvm -- Correct category for device-mapper-devel - -------------------------------------------------------------------- -Thu Jan 8 15:21:17 UTC 2015 - dimstar@opensuse.org - -- Add lvm2-do-not-strip-pdata_tools.patch: Change build system to - not strip pdata_tools during installation. We need the file in - tact in order to be able to produce valid debuginfo packages - (boo#910327). - -------------------------------------------------------------------- -Mon Dec 22 07:10:10 UTC 2014 - lwang@suse.com - -- delete lvm2-lvmetad.service from %service_add_pre/post and - %service_del_preun/postun to avoid lvm2-lvmetad.service running - when use_lvmetad=0. (bnc#901859) -- locking_type is set to 3(clustered lock) by default will output - warning message if cmirrord is not running. Set to 1 to be same - with upstream. (bnc#906710) -- Set silent default to 0 to avoid some commands have no output - and to be same with upstream. (bnc#888798) - -------------------------------------------------------------------- -Mon Dec 8 21:19:13 UTC 2014 - jengelh@inai.de - -- spec: replace some shell variables and paths by rpm macros -- shorten filelists by using wildcards - -------------------------------------------------------------------- -Wed Dec 3 03:23:47 UTC 2014 - jeffm@suse.com - -- Update to 2.02.114 - - Removed cmirrord-fix-s390-endian-issue.patch - - Renumbered patches to allow for upstream patches to be applied - before local ones. - -------------------------------------------------------------------- -Wed Nov 19 22:40:13 UTC 2014 - dimstar@opensuse.org - -- Drop libudev-devel BuildRequires: we already buildrequire - pkgconfig(libudev), which is the better choice, as it allows us - to get libudev-mini-devel. - -------------------------------------------------------------------- -Mon Nov 10 09:01:35 UTC 2014 - dimstar@opensuse.org - -- Require device-mapper by device-mapper-devel: otherwise, the .so - symlinks might happen to point to no target. - -------------------------------------------------------------------- -Tue Oct 28 07:18:36 UTC 2014 - lwang@suse.com - -- Delete BuildRequire for device-mapper-devel for all symbols needed - is created in ./include/.symlinks file. -- Add link /usr/sbin/lvm file to avoid others using /usr/sbin/lvm - -------------------------------------------------------------------- -Fri Sep 26 07:09:27 UTC 2014 - lwang@suse.com - -- recover no_buildroot_shared.diff, this may cause gcc error - -------------------------------------------------------------------- -Wed Sep 24 08:24:13 UTC 2014 - lwang@suse.com - -- All patches eliminated since update to 2.02.111 - - Eliminated 25 patches in lvm2 package: - no_buildroot_shared.diff: don't know why necessary change this - pipe_buff-definition.diff: don't know why necessary - handle_extended_devt.diff: not need(bnc#525060 not reproduce even without this patch) - support-drbd-filter.diff: source to patch not found - lvm-path.patch: not needed, upstream fixed hardcode - suppress_locking_failer_message.patch: no doc as to why suppress warning - add_scm_support.patch: definition device_info_t _device_info is no longer exist - upstream patches(18): - man_page_sectors.diff - make_raid1_default.diff - remove-fedora-systemd.patch - 0001-lvmetad-Init-lazily-to-avoid-socket-access-on-config.patch - do_not_read_from_mirrors_have_failed_devices.diff - avoid_reading_failed_dev_in_mirrored_log.diff - mirrored_log_fixed_when_double_fault_occurs.diff - device_is_usable_mem_leak.diff - clmvd-fix-decriptor-leak-on-restart.patch - clvmd-Fix-node-up-down-handing-in-corosync-module.patch - clvmd-Avoid-a-3-way-deadlock-in-dead-client-cleanup.patch - 0001-clvmd-avoid-logging-in-signal-handler.patch - 0001-RAID-Make-RAID-4-5-6-display-sync-status-under-headi.patch - clvmd-fix-debugging-level-set-in-clvmd_set_debug-function.patch - 0001-toolcontext-Only-reopen-stdin-if-readable.patch - systemd-lvm2-activation-generator-report-only-error.patch - systemd-use-umask-022-for-generated-systemd-units-by.patch - remove-quote-in-lvm2-monitor.patch - - - Eliminated 6 patches in device-mapper package: - bug-479104_device-mapper-dmsetup-deps-export.patch:merged with device-mapper-dmsetup-export.patch - udev_sync-cookie_set-1-on-each-dm_task_set_cookie-ca.patch: already included in upstream - increase-minor-version.diff: not needed - segault_for_truncated_string_token.patch: upstream - s390-sectorsize4096.patch: upstream - add_integrate_flush_flag.patch: included in cmirrord_improvment_performance.patch - - - Moved device-mapper patches to lvm2: - device-mapper-dmsetup-export.patch(bnc#707253) - device-mapper-gcc-warnings.patch - device-mapper-static.patch - device-mapper-link - udev_rules-update.diff(bnc#78902,bnc#789019,bnc#789020) - -------------------------------------------------------------------- -Wed Sep 24 02:34:46 UTC 2014 - lwang@suse.com - -- cmirrord has endian issue which cause cmirrord start fail on s390 - patch: cmirrord-fix-s390-endian-issue.patch(bnc#890452,bnc#893684) - -------------------------------------------------------------------- -Thu Sep 11 15:55:50 UTC 2014 - jeffm@suse.com - -- Integrated device-mapper and thin-provisioning packages into - lvm2 package. device-mapper and lvm2 have been included in - the same source repository for some time. - -------------------------------------------------------------------- -Thu Sep 11 05:17:27 UTC 2014 - jeffm@suse.com - -- Update to 2.02.111 - - Eliminated 21 patches. - -------------------------------------------------------------------- -Wed Sep 3 01:48:48 CEST 2014 - ro@suse.de - -- sanitize release line in specfile - -------------------------------------------------------------------- -Fri Jul 4 09:14:10 UTC 2014 - dmzhang@suse.com - -- bnc#885632, set multipath_componnet_detection = 1 per default - -------------------------------------------------------------------- -Fri Jun 13 10:31:48 CEST 2014 - hare@suse.de - -- Generate all symlinks even for multipath events (bnc#875233) - patch: udev-Check-for-DM_NR_VALID_PATHS.patch - -------------------------------------------------------------------- - -Tue May 30 09:01:08 UTC 2014 - lmb@suse.com - -- Versioning for the lvm2-cmirrord dependencies - -------------------------------------------------------------------- -Thu May 29 10:01:35 UTC 2014 - dmzhang@suse.com - -- bnc#878930, systemd is putting out an erroneous message about lvm2-monitor.service - patch: remove-quote-in-lvm2-monitor.patch - -------------------------------------------------------------------- -Wed May 28 16:45:45 UTC 2014 - lwang@suse.com - -- fix lvm2-activation{,-early}.service is marked world-inaccessible (bnc#878481) - add systemd-use-umask-022-for-generated-systemd-units-by.patch -- add comment to lvm.conf to inform user to start lvm2-lvmetad.socket - if it is not started in case of use_lvmetad = 1 (bnc#878473) -- disable lvmetad in lvm.conf to fix it (bnc#862076) - -------------------------------------------------------------------- -Wed May 28 15:46:58 UTC 2014 - lwang@suse.com - -- bnc#878121, modify clvmd.ocf start debug level -d2 to d0 - -------------------------------------------------------------------- -Wed May 28 14:57:23 UTC 2014 - lwang@suse.com - -- bnc#870598, change lockdir to /run/lvm/lock - modify lvm.conf - bnc#854092, backport patches to fix 'nohup lvm' crash - patch:0001-toolcontext-Only-reopen-stdin-if-readable.patch - bnc#870824, defaut the mirrortype to mirror when clvmd is running - patch:use-mirrortype-asdefault-whenclvmdrunning.patch - bnc#859824, get rid of the annoying message 'LVM activation generator successfully completed' - patch:systemd-lvm2-activation-generator-report-only-error.patch - bnc#837538, fix closedown of clvmd - patch:fix-closedown-before-thread-finish.patch - -------------------------------------------------------------------- -Wed May 28 14:50:13 UTC 2014 - lwang@suse.com - -- Added: clvmd-fix-debugging-level-set-in-clvmd_set_debug-function.patch - This patch is missed in sle12, added from sle11sp3 - Fix debugging level set in clvmd_set_debug by using the correct - variable (bnc#785467),change default -d0 to -d2 - -------------------------------------------------------------------- -Wed May 28 14:34:04 UTC 2014 - meissner@suse.com - -- add missing %pre section, specify all sockets and services in - all 4 calls. - -------------------------------------------------------------------- -Mon May 12 08:11:08 UTC 2014 - lwang@suse.com - --bnc#871176, 0001-RAID-Make-RAID-4-5-6-display-sync-status-under-headi.patch - -------------------------------------------------------------------- -Wed Apr 16 09:11:32 UTC 2014 - trenn@suse.de - -- Switch from mkinitrd to dracut - - Dracut already has a lvm module and takes care that the right stuff is - include into initrd, therefore remove: - - mkinitrd-lvm2-boot.sh - - mkinitrd-lvm2-setup.sh - mkinitrd scripts from sources - - Add dracut macros in %post and %posttrans to ensure initrd recreation -- Remove unneeded comments in .spec file -- Do not compile in DATE and TIME to avoid build unneeded retriggering in obs - Add: cmirrord_remove_date_time_from_compilation.patch - -------------------------------------------------------------------- -Tue Apr 8 08:47:51 UTC 2014 - lwang@suse.com - -- bnc#862403, modify lvm.conf to add filter to exclude floppy and cdrom - -------------------------------------------------------------------- -Tue Mar 25 09:08:16 UTC 2014 - dmzhang@suse.com - -- backport more patches from slesp3(bnc#831518) - scm support: - add_scm_support.patch - mirrored log fix: - do_not_read_from_mirrors_have_failed_devices.diff - avoid_reading_failed_dev_in_mirrored_log.diff - mirrored_log_fixed_when_double_fault_occurs.diff - device_is_usable_mem_leak.diff - clvmd: - clmvd-fix-decriptor-leak-on-restart.patch - clvmd-Avoid-a-3-way-deadlock-in-dead-client-cleanup.patch - clvmd-Fix-node-up-down-handing-in-corosync-module.patch - 0001-clvmd-avoid-logging-in-signal-handler.patch - fate#314367, missing patch - lvconvert-cluster-mirrored-disk-failed.patch - other fix: - pvmove_support_clustered_vg.diff - suppress_format1_size_warning.diff - display-dm-name-for-lv-name.diff - no longer needed patches: - autoactivate-lvmetad-with-generator.patch - -------------------------------------------------------------------- -Thu Feb 20 16:23:21 UTC 2014 - arvidjaar@gmail.com - -- add 0001-lvmetad-Init-lazily-to-avoid-socket-access-on-config.patch - avoid connect to lvmetad.socket too early to prevent deadlock during - "systemctl daemon-reload" (bnc#862076) - -------------------------------------------------------------------- -Thu Feb 13 06:39:47 UTC 2014 - dmzhang@suse.com - -- fate#315092, improve performance of cluster mirror - add cmirrord_improvment_performance.patch - -------------------------------------------------------------------- -Wed Feb 12 15:17:05 UTC 2014 - arvidjaar@gmail.com - -- add autoactivate-lvmetad-with-generator.patch - if use_lvmetad=1, - automatically activate lvm2-lvmetad.socket to ensure lvmetad is - started when required (bnc#862076) - -------------------------------------------------------------------- -Wed Jan 22 14:34:41 UTC 2014 - henrik.kuhn@origenis.de - -- added a lvm2-devel package definition - -------------------------------------------------------------------- -Mon Jan 6 07:43:59 UTC 2014 - dmzhang@suse.com - -- add csm_convert to lvm2-clvm package(bnc#854076) -- system fails to boot due to missing /usr/sbin/lvm(bnc#837954) -- lvm2 systemd incorrectly uses dependencies on Fedora services(bnc#851741) -- set use_lvmetad = 1 as default of lvm.conf(bnc#854413) -- drop patch dont_ignore_tmp_device_file.diff -- backport patches from sle11sp3 - fate#314367,cluster_support_mirrord_log.diff - fate#312248,make-mirror-legs-on-different-tag-pvs.patch - improve-mirror-legs-on-different-tag-pvs.patch -- set default mirror to md_raid1 insdead of dm_mirror for better performance -- enable lvm2-lvmetad.socket by default - -------------------------------------------------------------------- -Sun Oct 27 21:44:41 CET 2013 - ohering@suse.de - -- Remove /etc/sysconfig/lvm to avoid errors during mkinitrd run - LVM_VGS_ACTIVATED_ON_BOOT is not handled anymore with systemd -- Remove fillup and insserv from PreReq - -------------------------------------------------------------------- -Mon Oct 21 08:09:41 UTC 2013 - dmzhang@suse.com - -- bnc#779965, use export before %configure in spec - -------------------------------------------------------------------- -Wed Sep 11 10:18:47 CEST 2013 - fcrozat@suse.com - -- Add lvm-path.patch: fix lvm binary path in systemd generator. -- Use %_tmpfilesdir macro for tmpfiles directory. - -------------------------------------------------------------------- -Sun Sep 8 22:20:46 UTC 2013 - crrodriguez@opensuse.org - -- Set all "run" directories relative to /run not just the "lock" - location -- Install /usr/lib/tmpfiles.d/lvm2.conf as required to ensure - such runtime directories are _always_ there. - -------------------------------------------------------------------- -Wed Aug 28 11:15:54 UTC 2013 - meissner@suse.com - -- replace BuildRequires: systemd by pkgconfig(udev) again - to avoid cycles. - -------------------------------------------------------------------- -Tue Aug 20 07:59:06 UTC 2013 - dmzhang@suse.com - -- add systemd support to lvm2 package - split device-mapper to another package. - -------------------------------------------------------------------- -Tue Jul 16 14:55:10 CEST 2013 - ohering@suse.de - -- Remove usage of absolute paths in mkinitrd scripts - -------------------------------------------------------------------- -Tue Jul 16 14:39:31 CEST 2013 - ohering@suse.de - -- Fix parsing lvdisplay -c output with more than 10 volumes in - mkinitrd-lvm2-setup.sh (bnc#826727) - -------------------------------------------------------------------- -Mon Apr 22 14:01:29 UTC 2013 - cfarrell@suse.com - -- license update: GPL-2.0 and LGPL-2.1 - Presence of multiple files (both GPL and LGPL) with "only" licenses - -------------------------------------------------------------------- -Tue Apr 16 11:57:28 UTC 2013 - mmeister@suse.com - -- Added url as source. - Please see http://en.opensuse.org/SourceUrls - -------------------------------------------------------------------- -Fri Feb 15 11:44:36 UTC 2013 - rmilasan@suse.com - -- Move all udev releated files in the appropriate udev directory. - -------------------------------------------------------------------- -Wed Nov 28 09:37:23 UTC 2012 - rmilasan@suse.com - -- udev_sync-cookie_set-1-on-each-dm_task_set_cookie-ca.patch: - cookie_set=1 on each dm_task_set_cookie call (bnc#788882) - -------------------------------------------------------------------- -Mon Nov 12 10:41:45 UTC 2012 - seife+obs@b1-systems.com - -- fix 10-dm.rules (bnc#789021) -- port dmsetup export patch to new LVM code (bnc#789019,bnc#789020) - -------------------------------------------------------------------- -Mon Nov 5 21:10:28 UTC 2012 - hrvoje.senjan@gmail.com - -- Now also fix devmapper-setup - -------------------------------------------------------------------- -Mon Nov 5 12:08:26 UTC 2012 - hrvoje.senjan@gmail.com - -- Adapt mkinitrd scripts to new udev locataion - -------------------------------------------------------------------- -Sun Nov 4 02:31:00 UTC 2012 - crrodriguez@opensuse.org - -- Fix booting ... place udev rules in the proper location.. - -------------------------------------------------------------------- -Thu Oct 18 12:35:30 UTC 2012 - hrvoje.senjan@gmail.com - -- Change the default locking dir to reflect the change in filesystem package - -------------------------------------------------------------------- -Wed Oct 17 23:01:54 UTC 2012 - nfbrown@suse.com - -- lvm2.spec: merge rules for device-mapper and - lvm2-clvm packages, so there is only one - spec file and all packages are built consistently. - -------------------------------------------------------------------- -Tue Oct 16 09:34:40 UTC 2012 - coolo@suse.com - -- build against the minimal udev to avoid cycles -- the sysvinit requires are no longer necessary - -------------------------------------------------------------------- -Tue Oct 16 04:19:59 UTC 2012 - nfbrown@suse.com - -- Upgrade to LVM2-2-02-98. Improvements include - improved interaction with udev and systemd, - improved dmraid support, and new command - "blkdeactivate". - -------------------------------------------------------------------- -Thu Sep 27 01:11:17 UTC 2012 - nfbrown@suse.com - -- lvm2.spec: make sure MODPROBE_CMD is set properly - when configure is run. Without it, modules are - not auto-loaded. (bnc#779965) - -------------------------------------------------------------------- -Fri Apr 20 07:52:09 UTC 2012 - rmilasan@suse.com - -- Run update of initrd at %post and %postun. - We need this to make sure initrd reflects the updates. - -------------------------------------------------------------------- -Sun Sep 18 17:17:12 UTC 2011 - jengelh@medozas.de - -- Remove redundant tags/sections from specfile - (cf. packaging guidelines) -- Use %_smp_mflags for parallel build - -------------------------------------------------------------------- -Fri May 27 09:09:35 UTC 2011 - lnussel@suse.de - -- don't unconditionally enable boot.lvm by default. yast takes care - of enabling the script when creating lvm volumes. -- don't hard require boot.device-mapper in boot.dmraid. dm-mod is - autoloaded when accessing /dev/mapper/control anyways. - -------------------------------------------------------------------- -Thu Mar 10 11:07:22 UTC 2011 - coolo@novell.com - -- prereq sysvinit(boot.device-mapper) to fix build - -------------------------------------------------------------------- -Tue Feb 15 08:48:48 UTC 2011 - xwhu@novell.com - -- Update to LVM 2.02.84 - - Fix handling of simultaneous mirror image and mirrored log - image failure. - - Fix vgremove to allow removal of VG with missing PVs - - Remove log directly if all mirror images of a mirrored log fail - - Fix potential for corruption during cluster mirror device - failure - - Allow internal suspend and resume of origin without its - snapshots - - Allow exclusive activation of snapshots in a cluster - -------------------------------------------------------------------- -Thu Nov 11 12:24:04 UTC 2010 - coolo@novell.com - -- own parent directories for device-mapper files - -------------------------------------------------------------------- -Sun Oct 31 12:37:02 UTC 2010 - jengelh@medozas.de - -- Use %_smp_mflags - -------------------------------------------------------------------- -Fri Jul 16 10:11:59 UTC 2010 - xwhu@novell.com - -- bnc#556177, undefined symbol error while loading dmevent so. - -------------------------------------------------------------------- -Wed Jun 23 05:50:12 UTC 2010 - xwhu@novell.com - -- Update to LVM.2.02.67 - - Require partial option in lvchange --refresh for partial LVs - - Add replicators' LVs to dtree for activation - - Add lvm2app interfaces to lookup a vgname from a pvid and pvname - - Fix memory leak for invalid regex pattern input - - Disallow the direct removal of a merging snapshot - - Fix lvconvert error message when existing mirrored LV is not found - - Add LVM_SUPPRESS_LOCKING_FAILURE_MESSAGES environment variable - - Improve snapshot merge metadata import validation - -------------------------------------------------------------------- -Tue Jun 1 14:06:38 UTC 2010 - xwhu@novell.com - -- Specify udev_sync and udev_rules in /etc/lvm/lvm.conf - -------------------------------------------------------------------- -Fri May 21 03:41:47 UTC 2010 - xwhu@novell.com - -- Fix mkinitrd-lvm2 to use udev rules for lvm2 - -------------------------------------------------------------------- -Mon Apr 26 16:51:10 CEST 2010 - ro@suse.de - -- fix lvm2-clvm specfile so that patches apply - -------------------------------------------------------------------- -Sat Apr 3 03:17:12 UTC 2010 - xwhu@novell.com - -- Upgrade to LVM2 2.02.58 - - Rename liblvm.so to liblvm2app.so - - Introduce lvconvert --use_policies - - Add readonly locking type to replace implementation of - --ignorelockingfailure - - Add liblvm APIs to implement creation and deletion of VGs - - Add activation/udev_sync to lvm.conf - - Enable dmeventd monitoring section of config file by default - - Add --pvmetadatacopies for pvcreate, vgcreate, vgextend, - vgconvert. - -------------------------------------------------------------------- -Sun Nov 29 06:58:45 UTC 2009 - xwhu@novell.com - -- Link liblvm2cmd.so to libdevmapper-event.so (bnc#556177) - -------------------------------------------------------------------- -Sun Nov 15 10:40:19 CET 2009 - meissner@suse.de - -- quilt refreshed all patches. - -------------------------------------------------------------------- -Mon Oct 12 13:31:12 UTC 2009 - xwhu@novell.com - -- make $tmp_mnt/etc/sysconfig before copying file into (bnc#525237) - -------------------------------------------------------------------- -Wed Sep 23 06:38:47 UTC 2009 - xwhu@novell.com - -- Add -lvm2- infix to mkinitrd scripts -- collect_lvm reads /etc/sysconfig/lvm (bnc#523944) - -------------------------------------------------------------------- -Fri Aug 28 07:37:13 UTC 2009 - xwhu@novell.com - -- Support extended dev with major 259 - -------------------------------------------------------------------- -Fri Jun 26 11:08:39 CST 2009 - xwhu@suse.de - -- bnc#510058, typo in dont_ignore_tmp_device_file.diff, which hangs - mkinitrd - -Mon May 25 16:47:18 CST 2009 - xwhu@suse.de -------------------------------------------------------------------- - -- Cleanup scripts for mkinitrd, so that udev can activate root LV. - -Mon Apr 27 18:37:32 CST 2009 - xwhu@suse.de -------------------------------------------------------------------- - -- Upgrade to LVM2 2.02.45 - Avoid scanning empty metadata areas for VG names - Pass --test from lvresize to fsadm as --dry-run. - Remove duplicate cpg_initialize from clvmd startup. - Add option to /etc/sysconfig/cluster to select cluster type for clvmd. - Remove external dependency on the 'cut' command from fsadm. - Fix pvs segfault when pv mda attributes requested for not available PV. - Fix lvresize size conversion for fsadm when block size is not 1K. - Add pv_mda_size to pvs and vg_mda_size to vgs. - Add "--refresh" functionality to vgchange and vgmknodes. - Fix vgrename using UUID if there are VGs with identical names. - Fix segfault when invalid field given in reporting commands. - Merge device-mapper into the lvm2 tree. - Exit with non-zero status from vgdisplay if couldn't show any requested VG. - Fix snapshot monitoring library to not cancel monitoring invalid snapshot. - Fix conversion of md chunk size into sectors. - Fix misleading error message when there are no allocatable extents in VG. - Fix handling of PVs which reappeared with old metadata version. - Fix mirror DSO to call vgreduce with proper parameters. - Fix validation of --minor and --major in lvcreate to require -My always. - Fix release: clvmd build, vgreduce consolidate & tests, /dev/ioerror warning. - -------------------------------------------------------------------- -Tue Mar 31 11:59:03 CST 2009 - xwhu@suse.de - -- Handle the case that drbd virtual device has the same PV uuid - with the underlining physical device. - -------------------------------------------------------------------- -Wed Mar 25 23:14:29 CST 2009 - xwhu@suse.de - -- Do not filter out tmp device file(bnc#485572) -- Do not try to activate VG when all paths are down already(bnc#479104) - -------------------------------------------------------------------- -Wed Mar 25 22:50:50 CST 2009 - xwhu@suse.de - -- Split CLVMD as a independent package - -------------------------------------------------------------------- -Tue Mar 24 00:23:13 CST 2009 - xwhu@suse.de - -- Fix for bnc#486952 - use "killproc -INT" instead of "killproc" - handle signal in the main loop thread only - -------------------------------------------------------------------- -Thu Feb 26 14:08:22 CST 2009 - xwhu@suse.de - -- add daemon_options parameter to clvmd.ocf -- check EUNLOCK for dlm_ls_unlock_wait - -------------------------------------------------------------------- -Wed Feb 25 18:39:26 CST 2009 - xwhu@suse.de - -- bnc#479422, check both lksb.sb_status and status. - -------------------------------------------------------------------- -Fri Feb 20 10:24:00 CET 2009 - xwhu@suse.de - -- simplify patch of dlm lock to clvmd - -------------------------------------------------------------------- -Fri Feb 20 08:06:37 CET 2009 - xwhu@suse.de - -- bnc#476861, clvmd.ocf doesn't report the correct status when - kill -9 doesn't terminate the process - -------------------------------------------------------------------- -Thu Jan 22 13:00:26 CST 2009 - xwhu@suse.de - -- bnc#464851, use dlm instead of openais lck - -------------------------------------------------------------------- -Wed Jan 21 15:23:31 CET 2009 - ro@suse.de - -- do not require a specific package release from subpackage - (bnc#467704) - -------------------------------------------------------------------- -Wed Dec 3 18:51:27 CST 2008 - xwhu@suse.de - -- Add OCF script for clvmd - -------------------------------------------------------------------- -Wed Nov 12 02:22:56 CST 2008 - xwhu@suse.de - -- bnc#443677. dmeventd DSOs are linked against liblvm2cmd - -------------------------------------------------------------------- -Thu Oct 9 11:54:47 CEST 2008 - xwhu@suse.de - -- bnc#432782. Remove vol_id in 64-lvm2.rules. - -------------------------------------------------------------------- -Mon Sep 29 14:09:33 CEST 2008 - ro@suse.de - -- buildreq: replace openais-devel by libopenais-devel - -------------------------------------------------------------------- -Wed Sep 24 18:25:40 CEST 2008 - ro@suse.de - -- change "udevsettle" to "udevadm settle" - -------------------------------------------------------------------- -Sat Sep 13 11:59:34 CEST 2008 - xwhu@novell.com - -- added missing directories to filelist - -------------------------------------------------------------------- -Wed Sep 10 13:43:17 CEST 2008 - xwhu@novell.com - -- Upgrade to 2.0.39 - Fix up cache for PVs without mdas after consistent VG metadata is processed. - Update validation of safe mirror log type conversions in lvconvert. - Fix lvconvert to disallow snapshot and mirror combinations. - Fix reporting of LV fields alongside unallocated PV segments. - Add --unquoted and --rows to reporting tools. - Avoid undefined return value after _memlock manipulation in lvm2_run. - Avoid link failure if configured without --enable-cmdlib or --enable-readline. - Make clvmd return at once if other nodes down in a gulm or openais cluster. - Fix and improve readahead 'auto' calculation for stripe_size. - Fix lvchange output for -r auto setting if auto is already set. - Fix ambiguous use of identifier error_message_produced. - Fix add_mirror_images not to dereference uninitialized log_lv upon failure. - Don't call openlog for every debug line output by clvmd. - Add --force to lvextend and lvresize. - Fix vgchange to not activate mirror leg and log volumes directly. - Fix test directory clean up in make distclean. -- pvcreate/pvremove/pvchange will create symlinks in /dev/disk/by-id/ - to the device file -------------------------------------------------------------------- -Wed Sep 3 11:09:34 CEST 2008 - hare@suse.de - -- Call mkinitrd_setup during %post and %postun (bnc#413709) - -------------------------------------------------------------------- -Tue Sep 2 16:59:00 CEST 2008 - hare@suse.de - -- Fix initrd scripts if no 'root=' parameter is given - (bnc#421546) - -------------------------------------------------------------------- -Mon Aug 25 12:49:58 CEST 2008 - aj@suse.de - -- Provide and obsolete evms. - -------------------------------------------------------------------- -Mon Aug 25 12:04:29 CEST 2008 - prusnak@suse.cz - -- enabled SELinux support [Fate#303662] - -------------------------------------------------------------------- -Fri Aug 22 12:58:08 CEST 2008 - xwhu@suse.de - -- Remove the -p option for fillup_and_insserv - -------------------------------------------------------------------- -Wed Aug 13 06:18:44 CEST 2008 - xwhu@suse.de - -- Add Should-Stop to boot.lvm - -------------------------------------------------------------------- -Thu Jul 31 16:13:59 CST 2008 - xwhu@suse.de - -- repack LVM2.2.02.38.tar.bz2 into bz2 format - -------------------------------------------------------------------- -Wed Jul 23 15:38:13 CEST 2008 - hare@suse.de - -- Include mkinitrd scriptlets. - -------------------------------------------------------------------- -Fri Jun 27 07:51:31 CEST 2008 - xwhu@suse.de - -- update to 2.02.38 - Fix tracking of validity of PVs with no mdas in lvmcache. - Fix return values for reporting commands when run with no PVs, LVs, or VGs. - Fix free_count when reading pool metadata. - Fix segfault when using pvcreate on a device containing pool metadata. - Fix segfault after _free_vginfo by remembering to remove vginfo from list. - Fix setpriority error message to signed int. - Fix uninitialised mutex in clvmd if all daemons are not running at startup. - Fix fsadm.sh to work with older blockdev, blkid & readlink binaries. - Fix lvresize to pass new size to fsadm when extending device. - Fix nodes list in clvmd-openais, and allow for broadcast messages. - Fix vgsplit internal counting of snapshot LVs. - Fix vgmerge snapshot_count when source VG contains snapshots. - Fix internal LV counter when a snapshot is removed. - Fix metadata corruption writing lvm1-formatted metadata with snapshots. - Fix lvconvert -m0 allocatable space check. - Fix vgdisplay 'Cur LV' field to match lvdisplay output. - Fix lv_count report field to exclude hidden LVs. - Fix vgsplit to only move hidden 'snapshotN' LVs when necessary. - Fix vgreduce to use vg_split_mdas to check sufficient mdas remain. - Fix orphan VG name used for format_pool. - Fix output if overriding command_names on cmdline. - Fix vgsplit locking of new VG (2.02.30). - Fix redundant lvresize message if vg doesn't exist. - Fix another allocation bug with clvmd and large node IDs. - Fix uninitialised variable in clvmd that could cause odd hangs. - -------------------------------------------------------------------- -Mon May 5 11:19:29 CEST 2008 - aj@suse.de - -- Fix requires of clvm. - -------------------------------------------------------------------- -Wed Apr 30 12:17:29 CEST 2008 - hare@suse.de - -- Fixup build errors - -------------------------------------------------------------------- -Wed Apr 30 09:22:55 CEST 2008 - xwhu@suse.de - -- Cleanup clvmd code on openais stack to make it work -- Split clvmd into a separate package (bnc#384708) - -------------------------------------------------------------------- -Wed Apr 23 12:16:22 CEST 2008 - xwhu@suse.de - -- Change async lock primitives to sync - -------------------------------------------------------------------- -Wed Apr 23 07:29:12 CEST 2008 - xwhu@suse.de - -- Fix build aginst beta - definition of PIPE_BUF is missing - -------------------------------------------------------------------- -Tue Apr 22 10:47:17 CEST 2008 - xwhu@suse.de - -- Enable CLVM support in LVM2 - -------------------------------------------------------------------- -Wed Feb 20 11:47:30 CET 2008 - fehr@suse.de - -- allow large minor number on command line with option --minor - (bnc#362960) - -------------------------------------------------------------------- -Wed Feb 13 14:11:32 CET 2008 - fehr@suse.de - -- update to new version 2.02.33 - Fix mirror log name construction during lvconvert. (2.02.30) - Make monitor_dev_for_events recurse through the stack of LVs. - Clean up some more compiler warnings. - -------------------------------------------------------------------- -Thu Feb 7 08:59:16 CET 2008 - hare@suse.de - -- Enable dmeventd (FATE#303381) - -------------------------------------------------------------------- -Thu Jan 31 12:01:35 CET 2008 - fehr@suse.de - -- update to new version 2.02.32 - Fix two check_lv_segments error messages to show whole segment - Refactor mirror log attachment code - Fix pvs, vgs, lvs error exit status on some error paths - Avoid readahead error message with default setting of lvcreate -M1 - Set default readahead to twice maximium stripe size - Reinstate VG extent size and stripe size defaults (halved) - Change vgsplit -l (for unimplemented --list) into --maxlogicalvolumes - Fix process_all_pvs to detect non-orphans with no MDAs correctly - Don't use block_on_error with mirror targets version 1.12 and above - Update vgsplit to accept vgcreate options when new VG is destination - Update vgsplit to accept existing VG as destination - lvconvert waits for completion of initial sync by default - Refactor vgcreate for parameter validation and add tests - Add new convert_lv field to lvs output - Print warning when lvm tools are running as non-root - Prevent pvcreate from overwriting MDA-less PVs belonging to active VGs - Fix a segfault if using pvs with --all argument - Update --uuid argument description in man pages - Fix vgreduce PV list processing not to process every PV in the VG - Extend lvconvert to use polldaemon - Add support for stacked mirrors - Major restructuring of pvmove and lvconvert layer manipulation code - -------------------------------------------------------------------- -Mon Dec 10 12:29:12 CET 2007 - fehr@suse.de - -- update to new version 2.02.29 - Accept sizes with --readahead argument. - Store size arguments as sectors internally. - Attempt to remove incomplete LVs with lvcreate zeroing/activation problems. - Add read_ahead activation code. - Extend readahead arg to accept "auto" and "none". - Prevent lvconvert -s from using same LV as origin and snapshot. - Fix human-readable output of odd numbers of sectors. - Show 'not usable' space when PV is too large for device in pvdisplay. - Ignore and fix up any excessive device size found in metadata. - Detect md superblocks version 1.0, 1.1 and 1.2. - Handle new sysfs subsystem/block/devices directory structure. - Add %PVS extents option to lvresize, lvextend, and lvcreate. - Modify lvremove to prompt for removal if LV active on other cluster nodes. - Add '-f' to vgremove to force removal of VG even if LVs exist. - -------------------------------------------------------------------- -Thu Nov 22 14:49:39 CET 2007 - fehr@suse.de - -- adapt man page for pvdisplay to program (#342862) -- fix spec file to detect path to modprobe binary (#331968) - -------------------------------------------------------------------- -Thu Nov 22 12:44:16 CET 2007 - fehr@suse.de - -- update to new version 2.02.28 - Fix inconsistent licence notices: executables are GPLv2; libraries LGPLv2.1. - Add support for renaming mirrored LVs. - Add --mirrorlog argument to specify log type for mirrors. - Fix lvdisplay man page to say LV size is reported in sectors, not KB. - Fix snapshot cow area deactivation if origin is not active. - Add vg_mda_count and pv_mda_count columns to reports. - Handle vgsplit of an entire VG as a vgrename. - Print warnings to stderr instead of stdout. - Update vgcfgrestore man page. - Allow keyboard interrupt during user prompts when appropriate. - Add -f to vgcfgrestore to list metadata backup files. - Add pvdisplay --maps implementation. - Remove unsupported LVM1 options from vgcfgrestore man page. - Update vgcfgrestore man page to show mandatory VG name. - Update vgrename man page to include UUID and be consistent with lvrename. - -------------------------------------------------------------------- -Mon May 7 14:02:16 CEST 2007 - fehr@suse.de - -- update to new version 2.02.25 - Add devices/preferred_names config regex list for displayed device names - Update pvck to include text metadata area and record detection - Fix creation and conversion of mirrors with tags - Fix vgsplit for lvm1 format (set and validate VG name in PVs metadata) - Split metadata areas in vgsplit properly - Fix vgremove to require at least one vg argument - Fix reading of striped LVs in LVM1 format - Fix vgsplit to handle mirrors - Fix md signature check to handle both endiannesses - Add devices/ignore_suspended_devices to ignore suspended dm devices - -------------------------------------------------------------------- -Tue Feb 20 16:57:34 CET 2007 - fehr@suse.de - -- add boot.dmraid to Should-Start in boot.lvm2 - -------------------------------------------------------------------- -Sun Feb 11 18:49:50 CET 2007 - ro@suse.de - -- fix build as non-root and use DESTDIR - -------------------------------------------------------------------- -Mon Jan 8 16:15:23 CET 2007 - fehr@suse.de - -- fix buggy pointer arithmetic (#232117) - -------------------------------------------------------------------- -Mon Dec 18 10:39:49 CET 2006 - fehr@suse.de - -- update to new version 2.02.17 - Add missing pvremove error message when device doesn't exist. - When lvconvert allocates a mirror log, respect parallel area constraints. - Use loop to iterate through the now-ordered policy list in _allocate(). - Check for failure to allocate just the mirror log. - Introduce calc_area_multiple(). - Support mirror log allocation when there is only one PV: area_count now 0. - Fix detection of smallest area in _alloc_parallel_area() for cling policy. - Add manpage entry for clvmd -T - Fix gulm operation of clvmd, including a hang when doing lvchange -aey - Fix hang in clvmd if a pre-command failed. - -------------------------------------------------------------------- -Wed Dec 6 10:07:57 CET 2006 - fehr@suse.de - -- update to new version 2.02.16 - Fix VG clustered read locks to use PR not CR. - Adjust some alignments for ia64/sparc. - Fix mirror segment removal to use temporary error segment. - Add -T (startup timeout) switch to clvmd. - Install lvmdump by default. - Fix check for snapshot module when activating snapshot. - Fix pvremove error path for case when PV is in use. - Warn if certain duplicate config file entries are seen. - Fix --autobackup argument which could never disable backups. - Fix a label_verify error path. - Fix adjusted_mirror_region_size() to handle 64-bit size. - Add some missing bounds checks on 32-bit extent counters. - Add Petabyte and Exabyte support. - Fix lvcreate error message when 0 extents requested. - lvremove man page: volumes must be cluster inactive before being removed. - Protect .cache manipulations with fcntl locking. - Change .cache timestamp comparisons to use ctime. - Fix mirror log LV writing to set all bits in whole LV. - Fix high-level free space check for partial allocations. - -------------------------------------------------------------------- -Mon Oct 30 12:19:07 CET 2006 - fehr@suse.de - -- update to new version 2.02.13 to finally fix bug #178321 - Add couple of missing files to tools/Makefile CLEAN_TARGETS. - When adding snapshot leave cow LV mapped device active after zeroing. - Fix a clvmd debug message. - Add dev_flush() to set_lv(). - Add lvchange --resync. - Perform high-level free space check before each allocation attempt. - Don't allow a node to remove an LV that's exclusively active on anther node. - Cope if same PV is included more than once in cmdline PE range list. - Set PV size to current device size if it is found to be zero. - Add segment parameter to target_present functions. - -------------------------------------------------------------------- -Tue Oct 17 10:55:33 CEST 2006 - fehr@suse.de - -- update to new version 2.02.12 - Fix pvdisplay to use vg_read() for non-orphans. - Fall back to internal locking if external locking lib is missing or fails. - Retain activation state after changing LV minor number with --force. - Propagate clustered flag in vgsplit and require resizeable flag. - Add clvmd function to return the cluster name. not used by LVM yet. - Add cling allocation policy. - Change _check_contiguous() to use _for_each_pv(). - Extend _for_each_pv() to allow termination without error. - Abstract _is_contiguous(). - Remove duplicated pv arg from _check_contiguous(). - Accept regionsize with lvconvert. - Add report columns with underscore before field names ending 'size'. - Correct regionsize default on lvcreate man page (MB). - Fix clvmd bug that could cause it to die when a node with a long name crashed - Add device size to text metadata. - Fix format_text mda_setup pv->size and pv_setup pe_count calculations. - Fix _for_each_pv() for mirror with core log. - Add lvm_dump.sh script to create a tarball of debugging info from a system. - Capture error messages in clvmd and pass them back to the user. - Remove unused #defines from filter-md.c. - Make clvmd restart init script wait until clvmd has died before starting it. - Add -R to clvmd which tells running clvmds to reload their device cache. - Add LV column to reports listing kernel modules needed for activation. - Show available fields if report given invalid field. (e.g. lvs -o list) - Add timestamp functions with --disable-realtime configure option. - Add %VG, %LV and %FREE suffices to lvcreate/lvresize --extents arg. - Fix two potential NULL pointer derefs in error cases in vg_read(). - Separate --enable-cluster from locking lib options in lvmconf.sh. - Add a missing comma in lvcreate man page. - -------------------------------------------------------------------- -Wed Sep 20 13:26:58 CEST 2006 - fehr@suse.de - -- update to new version 2.02.10 - Fix lvconvert mirror change case detection logic. - Fix mirror log detachment so it correctly becomes a standalone LV. - Extend _check_contiguous() to detect single-area LVs. - Include mirror log (untested) in _for_each_pv() processing. - Use MIRROR_LOG_SIZE constant. - Remove struct seg_pvs from _for_each_pv() to generalise. - Avoid adding duplicates to list of parallel PVs to avoid. - Fix several incorrect comparisons in parallel area avoidance code. - Fix segment lengths when flattening existing parallel areas. - Log existing parallel areas prior to allocation. - Fix mirror log creation when activation disabled. - Don't attempt automatic recovery without proper locking. - When using local file locking, skip clustered VGs. - Add fallback_to_clustered_locking and fallback_to_local_locking parameters. - lvm.static uses built-in cluster locking instead of external locking. - Don't attempt to load shared libraries if built statically. - Change default locking_lib to liblvm2clusterlock.so. - Add skip_dev_dir() to process command line VGs. - Stop clvmd complaining about nodes that have left the cluster. - Move lvm_snprintf(), split_words() and split_dm_name() into libdevmapper. - Add lvconvert man page. - Add mirror options to man pages. - Prevent mirror renames. - Move CMDLIB code into separate file and record whether static build. - -------------------------------------------------------------------- -Wed Sep 13 13:00:55 CEST 2006 - fehr@suse.de - -- change BuildRequires to device-mapper-devel - -------------------------------------------------------------------- -Mon Aug 21 12:26:17 CEST 2006 - fehr@suse.de - -- update to new version 2.02.09 - Fix PE_ALIGN for pagesize over 32KB. - Separate out LVM1_PE_ALIGN and pe_align(). - Add lvm_getpagesize wrapper. - Add --maxphysicalvolumes to vgchange. - -------------------------------------------------------------------- -Wed Aug 16 11:16:13 CEST 2006 - fehr@suse.de - -- update to new version 2.02.08 - Add checks for duplicate LV name, lvid and PV id before writing metadata. - Report all sanity check failures, not just the first. - Fix missing lockfs on first snapshot creation. (#197850) - Add unreliable --trustcache option to reporting commands. - Fix locking for mimage removal. - Fix clvmd_init_rhel4 'status' exit code. - -------------------------------------------------------------------- -Fri Jul 28 13:05:38 CEST 2006 - olh@suse.de - -- remove dropped boot.ibmsis from boot.lvm -- boot.rootfsck should start before boot.lvm (#181972) - -------------------------------------------------------------------- -Wed Jul 26 16:34:45 CEST 2006 - fehr@suse.de - -- update to new version 2.02.06 - Fix activation logic in lvchange --persistent. - Don't ignore persistent minor numbers when activating. - Fix vgreduce --removemissing to return success if VG is already consistent. - Fix return code if VG specified on command line is not found. - Fix PV tools to include orphaned PVs in default output again. - Prevent snapshots of mirrors. - Fix lvcreate corelog validation. - Add --config for overriding most config file settings from cmdline. - Quote arguments when printing command line. - Remove linefeed from 'initialising logging' message. - Add 'Completed' debug message. - Don't attempt library exit after reloading config files. - Always compile with libdevmapper, even if device-mapper is disabled. - -------------------------------------------------------------------- -Mon May 22 17:13:21 CEST 2006 - fehr@suse.de - -- update to new version 2.02.06 - Propagate --monitor around cluster. - Add --monitor to vgcreate and lvcreate to control dmeventd registration. - Filter LCK_NONBLOCK in clvmd lock_vg. - Add --nosync to lvcreate with LV flag NOTSYNCED. - Use mirror's uuid for a core log. - Add mirror log fault-handling policy. - Improve mirror warning messages and tidy dmeventd syslog output. - Propagate nosync flag around cluster. - Allow vgreduce to handle mirror log failures. - Add --corelog to lvcreate and lvconvert. - Create a log header for replacement in-sync mirror log. - Use set_lv() and dev_set() to wipe sections of devices. - Add mirror_library description to example.conf. - Fix uuid_from_num() buffer overrun. - Increase maximum stripe size limit to physical extent size for lvm2 metadata. - Fix activation code to check for pre-existing mirror logs. - Ignore empty strings in config files. - Require non-zero regionsize and document parameter on lvcreate man page. - Invalidate cache if composition of VG changed externally. - -------------------------------------------------------------------- -Wed Apr 26 10:01:52 CEST 2006 - hare@suse.de - -- add LVM_DEVICE_TIMEOUT sysconfig variable to make sure - udev has finished processing (#149979) -- Fix init script dependencies - -------------------------------------------------------------------- -Mon Apr 24 18:32:56 CEST 2006 - fehr@suse.de - -- update to new version 2.02.05 - Fix vgid string termination in recent cache code - -------------------------------------------------------------------- -Thu Apr 20 17:11:07 CEST 2006 - fehr@suse.de - -- update to new version 2.02.04 - Check for libsepol. - Add some cflow & scope support. - Separate out DEFS from CFLAGS. - Remove inlines and use unique function names. - -------------------------------------------------------------------- -Wed Apr 19 09:48:51 CEST 2006 - fehr@suse.de - -- update to new version 2.02.03 - vgrename accepts vgid and exported VG. - Add --partial to pvs. - When choosing between identically-named VGs, also consider creation_host. - Provide total log suppression with 2. - Fix vgexport/vgimport to set/reset PV exported flag so pv_attr is correct. - Add vgid to struct physical_volume and pass with vg_name to some functions. - If two or more VGs are found with the same name, use one that is not exported. - Whenever vgname is captured, also capture vgid and whether exported. - Remove an incorrect unlock_vg() from process_each_lv(). - Update extent size information in vgchange and vgcreate man pages. - Introduce origin_from_cow() and lv_is_visible(). - pvremove without -f now fails if there's no PV label. - Support lvconvert -s. - Suppress locking library load failure message if --ignorelockingfailure. - Propagate partial mode around cluster. - Fix archive file expiration. - Fix dmeventd build. - clvmd now uses libcman rather than cman ioctls. - clvmd will allow new cman to shutdown on request. - -------------------------------------------------------------------- -Thu Apr 6 15:57:04 CEST 2006 - fehr@suse.de - -- add option --mknodes to vgscan call in /etc/init.d/boot.lvm to - avoid potential inconsistencies in minor number of dm devices after - reboot when root fs is LVM LV (#139740) - -------------------------------------------------------------------- -Tue Mar 14 11:25:42 CET 2006 - fehr@suse.de - -- update to new version 2.02.02 - Add %.so: %.a make template rule. - Switchover library building to use LIB_SUFFIX. - Only do lockfs filesystem sync when suspending snapshots. - Always print warning if activation is disabled. - vgreduce removes mirror images. - Add --mirrorsonly to vgreduce. - vgreduce replaces active LVs with error segment before removing them. - Set block_on_error parameter if available. - Add target_version. - Add details to format1 'Invalid LV in extent map' error message. - Fix lvscan snapshot full display. - Bring lvdisplay man page example into line. - Add mirror dmeventd library. - Add some activation logic to remove_mirror_images(). - lvconvert can remove specified PVs from a mirror. - lvconvert turns an existing LV into a mirror. - Allow signed mirrors arguments. - Move create_mirror_log() into toollib. - Determine parallel PVs to avoid with ALLOC_NORMAL allocation. - Fix lv_empty. - -------------------------------------------------------------------- -Wed Jan 25 21:38:06 CET 2006 - mls@suse.de - -- converted neededforbuild to BuildRequires - -------------------------------------------------------------------- -Mon Dec 19 11:19:41 CET 2005 - fehr@suse.de - -- add new binary /sbin/lvconvert to file list - -------------------------------------------------------------------- -Tue Dec 13 13:09:21 CET 2005 - fehr@suse.de - -- add patch lvm-lock.diff to fix bug #138128 - -------------------------------------------------------------------- -Tue Dec 6 16:10:12 CET 2005 - fehr@suse.de - -- update to new version 2.02.01 - -------------------------------------------------------------------- -Tue Nov 8 12:05:32 CET 2005 - fehr@suse.de - -- add fix_striped_old_format.diff to allow striped volumes with - old metadata format (#130433) -- add fix_dm_as_pv.diff to allow usage of dm devices as PVs (#129960) - -------------------------------------------------------------------- -Mon Oct 17 12:38:18 CEST 2005 - fehr@suse.de - -- update to new version 2.01.15 - -------------------------------------------------------------------- -Mon Sep 26 13:39:41 CEST 2005 - fehr@suse.de - -- fix bug in pvscan.c with PVs larger than 2TB in VGs - -------------------------------------------------------------------- -Thu Aug 4 14:49:51 CEST 2005 - fehr@suse.de - -- update to new version 2.01.14 - -------------------------------------------------------------------- -Mon Jul 18 19:05:08 CEST 2005 - fehr@suse.de - -- update to new version 2.01.13 - -------------------------------------------------------------------- -Thu Jun 16 10:21:03 CEST 2005 - fehr@suse.de - -- update to new version 2.01.12 - -------------------------------------------------------------------- -Wed Jun 15 13:36:23 CEST 2005 - meissner@suse.de - -- add libselinux to nfb to enable selinux support. -- use RPM_OPT_FLAGS. - -------------------------------------------------------------------- -Tue Jun 14 10:55:51 CEST 2005 - fehr@suse.de - -- update to new version 2.01.11 - -------------------------------------------------------------------- -Wed May 4 11:01:23 CEST 2005 - fehr@suse.de - -- update to new version 2.01.10 - -------------------------------------------------------------------- -Mon Apr 11 12:43:23 CEST 2005 - fehr@suse.de - -- use -y instead of -Y in options for call to fillup_and_insserv - (#76689) -- update to new version 2.01.09 - -------------------------------------------------------------------- -Wed Mar 9 11:12:58 CET 2005 - fehr@suse.de - -- update to new version 2.01.07 - -------------------------------------------------------------------- -Mon Mar 7 12:03:14 CET 2005 - fehr@suse.de - -- update to new version 2.01.06 - -------------------------------------------------------------------- -Thu Feb 10 16:28:53 CET 2005 - fehr@suse.de - -- update to new version 2.01.04 - -------------------------------------------------------------------- -Wed Feb 2 13:01:12 CET 2005 - fehr@suse.de - -- update to new version 2.01.03 - -------------------------------------------------------------------- -Mon Jan 24 12:08:59 CET 2005 - fehr@suse.de - -- update to new version 2.01.02 - -------------------------------------------------------------------- -Thu Jan 20 14:48:58 CET 2005 - fehr@suse.de - -- update to new version 2.01.01 - -------------------------------------------------------------------- -Wed Jan 19 11:13:53 CET 2005 - fehr@suse.de - -- update to new version 2.01.00 - -------------------------------------------------------------------- -Tue Jan 11 17:41:04 CET 2005 - fehr@suse.de - -- update to new version 2.00.33 - -------------------------------------------------------------------- -Wed Jan 05 12:33:00 CET 2005 - arvin@suse.de - -- update to new version 2.00.32 - -------------------------------------------------------------------- -Fri Dec 17 10:12:03 CET 2004 - arvin@suse.de - -- fixed -s option of vgdisplay (bug #49177) - -------------------------------------------------------------------- -Mon Nov 29 13:01:31 CET 2004 - fehr@suse.de - -- update to new version 2.00.29 - -------------------------------------------------------------------- -Thu Nov 25 11:39:49 CET 2004 - fehr@suse.de - -- update to new version 2.00.27 - -------------------------------------------------------------------- -Wed Nov 24 12:40:10 CET 2004 - fehr@suse.de - -- update to new version 2.00.26 - -------------------------------------------------------------------- -Wed Sep 29 17:24:52 CEST 2004 - fehr@suse.de - -- update to new version 2.00.25 - -------------------------------------------------------------------- -Wed Sep 22 17:40:28 CEST 2004 - fehr@suse.de - -- prevent buggy macro for MAJOR in kdev_t.h creep into code via - include of linux/fs.h - -------------------------------------------------------------------- -Mon Sep 20 11:45:30 CEST 2004 - fehr@suse.de - -- update to new version 2.00.24 - -------------------------------------------------------------------- -Thu Sep 16 15:03:58 CEST 2004 - fehr@suse.de - -- update to new version 2.00.23 - -------------------------------------------------------------------- -Mon Sep 6 12:09:54 CEST 2004 - fehr@suse.de - -- update to new version 2.00.22 - -------------------------------------------------------------------- -Mon Aug 23 12:46:37 CEST 2004 - fehr@suse.de - -- update to new version 2.00.21 -- new version obsoletes lvm2-vgscan.patch - -------------------------------------------------------------------- -Wed Jul 14 15:21:48 CEST 2004 - fehr@suse.de - -- update to new version 2.00.20 - -------------------------------------------------------------------- -Mon Jun 7 11:45:15 CEST 2004 - fehr@suse.de - -- update to new version 2.00.16 -- add forgotten patch no-inc-audit.diff needed for STABLE - -------------------------------------------------------------------- -Mon May 24 14:14:37 CEST 2004 - fehr@suse.de - -- update to new version 2.00.15 to fix bug #41020 - -------------------------------------------------------------------- -Mon May 24 08:31:31 CEST 2004 - hare@suse.de - -- Fixed vgscan on S/390 (readdir returned DT_UNKNOWN) - -------------------------------------------------------------------- -Thu May 13 17:49:47 CEST 2004 - fehr@suse.de - -- ignore udev names in default configuration to prevent yast2 - confusion (#36869) - -------------------------------------------------------------------- -Mon Apr 19 18:09:49 CEST 2004 - fehr@suse.de - -- accept additional devices (IDE->64, iseries/vd->8, #39114) - -------------------------------------------------------------------- -Thu Apr 1 10:28:39 CEST 2004 - fehr@suse.de - -- update to new version 2.00.09 (fixes #34657 and #36877) - -------------------------------------------------------------------- -Tue Mar 2 02:03:07 CET 2004 - ro@suse.de - -- boot.lvm: root-fs is mounted-rw by boot.rootfsck - -------------------------------------------------------------------- -Thu Feb 26 20:14:53 CET 2004 - fehr@suse.de - -- skip cdroms and device with zero size on probing - -------------------------------------------------------------------- -Wed Feb 4 10:58:46 CET 2004 - fehr@suse.de - -- update to new version 2.00.08 -- now lvm2 obsoletes lvm - -------------------------------------------------------------------- -Thu Sep 18 13:05:20 CEST 2003 - fehr@suse.de - -- fix boot.lvm to cope with LABEL= and UUID= in /etc/fstab - also check reiser filesystem (#31060) - -------------------------------------------------------------------- -Wed Sep 17 16:20:18 CEST 2003 - fehr@suse.de - -- update to new version 2.00.07 - -------------------------------------------------------------------- -Thu Aug 21 10:00:04 CEST 2003 - fehr@suse.de - -- update to new version 2.00.06 - -------------------------------------------------------------------- -Mon Aug 18 17:41:31 CEST 2003 - garloff@suse.de - -- (#29083) Add # X-UnitedLinux-Should-Start: boot.scsidev - -------------------------------------------------------------------- -Tue Jul 1 16:13:06 CEST 2003 - fehr@suse.de - -- created initial version of a SuSE package - -------------------------------------------------------------------- diff --git a/lvm2-clvm.spec b/lvm2-clvm.spec deleted file mode 100644 index 9a56a0d..0000000 --- a/lvm2-clvm.spec +++ /dev/null @@ -1,260 +0,0 @@ -# -# spec file for package lvm2-clvm -# -# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany. -# -# All modifications and additions to the file contributed by third parties -# remain the property of their copyright owners, unless otherwise agreed -# upon. The license for this file, and modifications and additions to the -# file, is the same license as for the pristine package itself (unless the -# license for the pristine package is not an Open Source License, in which -# case the license is the MIT License). An "Open Source License" is a -# license that conforms to the Open Source Definition (Version 1.9) -# published by the Open Source Initiative. - -# Please submit bugfixes or comments via https://bugs.opensuse.org/ -# - - -%define _supportsanlock 0 - -%define dlm_version 3.99.1 -%if 0%{_supportsanlock} == 1 -%define sanlock_version 3.3.0 -%endif - -### COMMON-DEF-BEGIN ### -%define lvm2_version 2.02.180 -%define device_mapper_version 1.02.149 -%define thin_provisioning_version 0.7.0 -### COMMON-DEF-END ### -Name: lvm2-clvm -Version: %{lvm2_version} -Release: 0 -Summary: Clustered LVM2 -License: GPL-2.0-or-later AND LGPL-2.1-or-later -Group: Productivity/Clustering/HA -Url: http://sources.redhat.com/cluster/clvm/ -Source: ftp://sources.redhat.com/pub/lvm2/LVM2.%{lvm2_version}.tgz -Source1: ftp://sources.redhat.com/pub/lvm2/LVM2.%{lvm2_version}.tgz.asc -# To detect modprobe during build -BuildRequires: kmod-compat -BuildRequires: libaio-devel -BuildRequires: libcorosync-devel -BuildRequires: libdlm-devel >= %{dlm_version} -BuildRequires: pkgconfig -%if 0%{_supportsanlock} == 1 -BuildRequires: sanlock-devel >= %{sanlock_version} -%endif -BuildRequires: thin-provisioning-tools >= %{thin_provisioning_version} -BuildRequires: pkgconfig(blkid) -BuildRequires: pkgconfig(devmapper) -BuildRequires: pkgconfig(libudev) -Requires: corosync -Requires: device-mapper >= %{device_mapper_version} -Requires: lvm2 = %{version} -Requires: lvm2-cmirrord -Obsoletes: cmirrord < %{version} -Provides: cmirrord = %{version} -### COMMON-PATCH-BEGIN ### -# Upstream patches -Patch0001: bug-1145231_lvmetad-improve-scan-for-pvscan-all.patch -Patch0002: bug-1145231_scan-use-full-md-filter-when-md-1.0-devices-are-pres.patch -Patch0003: bug-1145231_scan-enable-full-md-filter-when-md-1.0-devices-are-p.patch -Patch0004: bug-1114113_metadata-prevent-writing-beyond-metadata-area.patch -Patch0005: bug-1145231_scan-md-metadata-version-0.90-is-at-the-end-of-disk.patch -Patch0006: bug-1145231_pvscan-lvmetad-use-full-md-filter-when-md-1.0-device.patch -Patch0007: bug-1145231_pvscan-lvmetad-use-udev-info-to-improve-md-component.patch -Patch0008: bug-1122666_devices-drop-open-error-message.patch -Patch0009: bug-1137296_pvremove-vgextend-fix-using-device-aliases-with-lvmetad.patch -Patch0010: bug-1135984_cache-support-no_discard_passdown.patch - -# SUSE patches: 1000+ for LVM -# Never upstream -Patch1001: cmirrord_remove_date_time_from_compilation.patch -Patch1002: fate-309425_display-dm-name-for-lv-name.patch -Patch1003: fate-31841_fsadm-add-support-for-btrfs.patch -Patch1004: bug-935623_dmeventd-fix-dso-name-wrong-compare.patch -Patch1005: bsc1080299-detect-clvm-properly.patch -Patch1006: bug-998893_make_pvscan_service_after_multipathd.patch - -#SUSE patches 2000+ for device mapper, udev rules -Patch2001: bug-1012973_simplify-special-case-for-md-in-69-dm-lvm-metadata.patch -### COMMON-PATCH-END ### - -# Patches for clvmd and cmirrord -Patch3001: bug-978055_clvmd-try-to-refresh-device-cache-on-the-first-failu.patch - -%description -A daemon for using LVM2 Logival Volumes in a clustered environment. - -%prep -%setup -q -n LVM2.%{lvm2_version} - -### COMMON-PREP-BEGIN ### -%patch0001 -p1 -%patch0002 -p1 -%patch0003 -p1 -%patch0004 -p1 -%patch0005 -p1 -%patch0006 -p1 -%patch0007 -p1 -%patch0008 -p1 -%patch0009 -p1 -%patch0010 -p1 -%patch1001 -p1 -%patch1002 -p1 -%patch1003 -p1 -%patch1004 -p1 -%patch1005 -p1 -%patch1006 -p1 -%patch2001 -p1 -### COMMON-PREP-END ### - -%patch3001 -p1 - -%build -extra_opts=" - --enable-applib - --enable-blkid_wiping - --enable-cmdlib - --enable-lvmetad - --enable-lvmpolld - --enable-realtime - --with-default-locking-dir=/run/lock/lvm - --with-default-pid-dir=/run - --with-default-run-dir=/run/lvm - --with-clvmd=corosync - --with-cluster=internal - --enable-cmirrord - --enable-lvmlockd-dlm -%if 0%{_supportsanlock} == 1 - --enable-lvmlockd-sanlock -%endif -" - -### COMMON-CONFIG-BEGIN ### -export PATH=$PATH:/sbin:%{_prefix}/sbin -# Why this messy fix here? someone released a wrong version... -sed -ie "s/%{device_mapper_version}/1.03.01/g" VERSION_DM -%configure \ - --enable-dmeventd \ - --enable-cmdlib \ - --enable-udev_rules \ - --enable-udev_sync \ - --with-udev-prefix="%{_prefix}/" \ - --enable-selinux \ - --enable-pkgconfig \ - --with-usrlibdir=%{_libdir} \ - --with-usrsbindir=%{_sbindir} \ - --with-default-dm-run-dir=/run \ - --with-tmpfilesdir=%{_tmpfilesdir} \ - --with-thin=internal \ - --with-device-gid=6 \ - --with-device-mode=0640 \ - --with-device-uid=0 \ - --with-dmeventd-path=%{_sbindir}/dmeventd \ - --with-thin-check=%{_sbindir}/thin_check \ - --with-thin-dump=%{_sbindir}/thin_dump \ - --with-thin-repair=%{_sbindir}/thin_repair \ - $extra_opts -### COMMON-CONFIG-END ### - -%make_build - -%install -make DESTDIR=%{buildroot} \ - install_cluster \ - install_systemd_units install_systemd_generators -make DESTDIR=%{buildroot} install -C daemons/lvmlockd -make DESTDIR=%{buildroot} install -C daemons/cmirrord - -# lvmlockd does not have separate target install the mans by hand for now -install -m0644 -D man/lvmlockd.8 %{buildroot}%{_mandir}/man8/lvmlockd.8 -install -m0644 -D man/lvmlockctl.8 %{buildroot}%{_mandir}/man8/lvmlockctl.8 - -# rc services symlinks -ln -s service %{buildroot}%{_sbindir}/rclvm2-cluster-activation -ln -s service %{buildroot}%{_sbindir}/rclvm2-clvmd -ln -s service %{buildroot}%{_sbindir}/rclvm2-cmirrord -ln -s service %{buildroot}%{_sbindir}/rclvm2-lvmlockd -ln -s service %{buildroot}%{_sbindir}/rclvm2-lvmlocking - -# remove files from lvm2 split due to systemd_generators picking them up -rm %{buildroot}%{_unitdir}/blk-availability.service -rm %{buildroot}%{_unitdir}/dm-event.service -rm %{buildroot}%{_unitdir}/dm-event.socket -rm %{buildroot}%{_unitdir}/lvm2-monitor.service -rm %{buildroot}%{_mandir}/man8/lvm2-activation-generator.8 -rm %{buildroot}%{_libexecdir}/systemd/system-generators/lvm2-activation-generator -rm %{buildroot}%{_unitdir}/lvm2-lvmetad.service -rm %{buildroot}%{_unitdir}/lvm2-lvmetad.socket -rm %{buildroot}%{_unitdir}/lvm2-lvmpolld.service -rm %{buildroot}%{_unitdir}/lvm2-lvmpolld.socket -rm %{buildroot}%{_unitdir}/lvm2-pvscan@.service - -%files -%defattr(-,root,root) -%{_sbindir}/clvmd -%{_sbindir}/rclvm2-cluster-activation -%{_sbindir}/rclvm2-clvmd -%{_unitdir}/lvm2-clvmd.service -%{_unitdir}/lvm2-cluster-activation.service -%{_libexecdir}/systemd/lvm2-cluster-activation -%{_mandir}/man8/clvmd.8%{ext_man} - -%package -n lvm2-cmirrord -Summary: Clustered RAID 1 support using device-mapper and corosync -Group: Productivity/Clustering/HA -Requires: corosync -Requires: device-mapper >= %{device_mapper_version} -Requires: lvm2 = %{version} -Requires: lvm2-clvm - -%description -n lvm2-cmirrord -A daemon for using LVM2 Logival Volumes in a clustered environment. - -%files -n lvm2-cmirrord -%defattr(-,root,root) -%{_sbindir}/cmirrord -%{_libexecdir}/systemd/system/lvm2-cmirrord.service -%{_sbindir}/rclvm2-cmirrord -%{_mandir}/man8/cmirrord.8%{ext_man} - -%package -n lvm2-lockd -Summary: LVM locking daemon -Group: Productivity/Clustering/HA -Recommends: libdlm >= %{dlm_version} -Requires: lvm2 = %{version} -%if 0%{_supportsanlock} == 1 -Requires: sanlock >= %{sanlock_version} -%endif -%{?systemd_requires} - -%description -n lvm2-lockd -LVM commands use lvmlockd to coordinate access to shared storage. - -%pre -n lvm2-lockd -%service_add_pre lvm2-lvmlockd.service lvm2-lvmlocking.service - -%post -n lvm2-lockd -%service_add_post lvm2-lvmlockd.service lvm2-lvmlocking.service - -%preun -n lvm2-lockd -%service_del_preun lvm2-lvmlockd.service lvm2-lvmlocking.service - -%postun -n lvm2-lockd -%service_del_postun lvm2-lvmlockd.service lvm2-lvmlocking.service - -%files -n lvm2-lockd -%defattr(-,root,root,) -%{_sbindir}/lvmlockd -%{_sbindir}/lvmlockctl -%{_mandir}/man8/lvmlockd.8%{ext_man} -%{_mandir}/man8/lvmlockctl.8%{ext_man} -%{_unitdir}/lvm2-lvmlockd.service -%{_unitdir}/lvm2-lvmlocking.service -%{_sbindir}/rclvm2-lvmlockd -%{_sbindir}/rclvm2-lvmlocking - -%changelog diff --git a/lvm2.spec b/lvm2.spec index 5692741..48e5e9b 100644 --- a/lvm2.spec +++ b/lvm2.spec @@ -17,17 +17,33 @@ %define _unpackaged_files_terminate_build 0 +%define libname libdevmapper1_03 +%define libname_event libdevmapper-event1_03 %define _udevdir %(pkg-config --variable=udevdir udev) -%define applib liblvm2app2_2 -%define cmdlib liblvm2cmd2_02 - -### COMMON-DEF-BEGIN ### -%define lvm2_version 2.02.180 -%define device_mapper_version 1.02.149 +%define cmdlib liblvm2cmd2_03 +%define lvm2_version 2.03.05 +%define device_mapper_version 1.02.163 %define thin_provisioning_version 0.7.0 -### COMMON-DEF-END ### - -Name: lvm2 +%define _supportsanlock 0 +%define dlm_version 4.0 +%if 0%{_supportsanlock} == 1 +%define sanlock_version 3.3.0 +%endif +%global flavor @BUILD_FLAVOR@%{nil} +%define psuffix %{nil} +%if "%{flavor}" == "devicemapper" +%define psuffix -devicemapper +%bcond_without devicemapper +%else +%bcond_with devicemapper +%endif +%if "%{flavor}" == "lockd" +%define psuffix -clustering +%bcond_without lockd +%else +%bcond_with lockd +%endif +Name: lvm2%{psuffix} Version: %{lvm2_version} Release: 0 Summary: Logical Volume Manager Tools @@ -37,6 +53,33 @@ Url: http://www.sourceware.org/lvm2/ Source: ftp://sources.redhat.com/pub/lvm2/LVM2.%{version}.tgz Source1: lvm.conf Source42: ftp://sources.redhat.com/pub/lvm2/LVM2.%{version}.tgz.asc +BuildRequires: libdlm-devel +%if %{with devicemapper} +BuildRequires: gcc-c++ +BuildRequires: kmod-compat +BuildRequires: libaio-devel +BuildRequires: pkgconfig +BuildRequires: suse-module-tools +BuildRequires: thin-provisioning-tools >= %{thin_provisioning_version} +BuildRequires: pkgconfig(libselinux) +BuildRequires: pkgconfig(libsepol) +BuildRequires: pkgconfig(libudev) +BuildRequires: pkgconfig(systemd) +%else +%if %{with lockd} +# To detect modprobe during build +BuildRequires: kmod-compat +BuildRequires: libaio-devel +BuildRequires: libcorosync-devel +BuildRequires: libdlm-devel +BuildRequires: pkgconfig +%if 0%{_supportsanlock} == 1 +BuildRequires: sanlock-devel >= %{sanlock_version} +%endif +BuildRequires: thin-provisioning-tools >= %{thin_provisioning_version} +BuildRequires: pkgconfig(blkid) +BuildRequires: pkgconfig(libudev) +%else BuildRequires: gcc-c++ BuildRequires: libaio-devel BuildRequires: libcorosync-devel @@ -50,26 +93,20 @@ BuildRequires: pkgconfig(blkid) BuildRequires: pkgconfig(libudev) BuildRequires: pkgconfig(systemd) BuildRequires: pkgconfig(udev) +%endif +%endif Requires: device-mapper >= %{device_mapper_version} Requires: modutils Requires(post): coreutils Requires(postun): coreutils Provides: lvm = %{version} +Obsoletes: lvm2-cmirrord BuildRoot: %{_tmppath}/%{name}-%{version}-build %{?systemd_requires} ### COMMON-PATCH-BEGIN ### # Upstream patches -Patch0001: bug-1145231_lvmetad-improve-scan-for-pvscan-all.patch -Patch0002: bug-1145231_scan-use-full-md-filter-when-md-1.0-devices-are-pres.patch -Patch0003: bug-1145231_scan-enable-full-md-filter-when-md-1.0-devices-are-p.patch -Patch0004: bug-1114113_metadata-prevent-writing-beyond-metadata-area.patch -Patch0005: bug-1145231_scan-md-metadata-version-0.90-is-at-the-end-of-disk.patch -Patch0006: bug-1145231_pvscan-lvmetad-use-full-md-filter-when-md-1.0-device.patch -Patch0007: bug-1145231_pvscan-lvmetad-use-udev-info-to-improve-md-component.patch -Patch0008: bug-1122666_devices-drop-open-error-message.patch -Patch0009: bug-1137296_pvremove-vgextend-fix-using-device-aliases-with-lvmetad.patch -Patch0010: bug-1135984_cache-support-no_discard_passdown.patch +#Patch0001: bug-1122666_devices-drop-open-error-message.patch # SUSE patches: 1000+ for LVM # Never upstream @@ -77,18 +114,13 @@ Patch1001: cmirrord_remove_date_time_from_compilation.patch Patch1002: fate-309425_display-dm-name-for-lv-name.patch Patch1003: fate-31841_fsadm-add-support-for-btrfs.patch Patch1004: bug-935623_dmeventd-fix-dso-name-wrong-compare.patch -Patch1005: bsc1080299-detect-clvm-properly.patch -Patch1006: bug-998893_make_pvscan_service_after_multipathd.patch #SUSE patches 2000+ for device mapper, udev rules Patch2001: bug-1012973_simplify-special-case-for-md-in-69-dm-lvm-metadata.patch ### COMMON-PATCH-END ### # 3000+ for test code -Patch3001: bug-950089_test-fix-lvm2-testsuite-build-error.patch -Patch3002: bug-1043040_test-fix-read-ahead-issues-in-test-scripts.patch -Patch3003: bug-1072624_test-lvmetad_dump-always-timed-out-when-using-nc.patch -Patch3004: tests-specify-python3-as-the-script-interpreter.patch +Patch3001: bug-1043040_test-fix-read-ahead-issues-in-test-scripts.patch # patches specif for lvm2.spec Patch4001: bug-1037309_Makefile-skip-compliling-daemons-lvmlockd-directory.patch @@ -99,38 +131,23 @@ Volume Manager. %prep %setup -q -n LVM2.%{version} -### COMMON-PREP-BEGIN ### -%patch0001 -p1 -%patch0002 -p1 -%patch0003 -p1 -%patch0004 -p1 -%patch0005 -p1 -%patch0006 -p1 -%patch0007 -p1 -%patch0008 -p1 -%patch0009 -p1 -%patch0010 -p1 +#%patch0001 -p1 %patch1001 -p1 %patch1002 -p1 %patch1003 -p1 %patch1004 -p1 -%patch1005 -p1 -%patch1006 -p1 %patch2001 -p1 -### COMMON-PREP-END ### %patch3001 -p1 -%patch3002 -p1 -%patch3003 -p1 -%patch3004 -p1 +%if !%{with lockd} %patch4001 -p1 +%endif %build +%if !%{with devicemapper} && !%{with lockd} extra_opts=" - --enable-applib --enable-blkid_wiping --enable-cmdlib - --enable-lvmetad --enable-lvmpolld --enable-realtime --with-cache=internal @@ -138,7 +155,30 @@ extra_opts=" --with-default-pid-dir=/run --with-default-run-dir=/run/lvm --enable-cmirrord + --enable-fsadm + --disable-silent-rules + --enable-write_install + --with-vdo=internal + --with-vdo-format=/usr/bin/vdoformat " +%endif +%if %{with lockd} +extra_opts=" + --enable-blkid_wiping + --enable-cmdlib + --enable-lvmpolld + --enable-realtime + --with-default-locking-dir=/run/lock/lvm + --with-default-pid-dir=/run + --with-default-run-dir=/run/lvm + --with-cluster=internal + --enable-lvmlockd-dlm +%if 0%{_supportsanlock} == 1 + --enable-lvmlockd-sanlock +%endif + --disable-silent-rules +" +%endif ### COMMON-CONFIG-BEGIN ### export PATH=$PATH:/sbin:%{_prefix}/sbin @@ -167,9 +207,60 @@ sed -ie "s/%{device_mapper_version}/1.03.01/g" VERSION_DM $extra_opts ### COMMON-CONFIG-END ### +%if %{with devicemapper} +%make_build device-mapper +%else %make_build +%endif %install +%if %{with devicemapper} +make DESTDIR=%{buildroot} \ + install_device-mapper \ + install_systemd_units + +ln -s service %{buildroot}/%{_sbindir}/rcdm-event + +# provide 1.02 compat links for the shared libraries +# this is needed for various binary packages +ln -s libdevmapper.so.1.03 %{buildroot}/%{_libdir}/libdevmapper.so.1.02 +ln -s libdevmapper-event.so.1.03 %{buildroot}/%{_libdir}/libdevmapper-event.so.1.02 + +# remove blkd, will be in lvm2 proper +# without force on purpose to detect changes and fail if it happens +rm %{buildroot}%{_sbindir}/blkdeactivate +rm %{buildroot}%{_unitdir}/blk-availability.service +rm %{buildroot}%{_unitdir}/lvm2-monitor.service +rm %{buildroot}%{_mandir}/man8/blkdeactivate.8 + +# compat symlinks in /sbin remove with Leap 43 +mkdir -p %{buildroot}/sbin +ln -s %{_sbindir}/dmsetup %{buildroot}/sbin/dmsetup +%else +%if %{with lockd} +make DESTDIR=%{buildroot} \ + install_systemd_units install_systemd_generators +make DESTDIR=%{buildroot} install -C daemons/lvmlockd + +# lvmlockd does not have separate target install the mans by hand for now +install -m0644 -D man/lvmlockd.8 %{buildroot}%{_mandir}/man8/lvmlockd.8 +install -m0644 -D man/lvmlockctl.8 %{buildroot}%{_mandir}/man8/lvmlockctl.8 + +# rc services symlinks +ln -s service %{buildroot}%{_sbindir}/rclvm2-lvmlockd +ln -s service %{buildroot}%{_sbindir}/rclvm2-lvmlocking + +# remove files from lvm2 split due to systemd_generators picking them up +rm %{buildroot}%{_unitdir}/blk-availability.service +rm %{buildroot}%{_unitdir}/dm-event.service +rm %{buildroot}%{_unitdir}/dm-event.socket +rm %{buildroot}%{_unitdir}/lvm2-monitor.service +rm %{buildroot}%{_mandir}/man8/lvm2-activation-generator.8 +rm %{buildroot}%{_libexecdir}/systemd/system-generators/lvm2-activation-generator +rm %{buildroot}%{_unitdir}/lvm2-lvmpolld.service +rm %{buildroot}%{_unitdir}/lvm2-lvmpolld.socket +rm %{buildroot}%{_unitdir}/lvm2-pvscan@.service +%else %make_install make install_system_dirs DESTDIR=%{buildroot} make install_systemd_units DESTDIR=%{buildroot} @@ -181,17 +272,15 @@ install -m 644 %{SOURCE1} "%{buildroot}/%{_sysconfdir}/lvm/" make -C test install DESTDIR=%{buildroot} pushd "%{buildroot}/%{_libdir}" -ln -sf liblvm2cmd.so.2.02 liblvm2cmd.so -ln -sf liblvm2app.so.2.2 liblvm2app.so +ln -sf liblvm2cmd.so.2.03 liblvm2cmd.so for i in libdevmapper-event-lvm2{mirror,raid,snapshot,thin}; do ln -sf "device-mapper/$i.so" "$i.so" - ln -sf "device-mapper/$i.so" "$i.so.2.02" + ln -sf "device-mapper/$i.so" "$i.so.2.03" done popd #rc compat symlinks ln -s service %{buildroot}%{_sbindir}/rcblk-availability -ln -s service %{buildroot}%{_sbindir}/rclvm2-lvmetad ln -s service %{buildroot}%{_sbindir}/rclvm2-monitor ln -s service %{buildroot}%{_sbindir}/rclvm2-lvmpolld @@ -205,8 +294,8 @@ rm %{buildroot}%{_udevrulesdir}/95-dm-notify.rules rm %{buildroot}%{_unitdir}/dm-event.socket rm %{buildroot}%{_unitdir}/dm-event.service # See bsc#1037309 for more info -rm %{buildroot}%{_unitdir}/lvm2-lvmlockd.service -rm %{buildroot}%{_unitdir}/lvm2-lvmlocking.service +rm %{buildroot}%{_unitdir}/lvmlockd.service +rm %{buildroot}%{_unitdir}/lvmlocks.service rm %{buildroot}%{_includedir}/libdevmapper*.h rm %{buildroot}%{_libdir}/libdevmapper.so.* rm %{buildroot}%{_libdir}/libdevmapper-event.so.* @@ -226,14 +315,175 @@ for i in {vg,pv,lv}*; do ln -s %{_sbindir}/$i %{buildroot}/sbin/$i done popd +%endif +%endif + +%if %{with devicemapper} +%package -n device-mapper +Summary: Device Mapper Tools +Group: System/Base +Version: %{device_mapper_version} +Release: 0 +Requires: thin-provisioning-tools >= %{thin_provisioning_version} +Requires(post): coreutils + +%description -n device-mapper +Programs and man pages for configuring and using the device mapper. + +%pre -n device-mapper +%service_add_pre dm-event.service dm-event.socket + +%post -n device-mapper +%service_add_post dm-event.service dm-event.socket +%{?regenerate_initrd_post} + +%posttrans -n device-mapper +%{?regenerate_initrd_posttrans} + +%preun -n device-mapper +%service_del_preun dm-event.service dm-event.socket + +%postun -n device-mapper +%service_del_postun dm-event.service dm-event.socket +%{?regenerate_initrd_post} + +%files -n device-mapper +%defattr(-,root,root) +%license COPYING COPYING.LIB +%doc README +%doc udev/12-dm-permissions.rules +/sbin/dmsetup +%{_sbindir}/dmsetup +%{_sbindir}/dmeventd +%{_sbindir}/dmstats +%{_mandir}/man8/dmstats.8%{ext_man} +%{_mandir}/man8/dmsetup.8%{ext_man} +%{_mandir}/man8/dmeventd.8%{ext_man} +%{_udevrulesdir}/10-dm.rules +%{_udevrulesdir}/13-dm-disk.rules +%{_udevrulesdir}/95-dm-notify.rules +%{_unitdir}/dm-event.socket +%{_sbindir}/rcdm-event +%{_unitdir}/dm-event.service + +%package -n %{libname} +Summary: Library for device-mapper +Group: System/Libraries +Version: %{device_mapper_version} +Release: 0 +Conflicts: %{name} < %{version} + +%description -n %{libname} +Device mapper main shared library + +%files -n %{libname} +%defattr(-,root,root) +%{_libdir}/libdevmapper.so.1.03 +%{_libdir}/libdevmapper.so.1.02 + +%post -n %{libname} +if [ -f /%{_lib}/libdevmapper.so.1.03 ]; then + # Special migration - the library is now in %{_libdir}, but up to the point where + # zypp removes the 'old' device-mapper package, the old library 'wins' the ldloader race + # resulting in binaries asking for the newer version still getting the old one. + # This in turn results in funny bugs like boo#1045396 + # Remove /%{_lib}/libdevmapper.so.1.02 - and the run ldconfig + rm /%{_lib}/libdevmapper.so.1.03 +fi + /sbin/ldconfig + +%postun -n %{libname} -p /sbin/ldconfig + +%package -n %{libname_event} +Summary: Event library for device-mapper +Group: System/Libraries +Conflicts: %{name} < %{version} +Version: %{device_mapper_version} +Release: 0 + +%description -n %{libname_event} +Device mapper event daemon shared library + +%files -n %{libname_event} +%defattr(-,root,root) +%{_libdir}/libdevmapper-event.so.1.03 +%{_libdir}/libdevmapper-event.so.1.02 + +%post -n %{libname_event} -p /sbin/ldconfig +%postun -n %{libname_event} -p /sbin/ldconfig + +%package -n device-mapper-devel +Summary: Development package for the device mapper +Group: Development/Libraries/C and C++ +Requires: %{libname_event} = %{device_mapper_version} +Requires: %{libname} = %{device_mapper_version} +Requires: device-mapper = %{device_mapper_version} +Version: %{device_mapper_version} +Release: 0 + +%description -n device-mapper-devel +Files needed for software development using the device mapper + +%files -n device-mapper-devel +%defattr(-,root,root) +%{_libdir}/libdevmapper.so +%{_libdir}/libdevmapper-event.so +%{_includedir}/libdevmapper.h +%{_includedir}/libdevmapper-event.h +%{_libdir}/pkgconfig/devmapper.pc +%{_libdir}/pkgconfig/devmapper-event.pc + +%else +%if %{with lockd} + +%package -n lvm2-lockd +Summary: LVM locking daemon +Group: System/Base +Recommends: libdlm >= %{dlm_version} +Obsoletes: lvm2-clvm +Requires: corosync +Requires: device-mapper >= %{device_mapper_version} +Requires: lvm2 = %{version} +%if 0%{_supportsanlock} == 1 +Requires: sanlock >= %{sanlock_version} +%endif +%{?systemd_requires} + +%description -n lvm2-lockd +LVM commands use lvmlockd to coordinate access to shared storage. + +%pre -n lvm2-lockd +%service_add_pre lvmlockd.service lvmlocks.service + +%post -n lvm2-lockd +%service_add_post lvmlockd.service lvmlocks.service + +%preun -n lvm2-lockd +%service_del_preun lvmlockd.service lvmlocks.service + +%postun -n lvm2-lockd +%service_del_postun lvmlockd.service lvmlocks.service + +%files -n lvm2-lockd +%defattr(-,root,root,) +%{_sbindir}/lvmlockd +%{_sbindir}/lvmlockctl +%{_mandir}/man8/lvmlockd.8%{ext_man} +%{_mandir}/man8/lvmlockctl.8%{ext_man} +%{_unitdir}/lvmlockd.service +%{_unitdir}/lvmlocks.service +%{_sbindir}/rclvm2-lvmlockd +%{_sbindir}/rclvm2-lvmlocking + +%else %pre -%service_add_pre blk-availability.service lvm2-monitor.service lvm2-lvmetad.socket lvm2-lvmetad.service lvm2-lvmpolld.service lvm2-lvmpolld.socket +%service_add_pre blk-availability.service lvm2-monitor.service lvm2-lvmpolld.service lvm2-lvmpolld.socket %post /sbin/ldconfig %{?regenerate_initrd_post} -%service_add_post blk-availability.service lvm2-monitor.service lvm2-lvmetad.socket lvm2-lvmetad.service lvm2-lvmpolld.service lvm2-lvmpolld.socket +%service_add_post blk-availability.service lvm2-monitor.service lvm2-lvmpolld.service lvm2-lvmpolld.socket # Use %%tmpfiles_create when 13.2 is oldest in support scope %{_bindir}/systemd-tmpfiles --create %{_tmpfilesdir}/lvm2.conf || : @@ -241,25 +491,24 @@ popd %{?regenerate_initrd_posttrans} %preun -%service_del_preun blk-availability.service lvm2-monitor.service lvm2-lvmetad.service lvm2-lvmpolld.service lvm2-lvmpolld.socket +%service_del_preun blk-availability.service lvm2-monitor.service lvm2-lvmpolld.service lvm2-lvmpolld.socket %postun /sbin/ldconfig %{?regenerate_initrd_post} -%service_del_postun blk-availability.service lvm2-monitor.service lvm2-lvmetad.service lvm2-lvmpolld.service lvm2-lvmpolld.socket +%service_del_postun blk-availability.service lvm2-monitor.service lvm2-lvmpolld.service lvm2-lvmpolld.socket %files -%defattr(-,root,root) +%license COPYING COPYING.LIB %doc README VERSION WHATS_NEW %doc doc/lvm_fault_handling.txt + # Main binaries %{_sbindir}/blkdeactivate %{_sbindir}/fsadm %{_sbindir}/lvm -%{_sbindir}/lvmconf %{_sbindir}/lvmconfig %{_sbindir}/lvmdump -%{_sbindir}/lvmetad %{_sbindir}/lvmpolld # Other files %{_sbindir}/lvchange @@ -305,15 +554,12 @@ popd %{_sbindir}/vgscan %{_sbindir}/vgsplit %{_sbindir}/rcblk-availability -%{_sbindir}/rclvm2-lvmetad %{_sbindir}/rclvm2-lvmpolld %{_sbindir}/rclvm2-monitor # compat symlinks in /sbin /sbin/lvm -/sbin/lvmconf /sbin/lvmconfig /sbin/lvmdump -/sbin/lvmetad /sbin/lvmpolld /sbin/lvchange /sbin/lvconvert @@ -363,6 +609,7 @@ popd %{_mandir}/man7/lvmreport.7%{ext_man} %{_mandir}/man7/lvmthin.7%{ext_man} %{_mandir}/man7/lvmsystemid.7%{ext_man} +%{_mandir}/man7/lvmvdo.7%{ext_man} %{_mandir}/man8/fsadm.8%{ext_man} %{_mandir}/man8/lvchange.8%{ext_man} %{_mandir}/man8/lvconvert.8%{ext_man} @@ -374,7 +621,6 @@ popd %{_mandir}/man8/lvm-config.8%{ext_man} %{_mandir}/man8/lvmconfig.8%{ext_man} %{_mandir}/man8/lvm-dumpconfig.8%{ext_man} -%{_mandir}/man8/lvmconf.8%{ext_man} %{_mandir}/man8/lvmdiskscan.8%{ext_man} %{_mandir}/man8/lvmdump.8%{ext_man} %{_mandir}/man8/lvm-fullreport.8%{ext_man} @@ -414,7 +660,6 @@ popd %{_mandir}/man8/vgs.8%{ext_man} %{_mandir}/man8/vgscan.8%{ext_man} %{_mandir}/man8/vgsplit.8%{ext_man} -%{_mandir}/man8/lvmetad.8%{ext_man} %{_mandir}/man8/blkdeactivate.8%{ext_man} %{_mandir}/man8/lvmpolld.8%{ext_man} %{_mandir}/man8/lvm-lvpoll.8%{ext_man} @@ -431,6 +676,7 @@ popd %{_sysconfdir}/lvm/profile/cache-mq.profile %{_sysconfdir}/lvm/profile/cache-smq.profile %{_sysconfdir}/lvm/profile/lvmdbusd.profile +%{_sysconfdir}/lvm/profile/vdo-small.profile %dir %{_sysconfdir}/lvm/cache %ghost %{_sysconfdir}/lvm/cache/.cache %dir %{_sysconfdir}/lvm/archive @@ -438,8 +684,6 @@ popd %{_tmpfilesdir}/%{name}.conf %{_unitdir}/blk-availability.service %{_unitdir}/lvm2-monitor.service -%{_unitdir}/lvm2-lvmetad.socket -%{_unitdir}/lvm2-lvmetad.service %{_unitdir}/lvm2-pvscan@.service %{_unitdir}/lvm2-lvmpolld.socket %{_unitdir}/lvm2-lvmpolld.service @@ -447,22 +691,7 @@ popd %dir %{_libdir}/device-mapper %{_libdir}/device-mapper/libdevmapper-event-lvm2*.so %{_libdir}/libdevmapper-event-lvm2*.so -%{_libdir}/libdevmapper-event-lvm2*.so.2.02 - -%package -n %{applib} -Summary: LVM2 application api library -Group: System/Libraries -Conflicts: %{name} < %{version} - -%description -n %{applib} -LVM library for applications api - -%post -n %{applib} -p /sbin/ldconfig -%postun -n %{applib} -p /sbin/ldconfig - -%files -n %{applib} -%defattr(-,root,root) -%{_libdir}/liblvm2app.so.* +%{_libdir}/libdevmapper-event-lvm2*.so.2.03 %package -n %{cmdlib} Summary: LVM2 command line library @@ -483,7 +712,6 @@ lvm devices without invoking a separate program. %package devel Summary: Development files for LVM2 Group: Development/Libraries/C and C++ -Requires: %{applib} = %{version} Requires: %{cmdlib} = %{version} Requires: device-mapper-devel Requires: lvm2 = %{version} @@ -494,15 +722,11 @@ This package provides development files for the LVM2 Logical Volume Manager. %files devel %defattr(-,root,root) %{_includedir}/lvm2cmd.h -%{_includedir}/lvm2app.h -%{_libdir}/pkgconfig/lvm2app.pc -%{_libdir}/liblvm2app.so %{_libdir}/liblvm2cmd.so %package testsuite Summary: LVM2 Testsuite Group: Development/Libraries/C and C++ -Requires: %{applib} = %{version} Requires: %{cmdlib} = %{version} Requires: lvm2 = %{version} @@ -515,4 +739,7 @@ An extensive functional testsuite for the LVM2 Logical Volume Manager. %{_libexecdir}/lvm2-testsuite/ %{_bindir}/lvm2-testsuite +%endif +%endif + %changelog diff --git a/pre_checkin.sh b/pre_checkin.sh deleted file mode 100644 index 6a38a32..0000000 --- a/pre_checkin.sh +++ /dev/null @@ -1,22 +0,0 @@ -#!/usr/bin/env bash - -master="lvm2.spec" -sections="COMMON-DEF COMMON-PATCH COMMON-PREP COMMON-CONFIG" -for slave in device-mapper.spec lvm2-clvm.spec; do -{ - prev=1 - for section in $sections; do - begin="/$section-BEGIN/" - end="/$section-END/" - sed -n -e "${prev},${begin}p" $slave - sed -n -e "${begin},${end}p" $master | head -n -1 | tail -n +2 - prev=$end - done - sed -n -e "${prev},\$p" $slave -} > $slave.tmp && mv $slave.tmp $slave -done - -# changelogs - -cp lvm2.changes lvm2-clvm.changes -cp lvm2.changes device-mapper.changes From 0badf76b5ca7c4978c30cc90c7676e10db1b28141770c8eb9dcc77cc460d7247 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1=C5=A1=20Chv=C3=A1tal?= Date: Fri, 30 Aug 2019 08:45:24 +0000 Subject: [PATCH 3/7] OBS-URL: https://build.opensuse.org/package/show/Base:System/lvm2?expand=0&rev=248 --- lvm2.spec | 228 +++++++++++++++++++++++++----------------------------- 1 file changed, 105 insertions(+), 123 deletions(-) diff --git a/lvm2.spec b/lvm2.spec index 48e5e9b..c78e729 100644 --- a/lvm2.spec +++ b/lvm2.spec @@ -49,11 +49,31 @@ Release: 0 Summary: Logical Volume Manager Tools License: GPL-2.0-or-later AND LGPL-2.1-or-later Group: System/Base -Url: http://www.sourceware.org/lvm2/ +URL: https://www.sourceware.org/lvm2/ Source: ftp://sources.redhat.com/pub/lvm2/LVM2.%{version}.tgz Source1: lvm.conf Source42: ftp://sources.redhat.com/pub/lvm2/LVM2.%{version}.tgz.asc -BuildRequires: libdlm-devel +# Upstream patches +#Patch0001: bug-1122666_devices-drop-open-error-message.patch +# SUSE patches: 1000+ for LVM +# Never upstream +Patch1001: cmirrord_remove_date_time_from_compilation.patch +Patch1002: fate-309425_display-dm-name-for-lv-name.patch +Patch1003: fate-31841_fsadm-add-support-for-btrfs.patch +Patch1004: bug-935623_dmeventd-fix-dso-name-wrong-compare.patch +#SUSE patches 2000+ for device mapper, udev rules +Patch2001: bug-1012973_simplify-special-case-for-md-in-69-dm-lvm-metadata.patch +# 3000+ for test code +Patch3001: bug-1043040_test-fix-read-ahead-issues-in-test-scripts.patch +# patches specif for lvm2.spec +Patch4001: bug-1037309_Makefile-skip-compliling-daemons-lvmlockd-directory.patch +Requires: device-mapper >= %{device_mapper_version} +Requires: modutils +Requires(post): coreutils +Requires(postun): coreutils +Provides: lvm = %{version} +Obsoletes: lvm2-cmirrord +%{?systemd_requires} %if %{with devicemapper} BuildRequires: gcc-c++ BuildRequires: kmod-compat @@ -73,19 +93,19 @@ BuildRequires: libaio-devel BuildRequires: libcorosync-devel BuildRequires: libdlm-devel BuildRequires: pkgconfig -%if 0%{_supportsanlock} == 1 -BuildRequires: sanlock-devel >= %{sanlock_version} -%endif BuildRequires: thin-provisioning-tools >= %{thin_provisioning_version} BuildRequires: pkgconfig(blkid) BuildRequires: pkgconfig(libudev) +%if 0%{_supportsanlock} == 1 +BuildRequires: sanlock-devel >= %{sanlock_version} +%endif %else BuildRequires: gcc-c++ +# To detect modprobe during build +BuildRequires: kmod-compat BuildRequires: libaio-devel BuildRequires: libcorosync-devel BuildRequires: libselinux-devel -# To detect modprobe during build -BuildRequires: kmod-compat BuildRequires: pkgconfig BuildRequires: readline-devel BuildRequires: thin-provisioning-tools >= %{thin_provisioning_version} @@ -95,35 +115,6 @@ BuildRequires: pkgconfig(systemd) BuildRequires: pkgconfig(udev) %endif %endif -Requires: device-mapper >= %{device_mapper_version} -Requires: modutils -Requires(post): coreutils -Requires(postun): coreutils -Provides: lvm = %{version} -Obsoletes: lvm2-cmirrord -BuildRoot: %{_tmppath}/%{name}-%{version}-build -%{?systemd_requires} - -### COMMON-PATCH-BEGIN ### -# Upstream patches -#Patch0001: bug-1122666_devices-drop-open-error-message.patch - -# SUSE patches: 1000+ for LVM -# Never upstream -Patch1001: cmirrord_remove_date_time_from_compilation.patch -Patch1002: fate-309425_display-dm-name-for-lv-name.patch -Patch1003: fate-31841_fsadm-add-support-for-btrfs.patch -Patch1004: bug-935623_dmeventd-fix-dso-name-wrong-compare.patch - -#SUSE patches 2000+ for device mapper, udev rules -Patch2001: bug-1012973_simplify-special-case-for-md-in-69-dm-lvm-metadata.patch -### COMMON-PATCH-END ### - -# 3000+ for test code -Patch3001: bug-1043040_test-fix-read-ahead-issues-in-test-scripts.patch - -# patches specif for lvm2.spec -Patch4001: bug-1037309_Makefile-skip-compliling-daemons-lvmlockd-directory.patch %description Programs and man pages for configuring and using the LVM2 Logical @@ -159,7 +150,7 @@ extra_opts=" --disable-silent-rules --enable-write_install --with-vdo=internal - --with-vdo-format=/usr/bin/vdoformat + --with-vdo-format=%{_bindir}/vdoformat " %endif %if %{with lockd} @@ -181,7 +172,7 @@ extra_opts=" %endif ### COMMON-CONFIG-BEGIN ### -export PATH=$PATH:/sbin:%{_prefix}/sbin +export PATH=$PATH:/sbin:%{_sbindir} # Why this messy fix here? someone released a wrong version... sed -ie "s/%{device_mapper_version}/1.03.01/g" VERSION_DM %configure \ @@ -320,10 +311,10 @@ popd %if %{with devicemapper} %package -n device-mapper -Summary: Device Mapper Tools -Group: System/Base Version: %{device_mapper_version} Release: 0 +Summary: Device Mapper Tools +Group: System/Base Requires: thin-provisioning-tools >= %{thin_provisioning_version} Requires(post): coreutils @@ -348,7 +339,6 @@ Programs and man pages for configuring and using the device mapper. %{?regenerate_initrd_post} %files -n device-mapper -%defattr(-,root,root) %license COPYING COPYING.LIB %doc README %doc udev/12-dm-permissions.rules @@ -356,9 +346,9 @@ Programs and man pages for configuring and using the device mapper. %{_sbindir}/dmsetup %{_sbindir}/dmeventd %{_sbindir}/dmstats -%{_mandir}/man8/dmstats.8%{ext_man} -%{_mandir}/man8/dmsetup.8%{ext_man} -%{_mandir}/man8/dmeventd.8%{ext_man} +%{_mandir}/man8/dmstats.8%{?ext_man} +%{_mandir}/man8/dmsetup.8%{?ext_man} +%{_mandir}/man8/dmeventd.8%{?ext_man} %{_udevrulesdir}/10-dm.rules %{_udevrulesdir}/13-dm-disk.rules %{_udevrulesdir}/95-dm-notify.rules @@ -367,17 +357,16 @@ Programs and man pages for configuring and using the device mapper. %{_unitdir}/dm-event.service %package -n %{libname} -Summary: Library for device-mapper -Group: System/Libraries Version: %{device_mapper_version} Release: 0 +Summary: Library for device-mapper +Group: System/Libraries Conflicts: %{name} < %{version} %description -n %{libname} Device mapper main shared library %files -n %{libname} -%defattr(-,root,root) %{_libdir}/libdevmapper.so.1.03 %{_libdir}/libdevmapper.so.1.02 @@ -395,17 +384,16 @@ fi %postun -n %{libname} -p /sbin/ldconfig %package -n %{libname_event} +Version: %{device_mapper_version} +Release: 0 Summary: Event library for device-mapper Group: System/Libraries Conflicts: %{name} < %{version} -Version: %{device_mapper_version} -Release: 0 %description -n %{libname_event} Device mapper event daemon shared library %files -n %{libname_event} -%defattr(-,root,root) %{_libdir}/libdevmapper-event.so.1.03 %{_libdir}/libdevmapper-event.so.1.02 @@ -413,19 +401,18 @@ Device mapper event daemon shared library %postun -n %{libname_event} -p /sbin/ldconfig %package -n device-mapper-devel +Version: %{device_mapper_version} +Release: 0 Summary: Development package for the device mapper Group: Development/Libraries/C and C++ Requires: %{libname_event} = %{device_mapper_version} Requires: %{libname} = %{device_mapper_version} Requires: device-mapper = %{device_mapper_version} -Version: %{device_mapper_version} -Release: 0 %description -n device-mapper-devel Files needed for software development using the device mapper %files -n device-mapper-devel -%defattr(-,root,root) %{_libdir}/libdevmapper.so %{_libdir}/libdevmapper-event.so %{_includedir}/libdevmapper.h @@ -435,19 +422,18 @@ Files needed for software development using the device mapper %else %if %{with lockd} - %package -n lvm2-lockd Summary: LVM locking daemon Group: System/Base -Recommends: libdlm >= %{dlm_version} -Obsoletes: lvm2-clvm Requires: corosync Requires: device-mapper >= %{device_mapper_version} Requires: lvm2 = %{version} +Recommends: libdlm >= %{dlm_version} +Obsoletes: lvm2-clvm +%{?systemd_requires} %if 0%{_supportsanlock} == 1 Requires: sanlock >= %{sanlock_version} %endif -%{?systemd_requires} %description -n lvm2-lockd LVM commands use lvmlockd to coordinate access to shared storage. @@ -468,15 +454,14 @@ LVM commands use lvmlockd to coordinate access to shared storage. %defattr(-,root,root,) %{_sbindir}/lvmlockd %{_sbindir}/lvmlockctl -%{_mandir}/man8/lvmlockd.8%{ext_man} -%{_mandir}/man8/lvmlockctl.8%{ext_man} +%{_mandir}/man8/lvmlockd.8%{?ext_man} +%{_mandir}/man8/lvmlockctl.8%{?ext_man} %{_unitdir}/lvmlockd.service %{_unitdir}/lvmlocks.service %{_sbindir}/rclvm2-lvmlockd %{_sbindir}/rclvm2-lvmlocking %else - %pre %service_add_pre blk-availability.service lvm2-monitor.service lvm2-lvmpolld.service lvm2-lvmpolld.socket @@ -603,66 +588,66 @@ LVM commands use lvmlockd to coordinate access to shared storage. /sbin/vgs /sbin/vgscan /sbin/vgsplit -%{_mandir}/man5/lvm.conf.5%{ext_man} -%{_mandir}/man7/lvmcache.7%{ext_man} -%{_mandir}/man7/lvmraid.7%{ext_man} -%{_mandir}/man7/lvmreport.7%{ext_man} -%{_mandir}/man7/lvmthin.7%{ext_man} -%{_mandir}/man7/lvmsystemid.7%{ext_man} -%{_mandir}/man7/lvmvdo.7%{ext_man} -%{_mandir}/man8/fsadm.8%{ext_man} -%{_mandir}/man8/lvchange.8%{ext_man} -%{_mandir}/man8/lvconvert.8%{ext_man} -%{_mandir}/man8/lvcreate.8%{ext_man} -%{_mandir}/man8/lvdisplay.8%{ext_man} -%{_mandir}/man8/lvextend.8%{ext_man} -%{_mandir}/man8/lvm.8%{ext_man} -%{_mandir}/man8/lvm2-activation-generator.8%{ext_man} -%{_mandir}/man8/lvm-config.8%{ext_man} -%{_mandir}/man8/lvmconfig.8%{ext_man} -%{_mandir}/man8/lvm-dumpconfig.8%{ext_man} -%{_mandir}/man8/lvmdiskscan.8%{ext_man} -%{_mandir}/man8/lvmdump.8%{ext_man} -%{_mandir}/man8/lvm-fullreport.8%{ext_man} -%{_mandir}/man8/lvmsadc.8%{ext_man} -%{_mandir}/man8/lvmsar.8%{ext_man} -%{_mandir}/man8/lvreduce.8%{ext_man} -%{_mandir}/man8/lvremove.8%{ext_man} -%{_mandir}/man8/lvrename.8%{ext_man} -%{_mandir}/man8/lvresize.8%{ext_man} -%{_mandir}/man8/lvs.8%{ext_man} -%{_mandir}/man8/lvscan.8%{ext_man} -%{_mandir}/man8/pvchange.8%{ext_man} -%{_mandir}/man8/pvck.8%{ext_man} -%{_mandir}/man8/pvcreate.8%{ext_man} -%{_mandir}/man8/pvdisplay.8%{ext_man} -%{_mandir}/man8/pvmove.8%{ext_man} -%{_mandir}/man8/pvremove.8%{ext_man} -%{_mandir}/man8/pvresize.8%{ext_man} -%{_mandir}/man8/pvs.8%{ext_man} -%{_mandir}/man8/pvscan.8%{ext_man} -%{_mandir}/man8/vgcfgbackup.8%{ext_man} -%{_mandir}/man8/vgcfgrestore.8%{ext_man} -%{_mandir}/man8/vgchange.8%{ext_man} -%{_mandir}/man8/vgck.8%{ext_man} -%{_mandir}/man8/vgconvert.8%{ext_man} -%{_mandir}/man8/vgcreate.8%{ext_man} -%{_mandir}/man8/vgdisplay.8%{ext_man} -%{_mandir}/man8/vgexport.8%{ext_man} -%{_mandir}/man8/vgextend.8%{ext_man} -%{_mandir}/man8/vgimport.8%{ext_man} -%{_mandir}/man8/vgimportclone.8%{ext_man} -%{_mandir}/man8/vgmerge.8%{ext_man} -%{_mandir}/man8/vgmknodes.8%{ext_man} -%{_mandir}/man8/vgreduce.8%{ext_man} -%{_mandir}/man8/vgremove.8%{ext_man} -%{_mandir}/man8/vgrename.8%{ext_man} -%{_mandir}/man8/vgs.8%{ext_man} -%{_mandir}/man8/vgscan.8%{ext_man} -%{_mandir}/man8/vgsplit.8%{ext_man} -%{_mandir}/man8/blkdeactivate.8%{ext_man} -%{_mandir}/man8/lvmpolld.8%{ext_man} -%{_mandir}/man8/lvm-lvpoll.8%{ext_man} +%{_mandir}/man5/lvm.conf.5%{?ext_man} +%{_mandir}/man7/lvmcache.7%{?ext_man} +%{_mandir}/man7/lvmraid.7%{?ext_man} +%{_mandir}/man7/lvmreport.7%{?ext_man} +%{_mandir}/man7/lvmthin.7%{?ext_man} +%{_mandir}/man7/lvmsystemid.7%{?ext_man} +%{_mandir}/man7/lvmvdo.7%{?ext_man} +%{_mandir}/man8/fsadm.8%{?ext_man} +%{_mandir}/man8/lvchange.8%{?ext_man} +%{_mandir}/man8/lvconvert.8%{?ext_man} +%{_mandir}/man8/lvcreate.8%{?ext_man} +%{_mandir}/man8/lvdisplay.8%{?ext_man} +%{_mandir}/man8/lvextend.8%{?ext_man} +%{_mandir}/man8/lvm.8%{?ext_man} +%{_mandir}/man8/lvm2-activation-generator.8%{?ext_man} +%{_mandir}/man8/lvm-config.8%{?ext_man} +%{_mandir}/man8/lvmconfig.8%{?ext_man} +%{_mandir}/man8/lvm-dumpconfig.8%{?ext_man} +%{_mandir}/man8/lvmdiskscan.8%{?ext_man} +%{_mandir}/man8/lvmdump.8%{?ext_man} +%{_mandir}/man8/lvm-fullreport.8%{?ext_man} +%{_mandir}/man8/lvmsadc.8%{?ext_man} +%{_mandir}/man8/lvmsar.8%{?ext_man} +%{_mandir}/man8/lvreduce.8%{?ext_man} +%{_mandir}/man8/lvremove.8%{?ext_man} +%{_mandir}/man8/lvrename.8%{?ext_man} +%{_mandir}/man8/lvresize.8%{?ext_man} +%{_mandir}/man8/lvs.8%{?ext_man} +%{_mandir}/man8/lvscan.8%{?ext_man} +%{_mandir}/man8/pvchange.8%{?ext_man} +%{_mandir}/man8/pvck.8%{?ext_man} +%{_mandir}/man8/pvcreate.8%{?ext_man} +%{_mandir}/man8/pvdisplay.8%{?ext_man} +%{_mandir}/man8/pvmove.8%{?ext_man} +%{_mandir}/man8/pvremove.8%{?ext_man} +%{_mandir}/man8/pvresize.8%{?ext_man} +%{_mandir}/man8/pvs.8%{?ext_man} +%{_mandir}/man8/pvscan.8%{?ext_man} +%{_mandir}/man8/vgcfgbackup.8%{?ext_man} +%{_mandir}/man8/vgcfgrestore.8%{?ext_man} +%{_mandir}/man8/vgchange.8%{?ext_man} +%{_mandir}/man8/vgck.8%{?ext_man} +%{_mandir}/man8/vgconvert.8%{?ext_man} +%{_mandir}/man8/vgcreate.8%{?ext_man} +%{_mandir}/man8/vgdisplay.8%{?ext_man} +%{_mandir}/man8/vgexport.8%{?ext_man} +%{_mandir}/man8/vgextend.8%{?ext_man} +%{_mandir}/man8/vgimport.8%{?ext_man} +%{_mandir}/man8/vgimportclone.8%{?ext_man} +%{_mandir}/man8/vgmerge.8%{?ext_man} +%{_mandir}/man8/vgmknodes.8%{?ext_man} +%{_mandir}/man8/vgreduce.8%{?ext_man} +%{_mandir}/man8/vgremove.8%{?ext_man} +%{_mandir}/man8/vgrename.8%{?ext_man} +%{_mandir}/man8/vgs.8%{?ext_man} +%{_mandir}/man8/vgscan.8%{?ext_man} +%{_mandir}/man8/vgsplit.8%{?ext_man} +%{_mandir}/man8/blkdeactivate.8%{?ext_man} +%{_mandir}/man8/lvmpolld.8%{?ext_man} +%{_mandir}/man8/lvm-lvpoll.8%{?ext_man} %{_udevdir}/rules.d/11-dm-lvm.rules %{_udevdir}/rules.d/69-dm-lvm-metad.rules %dir %{_sysconfdir}/lvm @@ -706,7 +691,6 @@ lvm devices without invoking a separate program. %postun -n %{cmdlib} -p /sbin/ldconfig %files -n %{cmdlib} -%defattr(-,root,root) %{_libdir}/liblvm2cmd.so.* %package devel @@ -720,7 +704,6 @@ Requires: lvm2 = %{version} This package provides development files for the LVM2 Logical Volume Manager. %files devel -%defattr(-,root,root) %{_includedir}/lvm2cmd.h %{_libdir}/liblvm2cmd.so @@ -734,7 +717,6 @@ Requires: lvm2 = %{version} An extensive functional testsuite for the LVM2 Logical Volume Manager. %files testsuite -%defattr(-,root,root) %{_datarootdir}/lvm2-testsuite/ %{_libexecdir}/lvm2-testsuite/ %{_bindir}/lvm2-testsuite From 5c670ebc3cf3cc4d52d8cdfab73f3c3fdf1c65b51c4fcb979fa0775694ec782d Mon Sep 17 00:00:00 2001 From: Gang He Date: Thu, 5 Sep 2019 10:03:51 +0000 Subject: [PATCH 4/7] Accepting request 728458 from home:hmzhao:branches:openSUSE:Factory upgrade lvm2 from 2.02.180 to 2.03.05. this upgrade only for opensuse & sles-15sp2 OBS-URL: https://build.opensuse.org/request/show/728458 OBS-URL: https://build.opensuse.org/package/show/Base:System/lvm2?expand=0&rev=249 --- ..._dump-always-timed-out-when-using-nc.patch | 39 -- ...2666_devices-drop-open-error-message.patch | 31 ++ ..._test-fix-lvm2-testsuite-build-error.patch | 44 -- ...resh-device-cache-on-the-first-failu.patch | 92 ---- lvm.conf | 406 ++++++++++-------- lvm2.changes | 37 +- lvm2.spec | 41 +- ...fy-python3-as-the-script-interpreter.patch | 27 -- 8 files changed, 311 insertions(+), 406 deletions(-) delete mode 100644 bug-1072624_test-lvmetad_dump-always-timed-out-when-using-nc.patch create mode 100644 bug-1122666_devices-drop-open-error-message.patch delete mode 100644 bug-950089_test-fix-lvm2-testsuite-build-error.patch delete mode 100644 bug-978055_clvmd-try-to-refresh-device-cache-on-the-first-failu.patch delete mode 100644 tests-specify-python3-as-the-script-interpreter.patch diff --git a/bug-1072624_test-lvmetad_dump-always-timed-out-when-using-nc.patch b/bug-1072624_test-lvmetad_dump-always-timed-out-when-using-nc.patch deleted file mode 100644 index 57f57eb..0000000 --- a/bug-1072624_test-lvmetad_dump-always-timed-out-when-using-nc.patch +++ /dev/null @@ -1,39 +0,0 @@ -From 6ff44e96eb804f9024bf3f606d207bd863f0e672 Mon Sep 17 00:00:00 2001 -From: Eric Ren -Date: Wed, 13 Dec 2017 18:53:00 +0800 -Subject: [PATCH] test: lvmetad_dump always timed out when using nc - -lvmetad_dump uses either "socat" or "nc" to communicate -with lvmetad. But when using "nc" if "socat" is not -available, nc will listen forever by default, causing the -testcase timed out. - -Signed-off-by: Eric Ren ---- - test/lib/aux.sh | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/test/lib/aux.sh b/test/lib/aux.sh -index 6bc7bd47e..4603c1504 100644 ---- a/test/lib/aux.sh -+++ b/test/lib/aux.sh -@@ -243,14 +243,14 @@ lvmetad_talk() { - local use=nc - if type -p socat >& /dev/null; then - use=socat -- elif echo | not nc -U "$TESTDIR/lvmetad.socket" ; then -+ elif echo | not nc -w 1 -U "$TESTDIR/lvmetad.socket" ; then - echo "WARNING: Neither socat nor nc -U seems to be available." 1>&2 - echo "## failed to contact lvmetad." - return 1 - fi - - if test "$use" = nc ; then -- nc -U "$TESTDIR/lvmetad.socket" -+ nc -w 1 -U "$TESTDIR/lvmetad.socket" - else - socat "unix-connect:$TESTDIR/lvmetad.socket" - - fi | tee -a lvmetad-talk.txt --- -2.13.6 - diff --git a/bug-1122666_devices-drop-open-error-message.patch b/bug-1122666_devices-drop-open-error-message.patch new file mode 100644 index 0000000..2dd15ce --- /dev/null +++ b/bug-1122666_devices-drop-open-error-message.patch @@ -0,0 +1,31 @@ +From 559cf0cd1e226baf63a98c39572264fbf5c3f6b4 Mon Sep 17 00:00:00 2001 +From: David Teigland +Date: Tue, 23 Apr 2019 09:39:42 -0500 +Subject: [PATCH] devices: drop open error message + +This open error is being printed in more common, +non-error circumstances than expected. After a +number of complaints make it only a debug message. +--- + lib/device/dev-io.c | 5 +---- + 1 file changed, 1 insertion(+), 4 deletions(-) + +diff --git a/lib/device/dev-io.c b/lib/device/dev-io.c +index 2a83a9657..6996a44dc 100644 +--- a/lib/device/dev-io.c ++++ b/lib/device/dev-io.c +@@ -572,10 +572,7 @@ int dev_open_flags(struct device *dev, int flags, int direct, int quiet) + } + } + #endif +- if (quiet) +- log_sys_debug("open", name); +- else +- log_sys_error("open", name); ++ log_sys_debug("open", name); + + dev->flags |= DEV_OPEN_FAILURE; + return 0; +-- +2.21.0 + diff --git a/bug-950089_test-fix-lvm2-testsuite-build-error.patch b/bug-950089_test-fix-lvm2-testsuite-build-error.patch deleted file mode 100644 index 1d74e66..0000000 --- a/bug-950089_test-fix-lvm2-testsuite-build-error.patch +++ /dev/null @@ -1,44 +0,0 @@ -commit 0402acbbb9f8f6066a3f7899e8cc3ae72b84ee20 -Author: Zhilong Liu -Date: Wed Dec 7 02:43:10 2016 -0500 - -add a new test package named lvm2-testsuite(bnc#950089) - + lvm2-testsuite.patch -Currently this new package is not enabled by default. -Please set enable_testsuite to 1 to turn it on in the - spec file. - -Eric: - -This patch is to solve the following obs building error: - -""" -E: arch-dependent-file-in-usr-share (Badness: 590) /usr/share/lvm2-testsuite/api/lvtest.t -... -""" - -So, move the *.t binary into /usr/lib/lvm2-testsuite/. - -Signed-off-by: Zhilong Liu - -diff --git a/test/Makefile.in b/test/Makefile.in -index f152868..f0845d7 100644 ---- a/test/Makefile.in -+++ b/test/Makefile.in -@@ -224,7 +224,7 @@ install: .tests-stamp lib/paths-installed - $(INSTALL_DATA) api/*.sh $(DATADIR)/api - $(INSTALL_DATA) unit/*.sh $(DATADIR)/unit - $(INSTALL_DATA) lib/mke2fs.conf $(DATADIR)/lib -- $(INSTALL_PROGRAM) api/*.{t,py} $(DATADIR)/api -+ $(INSTALL_PROGRAM) api/*.py $(DATADIR)/api/ - $(INSTALL_PROGRAM) unit/unit-test $(DATADIR)/unit - $(INSTALL_PROGRAM) dbus/*.py $(DATADIR)/dbus/ - $(INSTALL_DATA) lib/paths-installed $(DATADIR)/lib/paths -@@ -244,6 +244,7 @@ install: .tests-stamp lib/paths-installed - @cd $(EXECDIR) && for i in $(LIB_LINK_NOT); do \ - echo "$(LN_S) -f not $$i"; \ - $(LN_S) -f not $$i; done -+ $(INSTALL_PROGRAM) api/*.t $(EXECDIR) - $(INSTALL_PROGRAM) -D lib/runner $(bindir)/lvm2-testsuite - - lib/should: lib/not diff --git a/bug-978055_clvmd-try-to-refresh-device-cache-on-the-first-failu.patch b/bug-978055_clvmd-try-to-refresh-device-cache-on-the-first-failu.patch deleted file mode 100644 index 7898561..0000000 --- a/bug-978055_clvmd-try-to-refresh-device-cache-on-the-first-failu.patch +++ /dev/null @@ -1,92 +0,0 @@ -From 4f0681b1a296d88ac1dbdb26e46afed3285ad1bf Mon Sep 17 00:00:00 2001 -From: Eric Ren -Date: Tue, 23 May 2017 15:09:46 +0800 -Subject: [PATCH 09/10] clvmd: try to refresh device cache on the first failure - -1. The original problem -$ sudo lvchange -ay testvg/testlv -Error locking on node 1302cf30: Volume group for uuid not found: -qBKu65bSxfRq7gUf91NZuH4epLza4ifDieQJFd2to2WruVi5Brn7DxxsEgi5Zodw - -2. This problem can be easily replicated -a. Make clvmd running in cluster environment; -b. Assume you have created LV "testlv" in local VG 'testvg' on - a MD device 'md0'; -c. Make sure 'md0' is stopped, and not in the device cache by - executing 'clvmd -R' or 'pvscan'; -d. Assemble 'md0' by issuing 'mdadm --assemble --scan --name md0'; -e. To activate 'testlv', you will see the 'Error locking' problem. - -3. Analysis -a. After step 2.d, 'pvscan --cache ...' is triggered by udev rules, - notifying 'md0' is ready. But, pvscan exits very early because - lvmetad is not being used, thus doesn't go through the lock manager. - Therefore, clvmd isn't aware of this udev events. The device cache - hasn't 'md0'. - -b. In step 2.e, the client, 'lvchange -ay testvg/testlv' cmd, can find - 'testlv' correctly in the client metadata, because the device list - is gathered by call chain: - lvm_run_command()->init_filters()->persistent_filter_load()->dev_cache_scan(). - Then, it asks clvmd for "Locking VG V_testvg CR", which just drops - the metadata in clmvd by call chain: do_lock_vg()->lvmcache_drop_metadata(), - but the device cache is *not* refreshed. - -c. Finally, clvmd fails to find the lvid in activation path: - do_lock_lv()->do_activate_lv()->lv_info_by_lvid() - -Apparently, the metadata DB is not complete without a complete device -cache in clvmd. However, upstream say the pvscan tool intends to be -only used with lvmetad, suggesting me not hacking there. So, we'd -better fix this issue within clvmd code. - -Sometimes, the device cache in clvmd could be out of date. -"clvmd -R" is invented for this issue. However, to run -"clvmd -R" manually is not convenient, because it's hard -to predict when device change would happen. - -This patch gives another try after refreshing the device -cache. In normal, it doesn't cause any side-effect. In -case of the issue above, it's worth a retry. - -Signed-off-by: Eric Ren ---- - daemons/clvmd/lvm-functions.c | 11 ++++++++++- - 1 file changed, 10 insertions(+), 1 deletion(-) - -diff --git a/daemons/clvmd/lvm-functions.c b/daemons/clvmd/lvm-functions.c -index 2446fd1..dcd3f9b 100644 ---- a/daemons/clvmd/lvm-functions.c -+++ b/daemons/clvmd/lvm-functions.c -@@ -509,11 +509,14 @@ const char *do_lock_query(char *resource) - int do_lock_lv(unsigned char command, unsigned char lock_flags, char *resource) - { - int status = 0; -+ int do_refresh = 0; - - DEBUGLOG("do_lock_lv: resource '%s', cmd = %s, flags = %s, critical_section = %d\n", - resource, decode_locking_cmd(command), decode_flags(lock_flags), critical_section()); - -- if (!cmd->initialized.config || config_files_changed(cmd)) { -+again: -+ if (!cmd->initialized.config || config_files_changed(cmd) -+ || do_refresh) { - /* Reinitialise various settings inc. logging, filters */ - if (do_refresh_cache()) { - log_error("Updated config file invalid. Aborting."); -@@ -579,6 +582,12 @@ int do_lock_lv(unsigned char command, unsigned char lock_flags, char *resource) - init_test(0); - pthread_mutex_unlock(&lvm_lock); - -+ /* Try again in case device cache is stale */ -+ if (status == EIO && !do_refresh) { -+ do_refresh = 1; -+ goto again; -+ } -+ - DEBUGLOG("Command return is %d, critical_section is %d\n", status, critical_section()); - return status; - } --- -2.10.2 - diff --git a/lvm.conf b/lvm.conf index 960c885..991fe1a 100644 --- a/lvm.conf +++ b/lvm.conf @@ -21,7 +21,6 @@ # N.B. Take care that each setting only appears once if uncommenting # example settings in this file. -#hello # Configuration section config. # How LVM configuration settings are handled. @@ -124,7 +123,6 @@ devices { # then the device is accepted. Be careful mixing 'a' and 'r' patterns, # as the combination might produce unexpected results (test changes.) # Run vgscan after changing the filter to regenerate the cache. - # See the use_lvmetad comment for a special case regarding filters. # # Example # Accept every block device: @@ -140,36 +138,20 @@ devices { # # This configuration option has an automatic default value. # filter = [ "a|.*/|" ] - filter = [ "r|/dev/.*/by-path/.*|", "r|/dev/.*/by-id/.*|", "r|/dev/fd.*|", "r|/dev/cdrom|", "a/.*/" ] + # Below filter was used in SUSE/openSUSE before lvm2-2.03. It conflicts + # with lvm2-2.02.180+, so comment out in lvm2-2.03 release. + # filter = [ "r|/dev/.*/by-path/.*|", "r|/dev/.*/by-id/.*|", "r|/dev/fd.*|", "r|/dev/cdrom|", "a/.*/" ] # Configuration option devices/global_filter. # Limit the block devices that are used by LVM system components. # Because devices/filter may be overridden from the command line, it is - # not suitable for system-wide device filtering, e.g. udev and lvmetad. + # not suitable for system-wide device filtering, e.g. udev. # Use global_filter to hide devices from these LVM system components. # The syntax is the same as devices/filter. Devices rejected by # global_filter are not opened by LVM. # This configuration option has an automatic default value. # global_filter = [ "a|.*/|" ] - # Configuration option devices/cache_dir. - # Directory in which to store the device cache file. - # The results of filtering are cached on disk to avoid rescanning dud - # devices (which can take a very long time). By default this cache is - # stored in a file named .cache. It is safe to delete this file; the - # tools regenerate it. If obtain_device_list_from_udev is enabled, the - # list of devices is obtained from udev and any existing .cache file - # is removed. - cache_dir = "/etc/lvm/cache" - - # Configuration option devices/cache_file_prefix. - # A prefix used before the .cache file name. See devices/cache_dir. - cache_file_prefix = "" - - # Configuration option devices/write_cache_state. - # Enable/disable writing the cache file. See devices/cache_dir. - write_cache_state = 1 - # Configuration option devices/types. # List of additional acceptable block device types. # These are of device type names from /proc/devices, followed by the @@ -187,6 +169,10 @@ devices { # present on the system. sysfs must be part of the kernel and mounted.) sysfs_scan = 1 + # Configuration option devices/scan_lvs. + # Scan LVM LVs for layered PVs. + scan_lvs = 0 + # Configuration option devices/multipath_component_detection. # Ignore devices that are components of DM multipath devices. multipath_component_detection = 1 @@ -270,14 +256,6 @@ devices { # different way, making them a better choice for VG stacking. ignore_lvm_mirrors = 1 - # Configuration option devices/disable_after_error_count. - # Number of I/O errors after which a device is skipped. - # During each LVM operation, errors received from each device are - # counted. If the counter of a device exceeds the limit set here, - # no further I/O is sent to that device for the remainder of the - # operation. Setting this to 0 disables the counters altogether. - disable_after_error_count = 0 - # Configuration option devices/require_restorefile_with_uuid. # Allow use of pvcreate --uuid without requiring --restorefile. require_restorefile_with_uuid = 1 @@ -348,7 +326,7 @@ allocation { maximise_cling = 1 # Configuration option allocation/use_blkid_wiping. - # Use blkid to detect existing signatures on new PVs and LVs. + # Use blkid to detect and erase existing signatures on new PVs and LVs. # The blkid library can detect more signatures than the native LVM # detection code, but may take longer. LVM needs to be compiled with # blkid wiping support for this setting to apply. LVM native detection @@ -500,6 +478,154 @@ allocation { # Default physical extent size in KiB to use for new VGs. # This configuration option has an automatic default value. # physical_extent_size = 4096 + + # Configuration option allocation/vdo_use_compression. + # Enables or disables compression when creating a VDO volume. + # Compression may be disabled if necessary to maximize performance + # or to speed processing of data that is unlikely to compress. + # This configuration option has an automatic default value. + # vdo_use_compression = 1 + + # Configuration option allocation/vdo_use_deduplication. + # Enables or disables deduplication when creating a VDO volume. + # Deduplication may be disabled in instances where data is not expected + # to have good deduplication rates but compression is still desired. + # This configuration option has an automatic default value. + # vdo_use_deduplication = 1 + + # Configuration option allocation/vdo_use_metadata_hints. + # Enables or disables whether VDO volume should tag its latency-critical + # writes with the REQ_SYNC flag. Some device mapper targets such as dm-raid5 + # process writes with this flag at a higher priority. + # Default is enabled. + # This configuration option has an automatic default value. + # vdo_use_metadata_hints = 1 + + # Configuration option allocation/vdo_minimum_io_size. + # The minimum IO size for VDO volume to accept, in bytes. + # Valid values are 512 or 4096. The recommended and default value is 4096. + # This configuration option has an automatic default value. + # vdo_minimum_io_size = 4096 + + # Configuration option allocation/vdo_block_map_cache_size_mb. + # Specifies the amount of memory in MiB allocated for caching block map + # pages for VDO volume. The value must be a multiple of 4096 and must be + # at least 128MiB and less than 16TiB. The cache must be at least 16MiB + # per logical thread. Note that there is a memory overhead of 15%. + # This configuration option has an automatic default value. + # vdo_block_map_cache_size_mb = 128 + + # Configuration option allocation/vdo_block_map_period. + # The speed with which the block map cache writes out modified block map pages. + # A smaller era length is likely to reduce the amount time spent rebuilding, + # at the cost of increased block map writes during normal operation. + # The maximum and recommended value is 16380; the minimum value is 1. + # This configuration option has an automatic default value. + # vdo_block_map_period = 16380 + + # Configuration option allocation/vdo_check_point_frequency. + # The default check point frequency for VDO volume. + # This configuration option has an automatic default value. + # vdo_check_point_frequency = 0 + + # Configuration option allocation/vdo_use_sparse_index. + # Enables sparse indexing for VDO volume. + # This configuration option has an automatic default value. + # vdo_use_sparse_index = 0 + + # Configuration option allocation/vdo_index_memory_size_mb. + # Specifies the amount of index memory in MiB for VDO volume. + # The value must be at least 256MiB and at most 1TiB. + # This configuration option has an automatic default value. + # vdo_index_memory_size_mb = 256 + + # Configuration option allocation/vdo_slab_size_mb. + # Specifies the size in MiB of the increment by which a VDO is grown. + # Using a smaller size constrains the total maximum physical size + # that can be accommodated. Must be a power of two between 128MiB and 32GiB. + # This configuration option has an automatic default value. + # vdo_slab_size_mb = 2048 + + # Configuration option allocation/vdo_ack_threads. + # Specifies the number of threads to use for acknowledging + # completion of requested VDO I/O operations. + # The value must be at in range [0..100]. + # This configuration option has an automatic default value. + # vdo_ack_threads = 1 + + # Configuration option allocation/vdo_bio_threads. + # Specifies the number of threads to use for submitting I/O + # operations to the storage device of VDO volume. + # The value must be in range [1..100] + # Each additional thread after the first will use an additional 18MiB of RAM, + # plus 1.12 MiB of RAM per megabyte of configured read cache size. + # This configuration option has an automatic default value. + # vdo_bio_threads = 1 + + # Configuration option allocation/vdo_bio_rotation. + # Specifies the number of I/O operations to enqueue for each bio-submission + # thread before directing work to the next. The value must be in range [1..1024]. + # This configuration option has an automatic default value. + # vdo_bio_rotation = 64 + + # Configuration option allocation/vdo_cpu_threads. + # Specifies the number of threads to use for CPU-intensive work such as + # hashing or compression for VDO volume. The value must be in range [1..100] + # This configuration option has an automatic default value. + # vdo_cpu_threads = 2 + + # Configuration option allocation/vdo_hash_zone_threads. + # Specifies the number of threads across which to subdivide parts of the VDO + # processing based on the hash value computed from the block data. + # The value must be at in range [0..100]. + # vdo_hash_zone_threads, vdo_logical_threads and vdo_physical_threads must be + # either all zero or all non-zero. + # This configuration option has an automatic default value. + # vdo_hash_zone_threads = 1 + + # Configuration option allocation/vdo_logical_threads. + # Specifies the number of threads across which to subdivide parts of the VDO + # processing based on the hash value computed from the block data. + # A logical thread count of 9 or more will require explicitly specifying + # a sufficiently large block map cache size, as well. + # The value must be in range [0..100]. + # vdo_hash_zone_threads, vdo_logical_threads and vdo_physical_threads must be + # either all zero or all non-zero. + # This configuration option has an automatic default value. + # vdo_logical_threads = 1 + + # Configuration option allocation/vdo_physical_threads. + # Specifies the number of threads across which to subdivide parts of the VDO + # processing based on physical block addresses. + # Each additional thread after the first will use an additional 10MiB of RAM. + # The value must be in range [0..16]. + # vdo_hash_zone_threads, vdo_logical_threads and vdo_physical_threads must be + # either all zero or all non-zero. + # This configuration option has an automatic default value. + # vdo_physical_threads = 1 + + # Configuration option allocation/vdo_write_policy. + # Specifies the write policy: + # auto - VDO will check the storage device and determine whether it supports flushes. + # If it does, VDO will run in async mode, otherwise it will run in sync mode. + # sync - Writes are acknowledged only after data is stably written. + # This policy is not supported if the underlying storage is not also synchronous. + # async - Writes are acknowledged after data has been cached for writing to stable storage. + # Data which has not been flushed is not guaranteed to persist in this mode. + # This configuration option has an automatic default value. + # vdo_write_policy = "auto" + + # Configuration option allocation/vdo_max_discard. + # Specified te maximum size of discard bio accepted, in 4096 byte blocks. + # I/O requests to a VDO volume are normally split into 4096-byte blocks, + # and processed up to 2048 at a time. However, discard requests to a VDO volume + # can be automatically split to a larger size, up to 4096-byte blocks + # in a single bio, and are limited to 1500 at a time. + # Increasing this value may provide better overall performance, at the cost of + # increased latency for the individual discard requests. + # The default and minimum is 1. The maximum is UINT_MAX / 4096. + # This configuration option has an automatic default value. + # vdo_max_discard = 1 } # Configuration section log. @@ -614,9 +740,9 @@ log { # Select log messages by class. # Some debugging messages are assigned to a class and only appear in # debug output if the class is listed here. Classes currently - # available: memory, devices, activation, allocation, lvmetad, + # available: memory, devices, io, activation, allocation, # metadata, cache, locking, lvmpolld. Use "all" to see everything. - debug_classes = [ "memory", "devices", "activation", "allocation", "lvmetad", "metadata", "cache", "locking", "lvmpolld", "dbus" ] + debug_classes = [ "memory", "devices", "io", "activation", "allocation", "metadata", "cache", "locking", "lvmpolld", "dbus" ] } # Configuration section backup. @@ -704,32 +830,6 @@ global { # the error messages. activation = 1 - # Configuration option global/fallback_to_lvm1. - # Try running LVM1 tools if LVM cannot communicate with DM. - # This option only applies to 2.4 kernels and is provided to help - # switch between device-mapper kernels and LVM1 kernels. The LVM1 - # tools need to be installed with .lvm1 suffices, e.g. vgscan.lvm1. - # They will stop working once the lvm2 on-disk metadata format is used. - # This configuration option has an automatic default value. - # fallback_to_lvm1 = 1 - - # Configuration option global/format. - # The default metadata format that commands should use. - # The -M 1|2 option overrides this setting. - # - # Accepted values: - # lvm1 - # lvm2 - # - # This configuration option has an automatic default value. - # format = "lvm2" - - # Configuration option global/format_libraries. - # Shared libraries that process different metadata formats. - # If support for LVM1 metadata was compiled as a shared library use - # format_libraries = "liblvm2format1.so" - # This configuration option does not have a default value defined. - # Configuration option global/segment_libraries. # This configuration option does not have a default value defined. @@ -742,57 +842,10 @@ global { # Location of /etc system configuration directory. etc = "/etc" - # Configuration option global/locking_type. - # Type of locking to use. - # - # Accepted values: - # 0 - # Turns off locking. Warning: this risks metadata corruption if - # commands run concurrently. - # 1 - # LVM uses local file-based locking, the standard mode. - # 2 - # LVM uses the external shared library locking_library. - # 3 - # LVM uses built-in clustered locking with clvmd. - # This is incompatible with lvmetad. If use_lvmetad is enabled, - # LVM prints a warning and disables lvmetad use. - # 4 - # LVM uses read-only locking which forbids any operations that - # might change metadata. - # 5 - # Offers dummy locking for tools that do not need any locks. - # You should not need to set this directly; the tools will select - # when to use it instead of the configured locking_type. - # Do not use lvmetad or the kernel device-mapper driver with this - # locking type. It is used by the --readonly option that offers - # read-only access to Volume Group metadata that cannot be locked - # safely because it belongs to an inaccessible domain and might be - # in use, for example a virtual machine image or a disk that is - # shared by a clustered machine. - # - locking_type = 1 - # Configuration option global/wait_for_locks. # When disabled, fail if a lock request would block. wait_for_locks = 1 - # Configuration option global/fallback_to_clustered_locking. - # Attempt to use built-in cluster locking if locking_type 2 fails. - # If using external locking (type 2) and initialisation fails, with - # this enabled, an attempt will be made to use the built-in clustered - # locking. Disable this if using a customised locking_library. - fallback_to_clustered_locking = 1 - - # Configuration option global/fallback_to_local_locking. - # Use locking_type 1 (local) if locking_type 2 or 3 fail. - # If an attempt to initialise type 2 or type 3 locking failed, perhaps - # because cluster components such as clvmd are not running, with this - # enabled, an attempt will be made to use local file-based locking - # (type 1). If this succeeds, only commands against local VGs will - # proceed. VGs marked as clustered will be ignored. - fallback_to_local_locking = 1 - # Configuration option global/locking_dir. # Directory to use for LVM command file locks. # Local non-LV directory that holds file-based locks while commands are @@ -813,24 +866,12 @@ global { # Search this directory first for shared libraries. # This configuration option does not have a default value defined. - # Configuration option global/locking_library. - # The external locking library to use for locking_type 2. - # This configuration option has an automatic default value. - # locking_library = "liblvm2clusterlock.so" - # Configuration option global/abort_on_internal_errors. # Abort a command that encounters an internal error. # Treat any internal errors as fatal errors, aborting the process that # encountered the internal error. Please only enable for debugging. abort_on_internal_errors = 0 - # Configuration option global/detect_internal_vg_cache_corruption. - # Internal verification of VG structures. - # Check if CRC matches when a parsed VG is used multiple times. This - # is useful to catch unexpected changes to cached VG structures. - # Please only enable for debugging. - detect_internal_vg_cache_corruption = 0 - # Configuration option global/metadata_read_only. # No operations that change on-disk metadata are permitted. # Additionally, read-only commands that encounter metadata in need of @@ -865,6 +906,17 @@ global { # mirror_segtype_default = "raid1" + # Configuration option global/support_mirrored_mirror_log. + # Configuration option global/support_mirrored_mirror_log. + # Enable mirrored 'mirror' log type for testing. + # + # This type is deprecated to create or convert to but can + # be enabled to test that activation of existing mirrored + # logs and conversion to disk/core works. + # + # Not supported for regular operation! + support_mirrored_mirror_log = 0 + # Configuration option global/raid10_segtype_default. # The segment type used by the -i -m combination. # The --type raid10|mirror option overrides this setting. @@ -913,41 +965,20 @@ global { # This configuration option has an automatic default value. # lvdisplay_shows_full_device_path = 0 - # Configuration option global/use_lvmetad. - # Use lvmetad to cache metadata and reduce disk scanning. - # When enabled (and running), lvmetad provides LVM commands with VG - # metadata and PV state. LVM commands then avoid reading this - # information from disks which can be slow. When disabled (or not - # running), LVM commands fall back to scanning disks to obtain VG - # metadata. lvmetad is kept updated via udev rules which must be set - # up for LVM to work correctly. (The udev rules should be installed - # by default.) Without a proper udev setup, changes in the system's - # block device configuration will be unknown to LVM, and ignored - # until a manual 'pvscan --cache' is run. If lvmetad was running - # while use_lvmetad was disabled, it must be stopped, use_lvmetad - # enabled, and then started. When using lvmetad, LV activation is - # switched to an automatic, event-based mode. In this mode, LVs are - # activated based on incoming udev events that inform lvmetad when - # PVs appear on the system. When a VG is complete (all PVs present), - # it is auto-activated. The auto_activation_volume_list setting - # controls which LVs are auto-activated (all by default.) - # When lvmetad is updated (automatically by udev events, or directly - # by pvscan --cache), devices/filter is ignored and all devices are - # scanned by default. lvmetad always keeps unfiltered information - # which is provided to LVM commands. Each LVM command then filters - # based on devices/filter. This does not apply to other, non-regexp, - # filtering settings: component filters such as multipath and MD - # are checked during pvscan --cache. To filter a device and prevent - # scanning from the LVM system entirely, including lvmetad, use - # devices/global_filter. - use_lvmetad = 1 + # Configuration option global/event_activation. + # Activate LVs based on system-generated device events. + # When a device appears on the system, a system-generated event runs + # the pvscan command to activate LVs if the new PV completes the VG. + # Use auto_activation_volume_list to select which LVs should be + # activated from these events (the default is all.) + # When event_activation is disabled, the system will generally run + # a direct activation command to activate LVs in complete VGs. + event_activation = 1 - # Configuration option global/lvmetad_update_wait_time. - # Number of seconds a command will wait for lvmetad update to finish. - # After waiting for this period, a command will not use lvmetad, and - # will revert to disk scanning. + # Configuration option global/use_aio. + # Use async I/O when reading and writing devices. # This configuration option has an automatic default value. - # lvmetad_update_wait_time = 10 + # use_aio = 1 # Configuration option global/use_lvmlockd. # Use lvmlockd for locking among hosts using LVM on shared storage. @@ -1073,6 +1104,17 @@ global { # This configuration option has an automatic default value. # cache_repair_options = [ "" ] + # Configuration option global/vdo_format_executable. + # The full path to the vdoformat command. + # LVM uses this command to initial data volume for VDO type logical volume + # This configuration option has an automatic default value. + # vdo_format_executable = "/usr/bin/vdoformat" + + # Configuration option global/vdo_format_options. + # List of options passed added to standard vdoformat command. + # This configuration option has an automatic default value. + # vdo_format_options = [ "" ] + # Configuration option global/fsadm_executable. # The full path to the fsadm command. # LVM uses this command to help with lvresize -r operations. @@ -1446,6 +1488,33 @@ activation { # thin_pool_autoextend_percent = 20 + # Configuration option activation/vdo_pool_autoextend_threshold. + # Auto-extend a VDO pool when its usage exceeds this percent. + # Setting this to 100 disables automatic extension. + # The minimum value is 50 (a smaller value is treated as 50.) + # Also see vdo_pool_autoextend_percent. + # Automatic extension requires dmeventd to be monitoring the LV. + # + # Example + # Using 70% autoextend threshold and 20% autoextend size, when a 10G + # VDO pool exceeds 7G, it is extended to 12G, and when it exceeds + # 8.4G, it is extended to 14.4G: + # vdo_pool_autoextend_threshold = 70 + # + vdo_pool_autoextend_threshold = 100 + + # Configuration option activation/vdo_pool_autoextend_percent. + # Auto-extending a VDO pool adds this percent extra space. + # The amount of additional space added to a VDO pool is this + # percent of its current size. + # + # Example + # Using 70% autoextend threshold and 20% autoextend size, when a 10G + # VDO pool exceeds 7G, it is extended to 12G, and when it exceeds + # 8.4G, it is extended to 14.4G: + # This configuration option has an automatic default value. + # vdo_pool_autoextend_percent = 20 + # Configuration option activation/mlock_filter. # Do not mlock these memory areas. # While activating devices, I/O to devices being (re)configured is @@ -1612,24 +1681,6 @@ activation { # This configuration option is advanced. # This configuration option has an automatic default value. # stripesize = 64 - - # Configuration option metadata/dirs. - # Directories holding live copies of text format metadata. - # These directories must not be on logical volumes! - # It's possible to use LVM with a couple of directories here, - # preferably on different (non-LV) filesystems, and with no other - # on-disk metadata (pvmetadatacopies = 0). Or this can be in addition - # to on-disk metadata areas. The feature was originally added to - # simplify testing and is not supported under low memory situations - - # the machine could lock up. Never edit any files in these directories - # by hand unless you are absolutely sure you know what you are doing! - # Use the supplied toolset to make changes (e.g. vgcfgrestore). - # - # Example - # dirs = [ "/etc/lvm/metadata", "/mnt/disk2/lvm/metadata2" ] - # - # This configuration option is advanced. - # This configuration option does not have a default value defined. # } # Configuration section report. @@ -2080,6 +2131,23 @@ dmeventd { # This configuration option has an automatic default value. # thin_command = "lvm lvextend --use-policies" + # Configuration option dmeventd/vdo_library. + # The library dmeventd uses when monitoring a VDO pool device. + # libdevmapper-event-lvm2vdo.so monitors the filling of a pool + # and emits a warning through syslog when the usage exceeds 80%. The + # warning is repeated when 85%, 90% and 95% of the pool is filled. + # This configuration option has an automatic default value. + # vdo_library = "libdevmapper-event-lvm2vdo.so" + + # Configuration option dmeventd/vdo_command. + # The plugin runs command with each 5% increment when VDO pool volume + # gets above 50%. + # Command which starts with 'lvm ' prefix is internal lvm command. + # You can write your own handler to customise behaviour in more details. + # User handler is specified with the full path starting with '/'. + # This configuration option has an automatic default value. + # vdo_command = "lvm lvextend --use-policies" + # Configuration option dmeventd/executable. # The full path to the dmeventd binary. # This configuration option has an automatic default value. diff --git a/lvm2.changes b/lvm2.changes index dd353ad..c7bd0fd 100644 --- a/lvm2.changes +++ b/lvm2.changes @@ -1,13 +1,34 @@ ------------------------------------------------------------------- -Wed Aug 21 10:10:30 UTC 2019 - ghe@suse.com +Mon Sep 02 11:21:03 UTC 2019 - heming.zhao@suse.com -- MD devices should be detected by LVM2 with metadata=1.0/0.9 (bsc#1145231) - + bug-1145231_lvmetad-improve-scan-for-pvscan-all.patch - + bug-1145231_scan-use-full-md-filter-when-md-1.0-devices-are-pres.patch - + bug-1145231_scan-enable-full-md-filter-when-md-1.0-devices-are-p.patch - + bug-1145231_scan-md-metadata-version-0.90-is-at-the-end-of-disk.patch - + bug-1145231_pvscan-lvmetad-use-full-md-filter-when-md-1.0-device.patch - + bug-1145231_pvscan-lvmetad-use-udev-info-to-improve-md-component.patch +- Update to LVM2.2.03.05 + - To drop lvm2-clvm and lvm2-cmirrord rpms (jsc#PM-1324) + - Fix Out of date package (bsc#1111734) + - Fix occasional slow shutdowns with kernel 5.0.0 and up (bsc#1137648) + - Remove clvmd + - Remove lvmlib (api) + - Remove lvmetad +- Drop patches that have been merged into upstream + - bug-1114113_metadata-prevent-writing-beyond-metadata-area.patch + - bug-1137296_pvremove-vgextend-fix-using-device-aliases-with-lvmetad.patch + - bug-1135984_cache-support-no_discard_passdown.patch +- Drop patches that have been nonexist/unsupport in upstream + - bsc1080299-detect-clvm-properly.patch + - bug-998893_make_pvscan_service_after_multipathd.patch + - bug-978055_clvmd-try-to-refresh-device-cache-on-the-first-failu.patch + - bug-950089_test-fix-lvm2-testsuite-build-error.patch + - bug-1072624_test-lvmetad_dump-always-timed-out-when-using-nc.patch + - tests-specify-python3-as-the-script-interpreter.patch +- Update spec files + - merge device-mapper, lvm2-lockd, lvm2 into one spec file + - clvmd/lvmlib (api)/lvmetad had been removed, so delete related context in spec file +- Update lvm.conf files + - remove all lvmetad lines/keywords + - add event_activation + - remove fallback_to_lvm1 & related items + - remove locking_type/fallback_to_clustered_locking/fallback_to_local_locking items + - remove locking_library item + - remove all special filter rules ------------------------------------------------------------------- Tue Jul 9 10:00:05 UTC 2019 - ghe@suse.com diff --git a/lvm2.spec b/lvm2.spec index c78e729..f44f980 100644 --- a/lvm2.spec +++ b/lvm2.spec @@ -32,13 +32,13 @@ %global flavor @BUILD_FLAVOR@%{nil} %define psuffix %{nil} %if "%{flavor}" == "devicemapper" -%define psuffix -devicemapper +%define psuffix -device-mapper %bcond_without devicemapper %else %bcond_with devicemapper %endif %if "%{flavor}" == "lockd" -%define psuffix -clustering +%define psuffix -lvmlockd %bcond_without lockd %else %bcond_with lockd @@ -54,7 +54,7 @@ Source: ftp://sources.redhat.com/pub/lvm2/LVM2.%{version}.tgz Source1: lvm.conf Source42: ftp://sources.redhat.com/pub/lvm2/LVM2.%{version}.tgz.asc # Upstream patches -#Patch0001: bug-1122666_devices-drop-open-error-message.patch +Patch0001: bug-1122666_devices-drop-open-error-message.patch # SUSE patches: 1000+ for LVM # Never upstream Patch1001: cmirrord_remove_date_time_from_compilation.patch @@ -67,6 +67,12 @@ Patch2001: bug-1012973_simplify-special-case-for-md-in-69-dm-lvm-metadata.p Patch3001: bug-1043040_test-fix-read-ahead-issues-in-test-scripts.patch # patches specif for lvm2.spec Patch4001: bug-1037309_Makefile-skip-compliling-daemons-lvmlockd-directory.patch +# To detect modprobe during build +BuildRequires: kmod-compat +BuildRequires: libaio-devel +BuildRequires: pkgconfig +BuildRequires: thin-provisioning-tools >= %{thin_provisioning_version} +BuildRequires: pkgconfig(libudev) Requires: device-mapper >= %{device_mapper_version} Requires: modutils Requires(post): coreutils @@ -76,41 +82,22 @@ Obsoletes: lvm2-cmirrord %{?systemd_requires} %if %{with devicemapper} BuildRequires: gcc-c++ -BuildRequires: kmod-compat -BuildRequires: libaio-devel -BuildRequires: pkgconfig BuildRequires: suse-module-tools -BuildRequires: thin-provisioning-tools >= %{thin_provisioning_version} BuildRequires: pkgconfig(libselinux) BuildRequires: pkgconfig(libsepol) -BuildRequires: pkgconfig(libudev) BuildRequires: pkgconfig(systemd) %else -%if %{with lockd} -# To detect modprobe during build -BuildRequires: kmod-compat -BuildRequires: libaio-devel BuildRequires: libcorosync-devel -BuildRequires: libdlm-devel -BuildRequires: pkgconfig -BuildRequires: thin-provisioning-tools >= %{thin_provisioning_version} BuildRequires: pkgconfig(blkid) -BuildRequires: pkgconfig(libudev) +%if %{with lockd} +BuildRequires: libdlm-devel %if 0%{_supportsanlock} == 1 BuildRequires: sanlock-devel >= %{sanlock_version} %endif %else BuildRequires: gcc-c++ -# To detect modprobe during build -BuildRequires: kmod-compat -BuildRequires: libaio-devel -BuildRequires: libcorosync-devel BuildRequires: libselinux-devel -BuildRequires: pkgconfig BuildRequires: readline-devel -BuildRequires: thin-provisioning-tools >= %{thin_provisioning_version} -BuildRequires: pkgconfig(blkid) -BuildRequires: pkgconfig(libudev) BuildRequires: pkgconfig(systemd) BuildRequires: pkgconfig(udev) %endif @@ -122,7 +109,7 @@ Volume Manager. %prep %setup -q -n LVM2.%{version} -#%patch0001 -p1 +%patch0001 -p1 %patch1001 -p1 %patch1002 -p1 %patch1003 -p1 @@ -138,7 +125,6 @@ Volume Manager. %if !%{with devicemapper} && !%{with lockd} extra_opts=" --enable-blkid_wiping - --enable-cmdlib --enable-lvmpolld --enable-realtime --with-cache=internal @@ -156,7 +142,6 @@ extra_opts=" %if %{with lockd} extra_opts=" --enable-blkid_wiping - --enable-cmdlib --enable-lvmpolld --enable-realtime --with-default-locking-dir=/run/lock/lvm @@ -682,6 +667,8 @@ LVM commands use lvmlockd to coordinate access to shared storage. Summary: LVM2 command line library Group: System/Libraries Conflicts: %{name} < %{version} +Obsoletes: liblvm2app2_2 +Obsoletes: liblvm2cmd2_02 %description -n %{cmdlib} The lvm2 command line library allows building programs that manage diff --git a/tests-specify-python3-as-the-script-interpreter.patch b/tests-specify-python3-as-the-script-interpreter.patch deleted file mode 100644 index 7fb354e..0000000 --- a/tests-specify-python3-as-the-script-interpreter.patch +++ /dev/null @@ -1,27 +0,0 @@ -From 3f768d29ceb5427b6e8de4fe35e2c1001409d750 Mon Sep 17 00:00:00 2001 -From: Gang He -Date: Wed, 20 Jun 2018 14:04:52 +0800 -Subject: [PATCH] tests: specify python3 as the script interpreter - -specify /usr/bin/python3 as the script interpreter in -python_lvm_unit.py.in file, otherwise, there will be a building -error in OBS. - -Signed-off-by: Gang He ---- - test/api/python_lvm_unit.py.in | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/test/api/python_lvm_unit.py.in b/test/api/python_lvm_unit.py.in -index 78ced7e31..c6a7c9905 100755 ---- a/test/api/python_lvm_unit.py.in -+++ b/test/api/python_lvm_unit.py.in -@@ -1,4 +1,4 @@ --#!@PYTHON@ -+#!/usr/bin/python3 - - # Copyright (C) 2012-2013 Red Hat, Inc. All rights reserved. - # --- -2.12.3 - From 4af0ba23c0589ac4fa81b26ef029d3d5baaef52ea7098595801676c085b22492 Mon Sep 17 00:00:00 2001 From: Gang He Date: Fri, 6 Sep 2019 09:08:10 +0000 Subject: [PATCH 5/7] Accepting request 728718 from home:hmzhao:branches:openSUSE:Factory upgrade lvm2 from 2.02.180 to 2.03.05. this upgrade only for opensuse & sles-15sp2 OBS-URL: https://build.opensuse.org/request/show/728718 OBS-URL: https://build.opensuse.org/package/show/Base:System/lvm2?expand=0&rev=250 --- lvm2.spec | 3 +++ 1 file changed, 3 insertions(+) diff --git a/lvm2.spec b/lvm2.spec index f44f980..55e7a21 100644 --- a/lvm2.spec +++ b/lvm2.spec @@ -53,6 +53,9 @@ URL: https://www.sourceware.org/lvm2/ Source: ftp://sources.redhat.com/pub/lvm2/LVM2.%{version}.tgz Source1: lvm.conf Source42: ftp://sources.redhat.com/pub/lvm2/LVM2.%{version}.tgz.asc +%if %{with devicemapper} +Source99: baselibs.conf +%endif # Upstream patches Patch0001: bug-1122666_devices-drop-open-error-message.patch # SUSE patches: 1000+ for LVM From 9dc484637c7f80bd445393335aec8f87ea8b010bc50f84c0f05b966a4e58d527 Mon Sep 17 00:00:00 2001 From: Gang He Date: Mon, 9 Sep 2019 06:55:46 +0000 Subject: [PATCH 6/7] Accepting request 729324 from home:ganghe:branches:Base:System Avoid creation of mixed-blocksize PV on LVM volume groups (bsc#1149408) OBS-URL: https://build.opensuse.org/request/show/729324 OBS-URL: https://build.opensuse.org/package/show/Base:System/lvm2?expand=0&rev=251 --- ...ix-rounding-writes-up-to-sector-size.patch | 303 ++++++++++++++++++ ...d-restrict-PVs-with-mixed-block-size.patch | 223 +++++++++++++ lvm.conf | 6 + lvm2.changes | 9 + lvm2.spec | 4 + 5 files changed, 545 insertions(+) create mode 100644 bug-1149408_Fix-rounding-writes-up-to-sector-size.patch create mode 100644 bug-1149408_vgcreate-vgextend-restrict-PVs-with-mixed-block-size.patch diff --git a/bug-1149408_Fix-rounding-writes-up-to-sector-size.patch b/bug-1149408_Fix-rounding-writes-up-to-sector-size.patch new file mode 100644 index 0000000..73e2fbb --- /dev/null +++ b/bug-1149408_Fix-rounding-writes-up-to-sector-size.patch @@ -0,0 +1,303 @@ +From 7f347698e3d09b15b4f9aed9c61239fda7b9e8c8 Mon Sep 17 00:00:00 2001 +From: David Teigland +Date: Fri, 26 Jul 2019 14:21:08 -0500 +Subject: [PATCH] Fix rounding writes up to sector size + +Do this at two levels, although one would be enough to +fix the problem seen recently: + +- Ignore any reported sector size other than 512 of 4096. + If either sector size (physical or logical) is reported + as 512, then use 512. If neither are reported as 512, + and one or the other is reported as 4096, then use 4096. + If neither is reported as either 512 or 4096, then use 512. + +- When rounding up a limited write in bcache to be a multiple + of the sector size, check that the resulting write size is + not larger than the bcache block itself. (This shouldn't + happen if the sector size is 512 or 4096.) +--- + lib/device/bcache.c | 89 +++++++++++++++++++++++++++++++++++++++++++++++++++-- + lib/device/dev-io.c | 52 +++++++++++++++++++++++++++++++ + lib/device/device.h | 8 +++-- + lib/label/label.c | 30 ++++++++++++++---- + 4 files changed, 169 insertions(+), 10 deletions(-) + +diff --git a/lib/device/bcache.c b/lib/device/bcache.c +index 7b0935352..04fbf3521 100644 +--- a/lib/device/bcache.c ++++ b/lib/device/bcache.c +@@ -169,6 +169,7 @@ static bool _async_issue(struct io_engine *ioe, enum dir d, int fd, + sector_t offset; + sector_t nbytes; + sector_t limit_nbytes; ++ sector_t orig_nbytes; + sector_t extra_nbytes = 0; + + if (((uintptr_t) data) & e->page_mask) { +@@ -191,11 +192,41 @@ static bool _async_issue(struct io_engine *ioe, enum dir d, int fd, + return false; + } + ++ /* ++ * If the bcache block offset+len goes beyond where lvm is ++ * intending to write, then reduce the len being written ++ * (which is the bcache block size) so we don't write past ++ * the limit set by lvm. If after applying the limit, the ++ * resulting size is not a multiple of the sector size (512 ++ * or 4096) then extend the reduced size to be a multiple of ++ * the sector size (we don't want to write partial sectors.) ++ */ + if (offset + nbytes > _last_byte_offset) { + limit_nbytes = _last_byte_offset - offset; +- if (limit_nbytes % _last_byte_sector_size) ++ ++ if (limit_nbytes % _last_byte_sector_size) { + extra_nbytes = _last_byte_sector_size - (limit_nbytes % _last_byte_sector_size); + ++ /* ++ * adding extra_nbytes to the reduced nbytes (limit_nbytes) ++ * should make the final write size a multiple of the ++ * sector size. This should never result in a final size ++ * larger than the bcache block size (as long as the bcache ++ * block size is a multiple of the sector size). ++ */ ++ if (limit_nbytes + extra_nbytes > nbytes) { ++ log_warn("Skip extending write at %llu len %llu limit %llu extra %llu sector_size %llu", ++ (unsigned long long)offset, ++ (unsigned long long)nbytes, ++ (unsigned long long)limit_nbytes, ++ (unsigned long long)extra_nbytes, ++ (unsigned long long)_last_byte_sector_size); ++ extra_nbytes = 0; ++ } ++ } ++ ++ orig_nbytes = nbytes; ++ + if (extra_nbytes) { + log_debug("Limit write at %llu len %llu to len %llu rounded to %llu", + (unsigned long long)offset, +@@ -210,6 +241,22 @@ static bool _async_issue(struct io_engine *ioe, enum dir d, int fd, + (unsigned long long)limit_nbytes); + nbytes = limit_nbytes; + } ++ ++ /* ++ * This shouldn't happen, the reduced+extended ++ * nbytes value should never be larger than the ++ * bcache block size. ++ */ ++ if (nbytes > orig_nbytes) { ++ log_error("Invalid adjusted write at %llu len %llu adjusted %llu limit %llu extra %llu sector_size %llu", ++ (unsigned long long)offset, ++ (unsigned long long)orig_nbytes, ++ (unsigned long long)nbytes, ++ (unsigned long long)limit_nbytes, ++ (unsigned long long)extra_nbytes, ++ (unsigned long long)_last_byte_sector_size); ++ return false; ++ } + } + } + +@@ -403,6 +450,7 @@ static bool _sync_issue(struct io_engine *ioe, enum dir d, int fd, + uint64_t nbytes = len; + sector_t limit_nbytes = 0; + sector_t extra_nbytes = 0; ++ sector_t orig_nbytes = 0; + + if (offset > _last_byte_offset) { + log_error("Limit write at %llu len %llu beyond last byte %llu", +@@ -415,9 +463,30 @@ static bool _sync_issue(struct io_engine *ioe, enum dir d, int fd, + + if (offset + nbytes > _last_byte_offset) { + limit_nbytes = _last_byte_offset - offset; +- if (limit_nbytes % _last_byte_sector_size) ++ ++ if (limit_nbytes % _last_byte_sector_size) { + extra_nbytes = _last_byte_sector_size - (limit_nbytes % _last_byte_sector_size); + ++ /* ++ * adding extra_nbytes to the reduced nbytes (limit_nbytes) ++ * should make the final write size a multiple of the ++ * sector size. This should never result in a final size ++ * larger than the bcache block size (as long as the bcache ++ * block size is a multiple of the sector size). ++ */ ++ if (limit_nbytes + extra_nbytes > nbytes) { ++ log_warn("Skip extending write at %llu len %llu limit %llu extra %llu sector_size %llu", ++ (unsigned long long)offset, ++ (unsigned long long)nbytes, ++ (unsigned long long)limit_nbytes, ++ (unsigned long long)extra_nbytes, ++ (unsigned long long)_last_byte_sector_size); ++ extra_nbytes = 0; ++ } ++ } ++ ++ orig_nbytes = nbytes; ++ + if (extra_nbytes) { + log_debug("Limit write at %llu len %llu to len %llu rounded to %llu", + (unsigned long long)offset, +@@ -432,6 +501,22 @@ static bool _sync_issue(struct io_engine *ioe, enum dir d, int fd, + (unsigned long long)limit_nbytes); + nbytes = limit_nbytes; + } ++ ++ /* ++ * This shouldn't happen, the reduced+extended ++ * nbytes value should never be larger than the ++ * bcache block size. ++ */ ++ if (nbytes > orig_nbytes) { ++ log_error("Invalid adjusted write at %llu len %llu adjusted %llu limit %llu extra %llu sector_size %llu", ++ (unsigned long long)offset, ++ (unsigned long long)orig_nbytes, ++ (unsigned long long)nbytes, ++ (unsigned long long)limit_nbytes, ++ (unsigned long long)extra_nbytes, ++ (unsigned long long)_last_byte_sector_size); ++ return false; ++ } + } + + where = offset; +diff --git a/lib/device/dev-io.c b/lib/device/dev-io.c +index 3fe264755..5fa0b7a9e 100644 +--- a/lib/device/dev-io.c ++++ b/lib/device/dev-io.c +@@ -250,6 +250,58 @@ static int _dev_discard_blocks(struct device *dev, uint64_t offset_bytes, uint64 + return 1; + } + ++int dev_get_direct_block_sizes(struct device *dev, unsigned int *physical_block_size, ++ unsigned int *logical_block_size) ++{ ++ int fd = dev->bcache_fd; ++ int do_close = 0; ++ unsigned int pbs = 0; ++ unsigned int lbs = 0; ++ ++ if (dev->physical_block_size || dev->logical_block_size) { ++ *physical_block_size = dev->physical_block_size; ++ *logical_block_size = dev->logical_block_size; ++ return 1; ++ } ++ ++ if (fd <= 0) { ++ if (!dev_open_readonly(dev)) ++ return 0; ++ fd = dev_fd(dev); ++ do_close = 1; ++ } ++ ++ /* ++ * BLKPBSZGET from kernel comment for blk_queue_physical_block_size: ++ * "the lowest possible sector size that the hardware can operate on ++ * without reverting to read-modify-write operations" ++ */ ++ if (ioctl(fd, BLKPBSZGET, &pbs)) { ++ stack; ++ pbs = 0; ++ } ++ ++ /* ++ * BLKSSZGET from kernel comment for blk_queue_logical_block_size: ++ * "the lowest possible block size that the storage device can address." ++ */ ++ if (ioctl(fd, BLKSSZGET, &lbs)) { ++ stack; ++ lbs = 0; ++ } ++ ++ dev->physical_block_size = pbs; ++ dev->logical_block_size = lbs; ++ ++ *physical_block_size = pbs; ++ *logical_block_size = lbs; ++ ++ if (do_close && !dev_close_immediate(dev)) ++ stack; ++ ++ return 1; ++} ++ + /*----------------------------------------------------------------- + * Public functions + *---------------------------------------------------------------*/ +diff --git a/lib/device/device.h b/lib/device/device.h +index 30e1e79b3..bb65f841d 100644 +--- a/lib/device/device.h ++++ b/lib/device/device.h +@@ -67,8 +67,10 @@ struct device { + /* private */ + int fd; + int open_count; +- int phys_block_size; +- int block_size; ++ int phys_block_size; /* From either BLKPBSZGET or BLKSSZGET, don't use */ ++ int block_size; /* From BLKBSZGET, returns bdev->bd_block_size, likely set by fs, probably don't use */ ++ int physical_block_size; /* From BLKPBSZGET: lowest possible sector size that the hardware can operate on without reverting to read-modify-write operations */ ++ int logical_block_size; /* From BLKSSZGET: lowest possible block size that the storage device can address */ + int read_ahead; + int bcache_fd; + uint32_t flags; +@@ -132,6 +134,8 @@ void dev_size_seqno_inc(void); + * All io should use these routines. + */ + int dev_get_block_size(struct device *dev, unsigned int *phys_block_size, unsigned int *block_size); ++int dev_get_direct_block_sizes(struct device *dev, unsigned int *physical_block_size, ++ unsigned int *logical_block_size); + int dev_get_size(struct device *dev, uint64_t *size); + int dev_get_read_ahead(struct device *dev, uint32_t *read_ahead); + int dev_discard_blocks(struct device *dev, uint64_t offset_bytes, uint64_t size_bytes); +diff --git a/lib/label/label.c b/lib/label/label.c +index fb7ad1d56..5d8a0f51b 100644 +--- a/lib/label/label.c ++++ b/lib/label/label.c +@@ -1495,16 +1495,34 @@ bool dev_set_bytes(struct device *dev, uint64_t start, size_t len, uint8_t val) + + void dev_set_last_byte(struct device *dev, uint64_t offset) + { +- unsigned int phys_block_size = 0; +- unsigned int block_size = 0; ++ unsigned int physical_block_size = 0; ++ unsigned int logical_block_size = 0; ++ unsigned int bs; + +- if (!dev_get_block_size(dev, &phys_block_size, &block_size)) { ++ if (!dev_get_direct_block_sizes(dev, &physical_block_size, &logical_block_size)) { + stack; +- /* FIXME ASSERT or regular error testing is missing */ +- return; ++ return; /* FIXME: error path ? */ ++ } ++ ++ if ((physical_block_size == 512) && (logical_block_size == 512)) ++ bs = 512; ++ else if ((physical_block_size == 4096) && (logical_block_size == 4096)) ++ bs = 4096; ++ else if ((physical_block_size == 512) || (logical_block_size == 512)) { ++ log_debug("Set last byte mixed block sizes physical %u logical %u using 512", ++ physical_block_size, logical_block_size); ++ bs = 512; ++ } else if ((physical_block_size == 4096) || (logical_block_size == 4096)) { ++ log_debug("Set last byte mixed block sizes physical %u logical %u using 4096", ++ physical_block_size, logical_block_size); ++ bs = 4096; ++ } else { ++ log_debug("Set last byte mixed block sizes physical %u logical %u using 512", ++ physical_block_size, logical_block_size); ++ bs = 512; + } + +- bcache_set_last_byte(scan_bcache, dev->bcache_fd, offset, phys_block_size); ++ bcache_set_last_byte(scan_bcache, dev->bcache_fd, offset, bs); + } + + void dev_unset_last_byte(struct device *dev) +-- +2.12.3 + diff --git a/bug-1149408_vgcreate-vgextend-restrict-PVs-with-mixed-block-size.patch b/bug-1149408_vgcreate-vgextend-restrict-PVs-with-mixed-block-size.patch new file mode 100644 index 0000000..37d0aa7 --- /dev/null +++ b/bug-1149408_vgcreate-vgextend-restrict-PVs-with-mixed-block-size.patch @@ -0,0 +1,223 @@ +From 0404539edb25e4a9d3456bb3e6b402aa2767af6b Mon Sep 17 00:00:00 2001 +From: David Teigland +Date: Thu, 1 Aug 2019 10:06:47 -0500 +Subject: [PATCH] vgcreate/vgextend: restrict PVs with mixed block sizes + +Avoid having PVs with different logical block sizes in the same VG. +This prevents LVs from having mixed block sizes, which can produce +file system errors. + +The new config setting devices/allow_mixed_block_sizes (default 0) +can be changed to 1 to return to the unrestricted mode. +--- + lib/commands/toolcontext.h | 1 + + lib/config/config_settings.h | 5 ++++ + lib/metadata/metadata-exported.h | 1 + + lib/metadata/metadata.c | 44 ++++++++++++++++++++++++++++++ + tools/lvmcmdline.c | 2 ++ + tools/toollib.c | 47 ++++++++++++++++++++++++++++++++ + tools/vgcreate.c | 2 ++ + 7 files changed, 102 insertions(+) + +diff --git a/lib/commands/toolcontext.h b/lib/commands/toolcontext.h +index 488752c8f..655d9f297 100644 +--- a/lib/commands/toolcontext.h ++++ b/lib/commands/toolcontext.h +@@ -153,6 +153,7 @@ struct cmd_context { + unsigned include_shared_vgs:1; /* report/display cmds can reveal lockd VGs */ + unsigned include_active_foreign_vgs:1; /* cmd should process foreign VGs with active LVs */ + unsigned vg_read_print_access_error:1; /* print access errors from vg_read */ ++ unsigned allow_mixed_block_sizes:1; + unsigned force_access_clustered:1; + unsigned lockd_gl_disable:1; + unsigned lockd_vg_disable:1; +diff --git a/lib/config/config_settings.h b/lib/config/config_settings.h +index 527d5bd07..edfe4a31a 100644 +--- a/lib/config/config_settings.h ++++ b/lib/config/config_settings.h +@@ -502,6 +502,11 @@ cfg(devices_allow_changes_with_duplicate_pvs_CFG, "allow_changes_with_duplicate_ + "Enabling this setting allows the VG to be used as usual even with\n" + "uncertain devices.\n") + ++cfg(devices_allow_mixed_block_sizes_CFG, "allow_mixed_block_sizes", devices_CFG_SECTION, 0, CFG_TYPE_BOOL, 0, vsn(2, 3, 6), NULL, 0, NULL, ++ "Allow PVs in the same VG with different logical block sizes.\n" ++ "When allowed, the user is responsible to ensure that an LV is\n" ++ "using PVs with matching block sizes when necessary.\n") ++ + cfg_array(allocation_cling_tag_list_CFG, "cling_tag_list", allocation_CFG_SECTION, CFG_DEFAULT_UNDEFINED, CFG_TYPE_STRING, NULL, vsn(2, 2, 77), NULL, 0, NULL, + "Advise LVM which PVs to use when searching for new space.\n" + "When searching for free space to extend an LV, the 'cling' allocation\n" +diff --git a/lib/metadata/metadata-exported.h b/lib/metadata/metadata-exported.h +index f18587a73..e1767b78d 100644 +--- a/lib/metadata/metadata-exported.h ++++ b/lib/metadata/metadata-exported.h +@@ -623,6 +623,7 @@ struct pvcreate_params { + unsigned is_remove : 1; /* is removing PVs, not creating */ + unsigned preserve_existing : 1; + unsigned check_failed : 1; ++ unsigned check_consistent_block_size : 1; + }; + + struct lvresize_params { +diff --git a/lib/metadata/metadata.c b/lib/metadata/metadata.c +index f19df3d1d..e55adc212 100644 +--- a/lib/metadata/metadata.c ++++ b/lib/metadata/metadata.c +@@ -751,12 +751,40 @@ int vg_extend_each_pv(struct volume_group *vg, struct pvcreate_params *pp) + { + struct pv_list *pvl; + unsigned int max_phys_block_size = 0; ++ unsigned int physical_block_size, logical_block_size; ++ unsigned int prev_lbs = 0; ++ int inconsistent_existing_lbs = 0; + + log_debug_metadata("Adding PVs to VG %s.", vg->name); + + if (vg_bad_status_bits(vg, RESIZEABLE_VG)) + return_0; + ++ /* ++ * Check if existing PVs have inconsistent block sizes. ++ * If so, do not enforce new devices to be consistent. ++ */ ++ dm_list_iterate_items(pvl, &vg->pvs) { ++ logical_block_size = 0; ++ physical_block_size = 0; ++ ++ if (!dev_get_direct_block_sizes(pvl->pv->dev, &physical_block_size, &logical_block_size)) ++ continue; ++ ++ if (!logical_block_size) ++ continue; ++ ++ if (!prev_lbs) { ++ prev_lbs = logical_block_size; ++ continue; ++ } ++ ++ if (prev_lbs != logical_block_size) { ++ inconsistent_existing_lbs = 1; ++ break; ++ } ++ } ++ + dm_list_iterate_items(pvl, &pp->pvs) { + log_debug_metadata("Adding PV %s to VG %s.", pv_dev_name(pvl->pv), vg->name); + +@@ -767,6 +795,22 @@ int vg_extend_each_pv(struct volume_group *vg, struct pvcreate_params *pp) + return 0; + } + ++ logical_block_size = 0; ++ physical_block_size = 0; ++ ++ if (!dev_get_direct_block_sizes(pvl->pv->dev, &physical_block_size, &logical_block_size)) ++ log_warn("WARNING: PV %s has unknown block size.", pv_dev_name(pvl->pv)); ++ ++ else if (prev_lbs && logical_block_size && (logical_block_size != prev_lbs)) { ++ if (vg->cmd->allow_mixed_block_sizes || inconsistent_existing_lbs) ++ log_debug("Devices have inconsistent block sizes (%u and %u)", prev_lbs, logical_block_size); ++ else { ++ log_error("Devices have inconsistent logical block sizes (%u and %u).", ++ prev_lbs, logical_block_size); ++ return 0; ++ } ++ } ++ + if (!add_pv_to_vg(vg, pv_dev_name(pvl->pv), pvl->pv, 0)) { + log_error("PV %s cannot be added to VG %s.", + pv_dev_name(pvl->pv), vg->name); +diff --git a/tools/lvmcmdline.c b/tools/lvmcmdline.c +index 30f9d8133..7d29b6fab 100644 +--- a/tools/lvmcmdline.c ++++ b/tools/lvmcmdline.c +@@ -2319,6 +2319,8 @@ static int _get_current_settings(struct cmd_context *cmd) + + cmd->scan_lvs = find_config_tree_bool(cmd, devices_scan_lvs_CFG, NULL); + ++ cmd->allow_mixed_block_sizes = find_config_tree_bool(cmd, devices_allow_mixed_block_sizes_CFG, NULL); ++ + /* + * enable_hints is set to 1 if any commands are using hints. + * use_hints is set to 1 if this command doesn't use the hints. +diff --git a/tools/toollib.c b/tools/toollib.c +index b2313f8ff..155528c4e 100644 +--- a/tools/toollib.c ++++ b/tools/toollib.c +@@ -5355,6 +5355,8 @@ int pvcreate_each_device(struct cmd_context *cmd, + struct pv_list *vgpvl; + struct device_list *devl; + const char *pv_name; ++ unsigned int physical_block_size, logical_block_size; ++ unsigned int prev_pbs = 0, prev_lbs = 0; + int must_use_all = (cmd->cname->flags & MUST_USE_ALL_ARGS); + int found; + unsigned i; +@@ -5394,6 +5396,51 @@ int pvcreate_each_device(struct cmd_context *cmd, + dm_list_iterate_items(pd, &pp->arg_devices) + pd->dev = dev_cache_get(cmd, pd->name, cmd->filter); + ++ /* ++ * Check for consistent block sizes. ++ */ ++ if (pp->check_consistent_block_size) { ++ dm_list_iterate_items(pd, &pp->arg_devices) { ++ if (!pd->dev) ++ continue; ++ ++ logical_block_size = 0; ++ physical_block_size = 0; ++ ++ if (!dev_get_direct_block_sizes(pd->dev, &physical_block_size, &logical_block_size)) { ++ log_warn("WARNING: Unknown block size for device %s.", dev_name(pd->dev)); ++ continue; ++ } ++ ++ if (!logical_block_size) { ++ log_warn("WARNING: Unknown logical_block_size for device %s.", dev_name(pd->dev)); ++ continue; ++ } ++ ++ if (!prev_lbs) { ++ prev_lbs = logical_block_size; ++ prev_pbs = physical_block_size; ++ continue; ++ } ++ ++ if (prev_lbs == logical_block_size) { ++ /* Require lbs to match, just warn about unmatching pbs. */ ++ if (!cmd->allow_mixed_block_sizes && prev_pbs && physical_block_size && ++ (prev_pbs != physical_block_size)) ++ log_warn("WARNING: Devices have inconsistent physical block sizes (%u and %u).", ++ prev_pbs, physical_block_size); ++ continue; ++ } ++ ++ if (!cmd->allow_mixed_block_sizes) { ++ log_error("Devices have inconsistent logical block sizes (%u and %u).", ++ prev_lbs, logical_block_size); ++ log_print("See lvm.conf allow_mixed_block_sizes."); ++ return 0; ++ } ++ } ++ } ++ + /* + * Use process_each_pv to search all existing PVs and devices. + * +diff --git a/tools/vgcreate.c b/tools/vgcreate.c +index d594ec110..09b6a6c95 100644 +--- a/tools/vgcreate.c ++++ b/tools/vgcreate.c +@@ -47,6 +47,8 @@ int vgcreate(struct cmd_context *cmd, int argc, char **argv) + /* Don't create a new PV on top of an existing PV like pvcreate does. */ + pp.preserve_existing = 1; + ++ pp.check_consistent_block_size = 1; ++ + if (!vgcreate_params_set_defaults(cmd, &vp_def, NULL)) + return EINVALID_CMD_LINE; + vp_def.vg_name = vg_name; +-- +2.21.0 + diff --git a/lvm.conf b/lvm.conf index 991fe1a..0503ef1 100644 --- a/lvm.conf +++ b/lvm.conf @@ -292,6 +292,12 @@ devices { # Enabling this setting allows the VG to be used as usual even with # uncertain devices. allow_changes_with_duplicate_pvs = 0 + + # Configuration option devices/allow_mixed_block_sizes. + # Allow PVs in the same VG with different logical block sizes. + # When allowed, the user is responsible to ensure that an LV is + # using PVs with matching block sizes when necessary. + allow_mixed_block_sizes = 0 } # Configuration section allocation. diff --git a/lvm2.changes b/lvm2.changes index c7bd0fd..74c4dd6 100644 --- a/lvm2.changes +++ b/lvm2.changes @@ -1,3 +1,12 @@ +------------------------------------------------------------------- +Mon Sep 9 11:00:25 UTC 2019 - ghe@suse.com + +- Avoid creation of mixed-blocksize PV on LVM volume groups (bsc#1149408) + + bug-1149408_Fix-rounding-writes-up-to-sector-size.patch + + bug-1149408_vgcreate-vgextend-restrict-PVs-with-mixed-block-size.patch +- Update lvm.conf files + - add devices/allow_mixed_block_sizes item + ------------------------------------------------------------------- Mon Sep 02 11:21:03 UTC 2019 - heming.zhao@suse.com diff --git a/lvm2.spec b/lvm2.spec index 55e7a21..ac9f5c7 100644 --- a/lvm2.spec +++ b/lvm2.spec @@ -58,6 +58,8 @@ Source99: baselibs.conf %endif # Upstream patches Patch0001: bug-1122666_devices-drop-open-error-message.patch +Patch0002: bug-1149408_Fix-rounding-writes-up-to-sector-size.patch +Patch0003: bug-1149408_vgcreate-vgextend-restrict-PVs-with-mixed-block-size.patch # SUSE patches: 1000+ for LVM # Never upstream Patch1001: cmirrord_remove_date_time_from_compilation.patch @@ -113,6 +115,8 @@ Volume Manager. %prep %setup -q -n LVM2.%{version} %patch0001 -p1 +%patch0002 -p1 +%patch0003 -p1 %patch1001 -p1 %patch1002 -p1 %patch1003 -p1 From ba39016fb66f69e06b450f9ef825041aa0c23bad239b3810dd0d89d4f5a44fa3 Mon Sep 17 00:00:00 2001 From: Gang He Date: Tue, 10 Sep 2019 02:25:24 +0000 Subject: [PATCH 7/7] Accepting request 729598 from home:hmzhao:branches:Base:System update lvm2.spec to correct baselibs.conf mistake OBS-URL: https://build.opensuse.org/request/show/729598 OBS-URL: https://build.opensuse.org/package/show/Base:System/lvm2?expand=0&rev=252 --- lvm2.changes | 5 +++++ lvm2.spec | 2 -- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/lvm2.changes b/lvm2.changes index 74c4dd6..e36d3fe 100644 --- a/lvm2.changes +++ b/lvm2.changes @@ -1,3 +1,8 @@ +------------------------------------------------------------------- +Mon Sep 9 12:00:00 UTC 2019 - heming.zhao@suse.com + +- Update lvm2.spec: make baselibs.conf to a common source. + ------------------------------------------------------------------- Mon Sep 9 11:00:25 UTC 2019 - ghe@suse.com diff --git a/lvm2.spec b/lvm2.spec index ac9f5c7..2b26f89 100644 --- a/lvm2.spec +++ b/lvm2.spec @@ -53,9 +53,7 @@ URL: https://www.sourceware.org/lvm2/ Source: ftp://sources.redhat.com/pub/lvm2/LVM2.%{version}.tgz Source1: lvm.conf Source42: ftp://sources.redhat.com/pub/lvm2/LVM2.%{version}.tgz.asc -%if %{with devicemapper} Source99: baselibs.conf -%endif # Upstream patches Patch0001: bug-1122666_devices-drop-open-error-message.patch Patch0002: bug-1149408_Fix-rounding-writes-up-to-sector-size.patch