1
0
mirror of git://sourceware.org/git/lvm2.git synced 2024-12-22 17:35:59 +03:00
lvm2/tools
Heinz Mauelshagen 74906dad60 raid: fix (de)activation of RaidLVs with visible SubLVs
There's a small window during creation of a new RaidLV when
rmeta SubLVs are made visible to wipe them in order to prevent
erroneous discovery of stale RAID metadata.  In case a crash
prevents the SubLVs from being committed hidden after such
wiping, the RaidLV can still be activated with the SubLVs visible.
During deactivation though, a deadlock occurs because the visible
SubLVs are deactivated before the RaidLV.

The patch adds _check_raid_sublvs to the raid validation in merge.c,
an activation check to activate.c (paranoid, because the merge.c check
will prevent activation in case of visible SubLVs) and shares the
existing wiping function _clear_lvs in raid_manip.c moved to lv_manip.c
and renamed to activate_and_wipe_lvlist to remove code duplication.
Whilst on it, introduce activate_and_wipe_lv to share with
(lvconvert|lvchange).c.

Resolves: rhbz1633167
2018-12-12 16:26:55 +01:00
..
.exported_symbols generate liblvm2cmd exported symbols too 2010-06-25 18:23:10 +00:00
.gitignore tools: add generated headers to .gitignore 2017-03-10 13:13:41 +00:00
args.h remove unused backgroundfork option 2018-12-04 14:33:36 -06:00
cmdnames.h doc: change fsf address 2016-01-21 12:11:37 +01:00
command-lines.in pvscan: background option is not used 2018-12-04 14:33:36 -06:00
command.c remove unneded check to skip filter init 2018-09-12 16:30:50 -05:00
command.h cleanup: fix some typos 2017-07-10 14:58:33 +02:00
commands.h remove unneded check to skip filter init 2018-09-12 16:30:50 -05:00
dumpconfig.c lvmconfig: Add options to produce file preamble 2017-08-05 16:23:34 +01:00
errors.h tools: Introduce exit code EINIT_FAILED. 2017-07-26 23:18:03 +01:00
formats.c doc: change fsf address 2016-01-21 12:11:37 +01:00
license.inc pre-release 2017-03-28 16:11:35 +01:00
lv_props.h commands: new method for defining commands 2017-02-13 08:20:10 -06:00
lv_types.h toollib: support new command rules queries 2018-07-09 15:28:35 +02:00
lvchange.c raid: fix (de)activation of RaidLVs with visible SubLVs 2018-12-12 16:26:55 +01:00
lvconvert_poll.c debug: more display_lvname usage 2017-06-27 08:28:36 +02:00
lvconvert_poll.h build: Don't generate symlinks in include/ dir 2018-05-14 10:30:20 +01:00
lvconvert.c raid: fix (de)activation of RaidLVs with visible SubLVs 2018-12-12 16:26:55 +01:00
lvcreate.c lvcreate: vdo support 2018-07-09 15:29:12 +02:00
lvdisplay.c process_each_lv: add check_single_lv function 2017-02-13 08:20:10 -06:00
lvextend.c doc: change fsf address 2016-01-21 12:11:37 +01:00
lvm2cmd-static.c build: Don't generate symlinks in include/ dir 2018-05-14 10:30:20 +01:00
lvm2cmd.c build: Don't generate symlinks in include/ dir 2018-05-14 10:30:20 +01:00
lvm2cmd.h tools: Introduce exit code EINIT_FAILED. 2017-07-26 23:18:03 +01:00
lvm2cmdline.h commands: fix memory debug for cmd defs 2017-05-01 15:27:14 -05:00
lvm-static.c doc: change fsf address 2016-01-21 12:11:37 +01:00
lvm.c debug: tracing error path 2017-06-27 00:27:36 +02:00
lvmcmdlib.c dmeventd: lvm vdo support 2018-07-09 15:29:16 +02:00
lvmcmdline.c remove unused backgroundfork option 2018-12-04 14:33:36 -06:00
lvmdiskscan.c remove unused full filter 2018-12-04 14:33:39 -06:00
lvpoll.c build: Don't generate symlinks in include/ dir 2018-05-14 10:30:20 +01:00
lvreduce.c doc: change fsf address 2016-01-21 12:11:37 +01:00
lvremove.c process_each_lv: add check_single_lv function 2017-02-13 08:20:10 -06:00
lvrename.c toollib: make it possible to also process internal VGs, add 'include_internal' switch to process_each_vg fn 2016-06-20 11:33:42 +02:00
lvresize.c lvresize: support passing --yes to fsadm 2017-06-21 14:03:29 +02:00
lvscan.c Remove lvmetad 2018-07-11 11:26:42 -05:00
Makefile.in makefiles: updates for less verbosity 2018-12-04 14:33:37 -06:00
polldaemon.c Remove lvmetad 2018-07-11 11:26:42 -05:00
pvchange.c lvmetad: two phase vg_update 2016-06-28 02:30:31 +01:00
pvck.c Add cmd arg to more functions 2018-06-15 11:03:55 -05:00
pvcreate.c Remove lvmetad 2018-07-11 11:26:42 -05:00
pvdisplay.c Remove lvmetad 2018-07-11 11:26:42 -05:00
pvmove_poll.c pvmove: move code from tools to lib 2017-12-01 12:18:32 +01:00
pvmove_poll.h doc: change fsf address 2016-01-21 12:11:37 +01:00
pvmove.c Remove unused clvm variations for active LVs 2018-06-07 16:17:04 +01:00
pvremove.c pvremove: skip lvmlockd locks for forced clearing 2018-05-30 09:25:45 -05:00
pvresize.c pvresize: update message 2018-06-08 14:36:59 +02:00
pvscan.c remove unused full filter 2018-12-04 14:33:39 -06:00
reporter.c remove unused full filter 2018-12-04 14:33:39 -06:00
segtypes.c doc: change fsf address 2016-01-21 12:11:37 +01:00
stub.h Remove vgconvert 2018-06-13 14:14:03 -05:00
tags.c doc: change fsf address 2016-01-21 12:11:37 +01:00
tool.h various: some missing #include zalloc.h 2018-06-08 14:18:09 +01:00
toollib.c remove unused full filter 2018-12-04 14:33:39 -06:00
toollib.h build: Don't generate symlinks in include/ dir 2018-05-14 10:30:20 +01:00
tools.h remove unneded check to skip filter init 2018-09-12 16:30:50 -05:00
vals.h Remove lvm1 and pool disk formats 2018-04-30 16:55:02 -05:00
vgcfgbackup.c device_mapper: remove dbg_malloc. 2018-06-08 13:40:53 +01:00
vgcfgrestore.c Remove lvmetad 2018-07-11 11:26:42 -05:00
vgchange.c lvmlockd: vgchange locktype with yes option 2018-12-04 14:33:37 -06:00
vgck.c Remove lvmetad 2018-07-11 11:26:42 -05:00
vgcreate.c Remove lvmetad 2018-07-11 11:26:42 -05:00
vgdisplay.c tidy: Add missing underscores to statics. 2017-10-18 15:58:13 +01:00
vgexport.c lvmlockd: primarily use vg_is_shared 2018-06-01 13:15:22 -05:00
vgextend.c filter: use bcache for filter reads 2018-05-10 16:03:19 -05:00
vgimport.c Remove lvmetad 2018-07-11 11:26:42 -05:00
vgimportclone.c Remove lvmetad 2018-07-11 11:26:42 -05:00
vgmerge.c Remove lvmetad 2018-07-11 11:26:42 -05:00
vgmknodes.c process_each_lv: add check_single_lv function 2017-02-13 08:20:10 -06:00
vgreduce.c Fix use of orphan lock in commands 2018-06-12 09:46:11 -05:00
vgremove.c Fix use of orphan lock in commands 2018-06-12 09:46:11 -05:00
vgrename.c Remove lvmetad 2018-07-11 11:26:42 -05:00
vgscan.c Remove lvmetad 2018-07-11 11:26:42 -05:00
vgsplit.c Remove lvmetad 2018-07-11 11:26:42 -05:00