hi,
On 10/27/2016 07:25 PM, Eryu Guan wrote:
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.f...@cn.fujitsu.com>
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 :)
Could you please give me your btrfs's kernel version?
When enabling btrfs compression run these 4 test cases, I often got
enospc error, it seems that you didn't run into enospc errors.
---
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 for review, I'll fix it in v4.
Regards,
Xiaoguang Wang
Thanks,
Eryu
--
To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in
the body of a message to majord...@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html