| #! /bin/bash |
| # SPDX-License-Identifier: GPL-2.0 |
| # Copyright (c) 2015 Red Hat, Inc. All Rights Reserved. |
| # |
| # FS QA Test No. generic/347 |
| # |
| # Test very basic thin device usage, exhaustion, and growth |
| # |
| # |
| . ./common/preamble |
| _begin_fstest auto quick rw thin |
| |
| BACKING_SIZE=$((500 * 1024 * 1024 / 512)) # 500M |
| VIRTUAL_SIZE=$((10 * $BACKING_SIZE)) # 5000M |
| GROW_SIZE=$((100 * 1024 * 1024 / 512)) # 100M |
| |
| # Override the default cleanup function. |
| _cleanup() |
| { |
| _dmthin_cleanup |
| rm -f $tmp.* |
| } |
| |
| _setup_thin() |
| { |
| _dmthin_init $BACKING_SIZE $VIRTUAL_SIZE |
| _dmthin_set_queue |
| _dmthin_mkfs |
| _dmthin_mount |
| } |
| |
| _workout() |
| { |
| # Overfill it by a bit |
| for I in `seq 1 500`; do |
| $XFS_IO_PROG -f -c "pwrite -W 0 1M" $SCRATCH_MNT/file$I &>/dev/null |
| done |
| |
| _scratch_sync |
| |
| _dmthin_grow $GROW_SIZE |
| |
| # Write a little more, but don't fill |
| for I in `seq 501 510`; do |
| $XFS_IO_PROG -f -c "pwrite 0 1M" $SCRATCH_MNT/file$I &>/dev/null |
| done |
| } |
| |
| # Import common functions. |
| . ./common/dmthin |
| |
| _require_scratch_nocheck |
| _require_dm_target thin-pool |
| |
| _setup_thin |
| _workout |
| _dmthin_check_fs |
| _dmthin_cleanup |
| |
| echo "=== completed" |
| |
| status=0 |
| exit |