2012-10-09 18:32:11 +04:00
#!/bin/sh
2013-02-02 15:48:52 +04:00
# Copyright (C) 2012-2013 Red Hat, Inc. All rights reserved.
2012-10-09 18:32:11 +04:00
#
# 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 support of thin discards
#
2014-06-06 19:40:04 +04:00
. lib/inittest
2012-10-09 18:32:11 +04:00
2015-05-09 02:59:18 +03:00
test -e LOCAL_LVMPOLLD && skip
2012-10-09 18:32:11 +04:00
#
# Main
#
2012-10-10 02:20:22 +04:00
aux have_thin 1 1 0 || skip
2012-10-09 18:32:11 +04:00
aux prepare_pvs 2 64
2012-10-10 21:00:46 +04:00
vgcreate $vg -s 64K $( cat DEVICES)
2012-10-09 18:32:11 +04:00
# Create named pool only
lvcreate -l1 --discards ignore -T $vg /pool
check lv_field $vg /pool discards "ignore"
lvcreate -l1 --discards nopassdown -T $vg /pool1
check lv_field $vg /pool1 discards "nopassdown"
lvcreate -l1 --discards passdown -T $vg /pool2
check lv_field $vg /pool2 discards "passdown"
lvchange --discards nopassdown $vg /pool2
2013-02-02 15:48:52 +04:00
lvcreate -V1M -n origin -T $vg /pool
lvcreate -s $vg /origin -n snap
# Cannot convert active nopassdown -> ignore
not lvchange --discards nopassdown $vg /pool
# Cannot convert active ignore -> passdown
2012-10-09 18:32:11 +04:00
not lvchange --discards passdown $vg /pool
2013-02-02 15:48:52 +04:00
# Cannot convert active nopassdown -> ignore
2012-10-09 18:32:11 +04:00
not lvchange --discards ignore $vg /pool1
2013-02-02 15:48:52 +04:00
# Deactivate pool only
2012-10-09 18:32:11 +04:00
lvchange -an $vg /pool $vg /pool1
2013-02-02 15:48:52 +04:00
# Cannot convert, since thin volumes are still active
not lvchange --discards passdown $vg /pool
# Deactive thin volumes
lvchange -an $vg /origin $vg /snap
2012-10-09 18:32:11 +04:00
lvchange --discards passdown $vg /pool
check lv_field $vg /pool discards "passdown"
2013-02-02 15:48:52 +04:00
2012-10-09 18:32:11 +04:00
lvchange --discards ignore $vg /pool1
check lv_field $vg /pool1 discards "ignore"
vgremove -ff $vg