From: Anand Jain <Anand.Jain@oracle.com>
To: Christoph Hellwig <hch@infradead.org>
Cc: linux-fsdevel@vger.kernel.org, linux-btrfs@vger.kernel.org,
xfs@oss.sgi.com, Chris Mason <chris.mason@oracle.com>
Subject: [PATCH] Changes to received review comments
Date: Mon, 10 Oct 2011 17:58:47 +0800 [thread overview]
Message-ID: <4E92C1D7.2010301@oracle.com> (raw)
In-Reply-To: <20110902084941.GB29054@infradead.org>
Now SCRATCH_DEV is derived from SCRATCH_DEV_POOL.
Moved code to delete and scan block device to common.rc and
updated README.
Signed-off-by: Anand Jain <Anand.Jain@oracle.com>
---
259 | 29 ++++++++---------------------
README | 9 +++++++--
common.config | 14 ++++++++++++++
common.rc | 34 ++++++++++++++++++++++++++++++++--
4 files changed, 61 insertions(+), 25 deletions(-)
diff --git a/259 b/259
index 522191d..fe90147 100755
--- a/259
+++ b/259
@@ -46,24 +46,7 @@ _supported_fs btrfs
_supported_os Linux
_require_scratch
_require_scratch_dev_pool
-_require_proc_scsi
-
-# arg 1 remove/add
-# arg 2 /dev/sdx or return of devmgt resply
-_devmgt()
-{
- local x
- local d
-
- if [ $1 == "remove" ]; then
- d=`echo $2|cut -d"/" -f3`
- x=`ls -l /sys/class/block/${d} | cut -d "/" -f12 | sed 's/:/ /g'`
- echo "scsi remove-single-device ${x}" > /proc/scsi/scsi || _fail
"Remove disk failed"
- DEVHTL=${x}
- else
- echo "scsi add-single-device ${2}" > /proc/scsi/scsi || _fail "Add
disk failed"
- fi
-}
+_require_deletable_scratch_dev_pool
# Test cases related to raid in btrfs
_test_raid0()
@@ -128,10 +111,10 @@ _test_add()
_test_replace()
{
local i
- local x
local devs=( $SCRATCH_DEV_POOL )
local n=${#devs[@]}
local ds
+ local d
local DEVHTL=""
# exclude the last disk in the disk pool
@@ -146,8 +129,12 @@ _test_replace()
#pick the 2nd last disk
ds=${devs[@]:$(($n-1)):1}
+ # retrive the HTL for this scsi disk
+ d=`echo $ds|cut -d"/" -f3`
+ DEVHTL=`ls -l /sys/class/block/${d} | rev | cut -d "/" -f 3 | rev`
+
#fail disk
- _devmgt remove ${ds}
+ _devmgt_remove ${DEVHTL}
btrfs fi show $SCRATCH_DEV | grep "Some devices missing" > /dev/null
|| _fail \
"btrfs did not report device missing"
@@ -162,7 +149,7 @@ _test_replace()
# cleaup. add the removed disk
umount $SCRATCH_MNT
- _devmgt add "${DEVHTL}"
+ _devmgt_add "${DEVHTL}"
}
_test_remove()
diff --git a/README b/README
index 5367be6..407888a 100644
--- a/README
+++ b/README
@@ -34,14 +34,19 @@ Preparing system for tests (IRIX and Linux):
- leave empty and expect this partition to be clobbered
by some tests. If this is not provided, many tests will
not be run.
-
+
(these must be two DIFFERENT partitions)
+
+ - for btrfs only: some tests would need 3 or more independent
SCRATCH disks,
+ which should be setenv SCRATCH_DEV_POOL instead of SCRATCH_DEV
+
- setup your environment
- setenv TEST_DEV "device containing TEST PARTITION"
- setenv TEST_DIR "mount point of TEST PARTITION"
- optionally:
- setenv SCRATCH_DEV "device containing SCRATCH PARTITION"
+ - setenv SCRATCH_DEV_POOL "pool of SCRATCH disks for
testing btrfs"
- setenv SCRATCH_MNT "mount point for SCRATCH PARTITION"
- setenv TAPE_DEV "tape device for testing xfsdump"
- setenv RMT_TAPE_DEV "remote tape device for testing
xfsdump"
@@ -63,7 +68,7 @@ Preparing system for tests (IRIX and Linux):
tape which can be overwritten.
- make sure $TEST_DEV is a mounted XFS partition
- - make sure that $SCRATCH_DEV contains nothing useful
+ - make sure that $SCRATCH_DEV or $SCRATCH_DEV_POOL contains nothing
useful
Running tests:
diff --git a/common.config b/common.config
index 3642139..7ee255e 100644
--- a/common.config
+++ b/common.config
@@ -228,6 +228,20 @@ if [ ! -d "$TEST_DIR" ]; then
exit 1
fi
+# a btrfs tester will set only SCRATCH_DEV_POOL, we will put first of
its dev
+# to SCRATCH_DEV and rest to SCRATCH_DEV_POOL to maintain the backward
compatibility
+if [ "$HOSTOS" == "Linux" ]; then
+ FSTYP_tmp=`blkid -c /dev/null -s TYPE -o value $TEST_DEV`
+else
+ FSTYP_tmp=xfs
+fi
+if [ "$FSTYP_tmp" == "btrfs" ]; then
+ if [ ! -z "$SCRATCH_DEV_POOL" ]; then
+ SCRATCH_DEV=`echo $SCRATCH_DEV_POOL | cut -d" " -f 1`
+ SCRATCH_DEV_POOL=`echo $SCRATCH_DEV_POOL | cut -d" " -f 2-`
+ fi
+fi
+
echo $SCRATCH_DEV | grep -q ":" > /dev/null 2>&1
if [ ! -z "$SCRATCH_DEV" -a ! -b "$SCRATCH_DEV" -a "$?" != "0" ]; then
echo "common.config: Error: \$SCRATCH_DEV ($SCRATCH_DEV) is not a
block device or a NFS filesystem"
diff --git a/common.rc b/common.rc
index 02dde11..a614090 100644
--- a/common.rc
+++ b/common.rc
@@ -1609,9 +1609,19 @@ _require_scratch_dev_pool()
esac
}
-_require_proc_scsi()
+# We will check if the device is virtual (eg: loop device) since it
does not
+# have the delete entry-point. Otherwise SCSI and USB devices are fine.
+_require_deletable_scratch_dev_pool()
{
- [ -e /proc/scsi/scsi ] || _notrun "/proc/scsi/scsi is not present"
+ local i
+ local x
+ for i in $SCRATCH_DEV_POOL; do
+ x=`echo $i | cut -d"/" -f 3`
+ ls -l /sys/class/block/${x} | grep -q "virtual"
+ if [ $? == "0" ]; then
+ _notrun "$i is a virtual device which is not deletable"
+ fi
+ done
}
# Generate Random number in a range
@@ -1659,6 +1669,26 @@ _fillfs()
wait $!
}
+# arg 1 is dev to remove and is output of the below eg.
+# ls -l /sys/class/block/sdd | rev | cut -d "/" -f 3 | rev
+_devmgt_remove()
+{
+ echo 1 > /sys/class/scsi_device/${1}/device/delete || _fail "Remove
disk failed"
+}
+
+# arg 1 is dev to add and is output of the below eg.
+# ls -l /sys/class/block/sdd | rev | cut -d "/" -f 3 | rev
+_devmgt_add()
+{
+ local h
+ local tdl
+ # arg 1 will be in h:t:d:l format now in the h and "t d l" format
+ h=`echo ${1} | cut -d":" -f 1`
+ tdl=`echo ${1} | cut -d":" -f 2-|sed 's/:/ /g'`
+
+ echo ${tdl} > /sys/class/scsi_host/host${h}/scan || _fail "Add disk
failed"
+}
+
################################################################################
if [ "$iam" != new -a "$iam" != bench ]
then
--
1.7.1
next prev parent reply other threads:[~2011-10-10 9:58 UTC|newest]
Thread overview: 48+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-08-05 7:59 [PATCH] snapshot, defragment and raid test cases for btrfs Anand Jain
2011-08-05 13:53 ` Amir Goldstein
2011-08-05 15:40 ` Greg Freemyer
2011-08-05 21:42 ` Greg Freemyer
2011-08-06 14:06 ` Dave Chinner
2011-08-11 19:52 ` Anand Jain
2011-08-11 20:01 ` [PATCH 1/3] Added test case 257 for btrfs extended snapshot tests Anand Jain
2011-08-15 7:52 ` [PATCH v2 " Anand Jain
2011-09-02 8:45 ` [PATCH " Christoph Hellwig
2011-08-11 20:01 ` [PATCH 2/3] Added test case 258 for btrfs defragmentation Anand Jain
2011-08-11 20:01 ` [PATCH 3/3] Added test case 259 for the btrfs raid features Anand Jain
2011-09-02 8:49 ` Christoph Hellwig
2011-10-03 11:25 ` Anand Jain
2011-10-10 9:58 ` Anand Jain [this message]
2011-10-10 11:21 ` [PATCH] Changes to received review comments Christoph Hellwig
2011-10-11 11:25 ` Anand Jain
2011-10-11 11:26 ` [PATCH 1/3] 263: Functional test case for the btrfs snapshot Anand Jain
2011-10-11 11:38 ` David Sterba
2011-10-11 11:42 ` Christoph Hellwig
2011-10-11 11:47 ` David Sterba
2011-10-11 11:27 ` [PATCH 2/3] 264: Functional test case for the btrfs de-fragmentation Anand Jain
2011-10-11 11:28 ` [PATCH 3/3] 265: Functional test case for the btrfs raid operations Anand Jain
2011-10-12 4:52 ` [PATCH 0/3] xfstest patch Anand Jain
2011-10-12 4:52 ` [PATCH 1/3] 263: Functional test case for the btrfs snapshot Anand Jain
2011-10-13 0:56 ` Dave Chinner
2011-10-18 6:28 ` [PATCH 0/3] xfstests patches Anand Jain
2011-10-18 6:28 ` [PATCH 1/3] 264: Functional test case for the btrfs snapshot Anand Jain
2011-10-19 9:42 ` Christoph Hellwig
2011-10-20 15:31 ` Anand Jain
2011-10-18 6:28 ` [PATCH 2/3] 265: Functional test case for the btrfs de-fragmentation Anand Jain
2011-10-19 9:43 ` Christoph Hellwig
2011-10-20 15:32 ` Anand Jain
2011-10-18 6:28 ` [PATCH 3/3] 266: Functional test case for the btrfs raid operations Anand Jain
2011-10-19 9:45 ` Christoph Hellwig
2011-10-20 15:32 ` Anand Jain
2011-10-20 15:41 ` [PATCH 0/5] xfstests enhancement and bug fix Anand Jain
2011-10-20 15:41 ` [PATCH 1/5] fill files with random data Anand Jain
2011-10-25 11:35 ` Christoph Hellwig
2011-10-20 15:41 ` [PATCH 2/5] Added SCRATCH_DEV_POOL to specify multiple disks for the btrfs RAID Anand Jain
2011-10-25 11:36 ` Christoph Hellwig
2011-10-20 15:41 ` [PATCH 3/5] 264: Functional test case for the btrfs snapshot Anand Jain
2011-10-25 11:36 ` Christoph Hellwig
2011-10-20 15:41 ` [PATCH 4/5] 265: Functional test case for the btrfs raid operations Anand Jain
2011-10-25 11:37 ` Christoph Hellwig
2011-10-20 15:41 ` [PATCH 5/5] _populate_fs should use OPTIND when getopts is used Anand Jain
2011-10-25 11:37 ` Christoph Hellwig
2011-10-12 4:52 ` [PATCH 2/3] 264: Functional test case for the btrfs de-fragmentation Anand Jain
2011-10-12 4:52 ` [PATCH 3/3] 265: Functional test case for the btrfs raid operations Anand Jain
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4E92C1D7.2010301@oracle.com \
--to=anand.jain@oracle.com \
--cc=chris.mason@oracle.com \
--cc=hch@infradead.org \
--cc=linux-btrfs@vger.kernel.org \
--cc=linux-fsdevel@vger.kernel.org \
--cc=xfs@oss.sgi.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).