On Wed, Oct 26, 2016 at 05:52:11PM +0800, Wang Xiaoguang wrote:
> When enabling btrfs compression, original codes can not fill fs
> correctly, here we introduce _fill_fs() in common/rc, which'll keep
> creating and writing files until enospc error occurs. Note _fill_fs
> is copied from tests/generic/256, but with some minor modifications.
>
> Signed-off-by: Wang Xiaoguang <wangxg.fnst@xxxxxxxxxxxxxx>
Looks fine to me overall, generic/17[1-4] and generic/256 passed on xfs,
btrfs and btrfs with compress. But I'd like Darrick to review it as well :)
> ---
> V2: In common/, I did't find an existing function suitable for
> these 4 test cases to fill fs, so I still use _pwrite_byte() with
> a big enough file length fo fill fs. Note, for btrfs, metadata space
> still is not full, only data space is full, but it's OK for these
> 4 test cases.
>
> All these 4 cases pass in xfs and btrfs(without compression), if
> btrfs has compression enabled, these 4 cases will fail for false
> enospc error, I have sent kernel patches to fix this bug.
>
> V3: Introduce _fill_fs in common/rc to fill fs.
> ---
> common/rc | 50 ++++++++++++++++++++++++++++++++++++++++++
> tests/generic/171 | 4 +---
> tests/generic/172 | 4 ++--
> tests/generic/173 | 4 +---
> tests/generic/174 | 4 +---
> tests/generic/256 | 65 +++++--------------------------------------------------
> 6 files changed, 60 insertions(+), 71 deletions(-)
>
> diff --git a/common/rc b/common/rc
> index 7a9fc90..0e1ac5d 100644
> --- a/common/rc
> +++ b/common/rc
> @@ -4003,6 +4003,56 @@ _require_xfs_mkfs_without_validation()
> fi
> }
>
> +# Fill a file system by repeatedly creating files in the given folder
> +# starting with the given file size. Files are reduced in size when
> +# they can no longer fit until no more files can be created.
> +_fill_fs()
> +{
> + local file_size=$1
> + local dir=$2
> + local block_size=$3
> + local switch_user=$4
> + local file_count=1
> + local bytes_written=0
> +
> + if [ $# -ne 4 ]; then
> + echo "Usage: _fill_fs filesize dir blocksize"
The usage info here is wrong, missing the "switch user" argument.
Thanks,
Eryu
--
To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html