btrfs/150: add _scratch_dev_pool_get/put to run the test as expected
diff mbox

Message ID 80c576ca-2ca0-ff83-cd9e-9622e2ce28ce@jp.fujitsu.com
State New
Headers show

Commit Message

Misono Tomohiro Feb. 20, 2018, 5:34 a.m. UTC
btrfs/150 uses RAID1 profile and make SCRATCH_DEV fail for test.
However, if SCRATCH_DEV_POOL consists more than two devices, SCRATCH_DEV
may not be used for RAID1 pair and the tests may not run as expected.

Fix this by add _scratch_dev_pool_get/put like other tests (141, 143
etc.) do.

Signed-off-by: Tomohiro Misono <misono.tomohiro@jp.fujitsu.com>
---
 tests/btrfs/150 | 2 ++
 1 file changed, 2 insertions(+)

Comments

Qu Wenruo Feb. 20, 2018, 12:21 p.m. UTC | #1
On 2018年02月20日 13:34, Misono, Tomohiro wrote:
> btrfs/150 uses RAID1 profile and make SCRATCH_DEV fail for test.
> However, if SCRATCH_DEV_POOL consists more than two devices, SCRATCH_DEV
> may not be used for RAID1 pair and the tests may not run as expected.
> 
> Fix this by add _scratch_dev_pool_get/put like other tests (141, 143
> etc.) do.
> 
> Signed-off-by: Tomohiro Misono <misono.tomohiro@jp.fujitsu.com>

Indeed, if we have more devices, it's highly possible that the first
device doesn't have data stripe of the raid1 chunk on it.

(And under most case it won't have data stripe, since during mkfs we use
the first device to contain temporary chunks, so unallocated space of
devid 1 is smaller compared to other devices, and chunk allocator will
use device with more unallocated space)

Reviewed-by: Qu Wenruo <wqu@suse.com>

Thanks,
Qu

> ---
>  tests/btrfs/150 | 2 ++
>  1 file changed, 2 insertions(+)
> 
> diff --git a/tests/btrfs/150 b/tests/btrfs/150
> index 97041b6c..1e4586be 100755
> --- a/tests/btrfs/150
> +++ b/tests/btrfs/150
> @@ -55,6 +55,7 @@ _supported_os Linux
>  _require_scratch
>  _require_fail_make_request
>  _require_scratch_dev_pool 2
> +_scratch_dev_pool_get 2
>  
>  SYSFS_BDEV=`_sysfs_dev $SCRATCH_DEV`
>  enable_io_failure()
> @@ -100,6 +101,7 @@ while [[ -z $result ]]; do
>  	disable_io_failure
>  done
>  
> +_scratch_dev_pool_put
>  # success, all done
>  status=0
>  exit
>

Patch
diff mbox

diff --git a/tests/btrfs/150 b/tests/btrfs/150
index 97041b6c..1e4586be 100755
--- a/tests/btrfs/150
+++ b/tests/btrfs/150
@@ -55,6 +55,7 @@  _supported_os Linux
 _require_scratch
 _require_fail_make_request
 _require_scratch_dev_pool 2
+_scratch_dev_pool_get 2
 
 SYSFS_BDEV=`_sysfs_dev $SCRATCH_DEV`
 enable_io_failure()
@@ -100,6 +101,7 @@  while [[ -z $result ]]; do
 	disable_io_failure
 done
 
+_scratch_dev_pool_put
 # success, all done
 status=0
 exit