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=test22} ${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 "***************TEST22***************"
291d1937abbf836db65aaa6806c5a3bfb7deb2ae43subrata_modaktst_resm TINFO "move: shared tree within a tree it is bound to - and then move to another share subtree"
301d1937abbf836db65aaa6806c5a3bfb7deb2ae43subrata_modaktst_resm TINFO "************************************"
311d1937abbf836db65aaa6806c5a3bfb7deb2ae43subrata_modak
321d1937abbf836db65aaa6806c5a3bfb7deb2ae43subrata_modak. "${FS_BIND_ROOT}/bin/setup" || (tst_resm TWARN "Setup of move/test22 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
431d1937abbf836db65aaa6806c5a3bfb7deb2ae43subrata_modak	"${FS_BIND_ROOT}/bin/makedir" share parent1
441d1937abbf836db65aaa6806c5a3bfb7deb2ae43subrata_modak	mkdir parent1/a parent2
451d1937abbf836db65aaa6806c5a3bfb7deb2ae43subrata_modak	mount --bind parent1 parent2
4637550cf5a86c7ca7424a2a318dd64e550f13f5dfChris Dearman
471d1937abbf836db65aaa6806c5a3bfb7deb2ae43subrata_modak	check parent1 parent2
4837550cf5a86c7ca7424a2a318dd64e550f13f5dfChris Dearman
491d1937abbf836db65aaa6806c5a3bfb7deb2ae43subrata_modak	mount --move parent1 parent2/a
5037550cf5a86c7ca7424a2a318dd64e550f13f5dfChris Dearman
511d1937abbf836db65aaa6806c5a3bfb7deb2ae43subrata_modak	check parent2 parent2/a parent2/a/a
5237550cf5a86c7ca7424a2a318dd64e550f13f5dfChris Dearman
531d1937abbf836db65aaa6806c5a3bfb7deb2ae43subrata_modak	"${FS_BIND_ROOT}/bin/makedir" share tmp1
541d1937abbf836db65aaa6806c5a3bfb7deb2ae43subrata_modak	mkdir tmp2 tmp1/1
5537550cf5a86c7ca7424a2a318dd64e550f13f5dfChris Dearman
561d1937abbf836db65aaa6806c5a3bfb7deb2ae43subrata_modak	mount --bind tmp1 tmp2
571d1937abbf836db65aaa6806c5a3bfb7deb2ae43subrata_modak	mount --move parent2  tmp1/1
5837550cf5a86c7ca7424a2a318dd64e550f13f5dfChris Dearman
591d1937abbf836db65aaa6806c5a3bfb7deb2ae43subrata_modak	break
601d1937abbf836db65aaa6806c5a3bfb7deb2ae43subrata_modakdone
611d1937abbf836db65aaa6806c5a3bfb7deb2ae43subrata_modaktrap 'ERR=$? ; tst_resm TWARN "move/test22: caught error near: ${BASH_SOURCE[0]}:${FUNCNAME[0]}:${LINENO}:$_ (returned ${ERR})"' ERR
621d1937abbf836db65aaa6806c5a3bfb7deb2ae43subrata_modakif [ -n "${ERR_MSG}" ]; then
631d1937abbf836db65aaa6806c5a3bfb7deb2ae43subrata_modak	tst_resm TWARN "move/test22: ${ERR_MSG}"
641d1937abbf836db65aaa6806c5a3bfb7deb2ae43subrata_modak	ERR_MSG=""
651d1937abbf836db65aaa6806c5a3bfb7deb2ae43subrata_modak	result=$ERR
661d1937abbf836db65aaa6806c5a3bfb7deb2ae43subrata_modakfi
671d1937abbf836db65aaa6806c5a3bfb7deb2ae43subrata_modaktrap '' ERR
681d1937abbf836db65aaa6806c5a3bfb7deb2ae43subrata_modak{
691d1937abbf836db65aaa6806c5a3bfb7deb2ae43subrata_modak	umount tmp1/1/a/a
701d1937abbf836db65aaa6806c5a3bfb7deb2ae43subrata_modak	umount tmp1/1/a
711d1937abbf836db65aaa6806c5a3bfb7deb2ae43subrata_modak	umount tmp1/1
721d1937abbf836db65aaa6806c5a3bfb7deb2ae43subrata_modak	umount tmp1
731d1937abbf836db65aaa6806c5a3bfb7deb2ae43subrata_modak	umount tmp1
741d1937abbf836db65aaa6806c5a3bfb7deb2ae43subrata_modak	umount tmp2
7537550cf5a86c7ca7424a2a318dd64e550f13f5dfChris Dearman
761d1937abbf836db65aaa6806c5a3bfb7deb2ae43subrata_modak	rm -rf dir parent* tmp1 tmp2
771d1937abbf836db65aaa6806c5a3bfb7deb2ae43subrata_modak	cleanup
781d1937abbf836db65aaa6806c5a3bfb7deb2ae43subrata_modak} >& /dev/null
791d1937abbf836db65aaa6806c5a3bfb7deb2ae43subrata_modakif [ $result -ne 0 ]
801d1937abbf836db65aaa6806c5a3bfb7deb2ae43subrata_modakthen
811d1937abbf836db65aaa6806c5a3bfb7deb2ae43subrata_modak	tst_resm TFAIL "move/test22: FAILED: move: shared tree within a tree it is bound to - and then move to another share subtree"
821d1937abbf836db65aaa6806c5a3bfb7deb2ae43subrata_modak	exit 1
831d1937abbf836db65aaa6806c5a3bfb7deb2ae43subrata_modakelse
841d1937abbf836db65aaa6806c5a3bfb7deb2ae43subrata_modak	tst_resm TPASS "move/test22: PASSED"
8537550cf5a86c7ca7424a2a318dd64e550f13f5dfChris Dearman	exit 0
861d1937abbf836db65aaa6806c5a3bfb7deb2ae43subrata_modakfi
871d1937abbf836db65aaa6806c5a3bfb7deb2ae43subrata_modaktst_exit
88