137550cf5a86c7ca7424a2a318dd64e550f13f5dfChris Dearman#!/bin/bash 21d1937abbf836db65aaa6806c5a3bfb7deb2ae43subrata_modak 31d1937abbf836db65aaa6806c5a3bfb7deb2ae43subrata_modak# 41d1937abbf836db65aaa6806c5a3bfb7deb2ae43subrata_modak# Copyright (c) International Business Machines Corp., 2005 51d1937abbf836db65aaa6806c5a3bfb7deb2ae43subrata_modak# Author: Avantika Mathur (mathurav@us.ibm.com) 61d1937abbf836db65aaa6806c5a3bfb7deb2ae43subrata_modak# 71d1937abbf836db65aaa6806c5a3bfb7deb2ae43subrata_modak# This library is free software; you can redistribute it and/or 81d1937abbf836db65aaa6806c5a3bfb7deb2ae43subrata_modak# modify it under the terms of the GNU Lesser General Public 91d1937abbf836db65aaa6806c5a3bfb7deb2ae43subrata_modak# License as published by the Free Software Foundation; either 101d1937abbf836db65aaa6806c5a3bfb7deb2ae43subrata_modak# version 2.1 of the License, or (at your option) any later version. 111d1937abbf836db65aaa6806c5a3bfb7deb2ae43subrata_modak# 121d1937abbf836db65aaa6806c5a3bfb7deb2ae43subrata_modak# This library is distributed in the hope that it will be useful, 131d1937abbf836db65aaa6806c5a3bfb7deb2ae43subrata_modak# but WITHOUT ANY WARRANTY; without even the implied warranty of 141d1937abbf836db65aaa6806c5a3bfb7deb2ae43subrata_modak# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 151d1937abbf836db65aaa6806c5a3bfb7deb2ae43subrata_modak# Lesser General Public License for more details. 161d1937abbf836db65aaa6806c5a3bfb7deb2ae43subrata_modak# 171d1937abbf836db65aaa6806c5a3bfb7deb2ae43subrata_modak# You should have received a copy of the GNU Lesser General Public 181d1937abbf836db65aaa6806c5a3bfb7deb2ae43subrata_modak# License along with this library; if not, write to the Free Software 191d1937abbf836db65aaa6806c5a3bfb7deb2ae43subrata_modak# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 201d1937abbf836db65aaa6806c5a3bfb7deb2ae43subrata_modak# 211d1937abbf836db65aaa6806c5a3bfb7deb2ae43subrata_modak 221d1937abbf836db65aaa6806c5a3bfb7deb2ae43subrata_modakSETS_DEFAULTS="${TCID=test20} ${TST_COUNT=1} ${TST_TOTAL=1}" 231d1937abbf836db65aaa6806c5a3bfb7deb2ae43subrata_modakdeclare -r TCID 241d1937abbf836db65aaa6806c5a3bfb7deb2ae43subrata_modakdeclare -r TST_COUNT 251d1937abbf836db65aaa6806c5a3bfb7deb2ae43subrata_modakdeclare -r TST_TOTAL 261d1937abbf836db65aaa6806c5a3bfb7deb2ae43subrata_modakexport TCID TST_COUNT TST_TOTAL 271d1937abbf836db65aaa6806c5a3bfb7deb2ae43subrata_modak 281d1937abbf836db65aaa6806c5a3bfb7deb2ae43subrata_modaktst_resm TINFO "***************TEST20***************" 291d1937abbf836db65aaa6806c5a3bfb7deb2ae43subrata_modaktst_resm TINFO "bind: shared subtree with shared child to uncloneable subtree." 301d1937abbf836db65aaa6806c5a3bfb7deb2ae43subrata_modaktst_resm TINFO "************************************" 311d1937abbf836db65aaa6806c5a3bfb7deb2ae43subrata_modak 321d1937abbf836db65aaa6806c5a3bfb7deb2ae43subrata_modak. "${FS_BIND_ROOT}/bin/setup" || (tst_resm TWARN "Setup of bind/test20 failed" && tst_exit) 331d1937abbf836db65aaa6806c5a3bfb7deb2ae43subrata_modakexport result=0 341d1937abbf836db65aaa6806c5a3bfb7deb2ae43subrata_modak 351d1937abbf836db65aaa6806c5a3bfb7deb2ae43subrata_modak 361d1937abbf836db65aaa6806c5a3bfb7deb2ae43subrata_modak 371d1937abbf836db65aaa6806c5a3bfb7deb2ae43subrata_modaktrap 'ERR=$? ; ERR_MSG="caught error near: ${BASH_SOURCE[0]}:${FUNCNAME[0]}:${LINENO}:$_ (returned ${ERR})"; break' ERR 381d1937abbf836db65aaa6806c5a3bfb7deb2ae43subrata_modak 391d1937abbf836db65aaa6806c5a3bfb7deb2ae43subrata_modakwhile /bin/true ; do 401d1937abbf836db65aaa6806c5a3bfb7deb2ae43subrata_modak # This loop is for error recovery purposes only 411d1937abbf836db65aaa6806c5a3bfb7deb2ae43subrata_modak 4237550cf5a86c7ca7424a2a318dd64e550f13f5dfChris Dearman 4337550cf5a86c7ca7424a2a318dd64e550f13f5dfChris Dearman 441d1937abbf836db65aaa6806c5a3bfb7deb2ae43subrata_modak "${FS_BIND_ROOT}/bin/makedir" share parent1 451d1937abbf836db65aaa6806c5a3bfb7deb2ae43subrata_modak "${FS_BIND_ROOT}/bin/makedir" unclone parent2 461d1937abbf836db65aaa6806c5a3bfb7deb2ae43subrata_modak "${FS_BIND_ROOT}/bin/makedir" share share1 4737550cf5a86c7ca7424a2a318dd64e550f13f5dfChris Dearman 481d1937abbf836db65aaa6806c5a3bfb7deb2ae43subrata_modak mount --bind "$disk1" share1 491d1937abbf836db65aaa6806c5a3bfb7deb2ae43subrata_modak mount --bind share1 parent1 5037550cf5a86c7ca7424a2a318dd64e550f13f5dfChris Dearman 5137550cf5a86c7ca7424a2a318dd64e550f13f5dfChris Dearman mount --bind parent1 parent2 521d1937abbf836db65aaa6806c5a3bfb7deb2ae43subrata_modak "${FS_BIND_ROOT}/bin/makedir" share parent1/child1 5337550cf5a86c7ca7424a2a318dd64e550f13f5dfChris Dearman 541d1937abbf836db65aaa6806c5a3bfb7deb2ae43subrata_modak check parent1 share1 parent2 551d1937abbf836db65aaa6806c5a3bfb7deb2ae43subrata_modak mount --bind "$disk2" parent1/child1 561d1937abbf836db65aaa6806c5a3bfb7deb2ae43subrata_modak check parent1/child1 parent2/child1 571d1937abbf836db65aaa6806c5a3bfb7deb2ae43subrata_modak check parent1/child1 share1/child1 581d1937abbf836db65aaa6806c5a3bfb7deb2ae43subrata_modak mount --bind "$disk3" parent2/a 5937550cf5a86c7ca7424a2a318dd64e550f13f5dfChris Dearman 601d1937abbf836db65aaa6806c5a3bfb7deb2ae43subrata_modak check parent1/a parent2/a share1/a 6137550cf5a86c7ca7424a2a318dd64e550f13f5dfChris Dearman 621d1937abbf836db65aaa6806c5a3bfb7deb2ae43subrata_modak mount --bind "$disk4" share1/b 6337550cf5a86c7ca7424a2a318dd64e550f13f5dfChris Dearman 641d1937abbf836db65aaa6806c5a3bfb7deb2ae43subrata_modak check parent1/b parent2/b share1/b 6537550cf5a86c7ca7424a2a318dd64e550f13f5dfChris Dearman 661d1937abbf836db65aaa6806c5a3bfb7deb2ae43subrata_modak break 671d1937abbf836db65aaa6806c5a3bfb7deb2ae43subrata_modakdone 681d1937abbf836db65aaa6806c5a3bfb7deb2ae43subrata_modaktrap 'ERR=$? ; tst_resm TWARN "bind/test20: caught error near: ${BASH_SOURCE[0]}:${FUNCNAME[0]}:${LINENO}:$_ (returned ${ERR})"' ERR 691d1937abbf836db65aaa6806c5a3bfb7deb2ae43subrata_modakif [ -n "${ERR_MSG}" ]; then 701d1937abbf836db65aaa6806c5a3bfb7deb2ae43subrata_modak tst_resm TWARN "bind/test20: ${ERR_MSG}" 711d1937abbf836db65aaa6806c5a3bfb7deb2ae43subrata_modak ERR_MSG="" 721d1937abbf836db65aaa6806c5a3bfb7deb2ae43subrata_modak result=$ERR 731d1937abbf836db65aaa6806c5a3bfb7deb2ae43subrata_modakfi 741d1937abbf836db65aaa6806c5a3bfb7deb2ae43subrata_modaktrap '' ERR 751d1937abbf836db65aaa6806c5a3bfb7deb2ae43subrata_modak{ 761d1937abbf836db65aaa6806c5a3bfb7deb2ae43subrata_modak umount share1/b 771d1937abbf836db65aaa6806c5a3bfb7deb2ae43subrata_modak umount parent2/a 781d1937abbf836db65aaa6806c5a3bfb7deb2ae43subrata_modak umount parent1/child1 791d1937abbf836db65aaa6806c5a3bfb7deb2ae43subrata_modak umount parent1/child1 801d1937abbf836db65aaa6806c5a3bfb7deb2ae43subrata_modak umount parent2 811d1937abbf836db65aaa6806c5a3bfb7deb2ae43subrata_modak umount parent1 821d1937abbf836db65aaa6806c5a3bfb7deb2ae43subrata_modak umount share1 831d1937abbf836db65aaa6806c5a3bfb7deb2ae43subrata_modak umount parent2 841d1937abbf836db65aaa6806c5a3bfb7deb2ae43subrata_modak umount parent1 851d1937abbf836db65aaa6806c5a3bfb7deb2ae43subrata_modak umount share1 8637550cf5a86c7ca7424a2a318dd64e550f13f5dfChris Dearman 871d1937abbf836db65aaa6806c5a3bfb7deb2ae43subrata_modak rm -rf parent* share* 881d1937abbf836db65aaa6806c5a3bfb7deb2ae43subrata_modak cleanup 891d1937abbf836db65aaa6806c5a3bfb7deb2ae43subrata_modak} >& /dev/null 901d1937abbf836db65aaa6806c5a3bfb7deb2ae43subrata_modakif [ $result -ne 0 ] 911d1937abbf836db65aaa6806c5a3bfb7deb2ae43subrata_modakthen 921d1937abbf836db65aaa6806c5a3bfb7deb2ae43subrata_modak tst_resm TFAIL "bind/test20: FAILED: bind: shared subtree with shared child to uncloneable subtree." 931d1937abbf836db65aaa6806c5a3bfb7deb2ae43subrata_modak exit 1 941d1937abbf836db65aaa6806c5a3bfb7deb2ae43subrata_modakelse 951d1937abbf836db65aaa6806c5a3bfb7deb2ae43subrata_modak tst_resm TPASS "bind/test20: PASSED" 9637550cf5a86c7ca7424a2a318dd64e550f13f5dfChris Dearman exit 0 971d1937abbf836db65aaa6806c5a3bfb7deb2ae43subrata_modakfi 981d1937abbf836db65aaa6806c5a3bfb7deb2ae43subrata_modaktst_exit 99