mirror of
git://sourceware.org/git/lvm2.git
synced 2025-03-10 16:58:47 +03:00
Disallow certain lvconvert operations that need to both allocate and free
extents, while physical volumes are specified. Fixes BZ 640051.
This commit is contained in:
parent
0bc382eae4
commit
a680e90fb0
21
test/t-lvconvert-twostep.sh
Normal file
21
test/t-lvconvert-twostep.sh
Normal file
@ -0,0 +1,21 @@
|
||||
#!/bin/bash
|
||||
# Copyright (C) 2010 Red Hat, Inc. All rights reserved.
|
||||
#
|
||||
# This copyrighted material is made available to anyone wishing to use,
|
||||
# modify, copy, or redistribute it subject to the terms and conditions
|
||||
# of the GNU General Public License v.2.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program; if not, write to the Free Software Foundation,
|
||||
# Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
|
||||
. ./test-utils.sh
|
||||
|
||||
aux prepare_vg 4
|
||||
lvcreate -m 1 --mirrorlog disk --ig -L 1 -n mirror $vg
|
||||
not lvconvert -m 2 --mirrorlog core $vg/mirror $dev3 2>&1 | tee errs
|
||||
grep "two steps" errs
|
||||
lvconvert -m 2 $vg/mirror $dev3
|
||||
lvconvert --mirrorlog core $vg/mirror
|
||||
not lvconvert -m 1 --mirrorlog disk $vg/mirror $dev3 2>&1 | tee errs
|
||||
grep "two steps" errs
|
@ -1345,6 +1345,15 @@ static int _lvconvert_mirrors(struct cmd_context *cmd,
|
||||
&new_mimage_count, &new_log_count))
|
||||
return 0;
|
||||
|
||||
if (((old_mimage_count < new_mimage_count && old_log_count > new_log_count) ||
|
||||
(old_mimage_count > new_mimage_count && old_log_count < new_log_count)) &&
|
||||
lp->pv_count) {
|
||||
log_error("Cannot both allocate and free extents when specifying physical"
|
||||
" volumes to use.");
|
||||
log_error("Please specify the operation in two steps.");
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* Nothing to do? (Probably finishing collapse.) */
|
||||
if ((old_mimage_count == new_mimage_count) &&
|
||||
(old_log_count == new_log_count) && !repair)
|
||||
|
Loading…
x
Reference in New Issue
Block a user