From: Jan Kara Date: Mon, 21 Jan 2019 12:02:03 +0000 (+0100) Subject: loop: Add test for changing capacity when filesystem is mounted X-Git-Url: https://www.infradead.org/git/?a=commitdiff_plain;h=a58b9745fa4604b6aa9c2694dd25ddb39f46d0d8;p=users%2Fsagi%2Fblktests.git loop: Add test for changing capacity when filesystem is mounted Add test for changing capacity of a loop device when a filesystem with non-default block size is mounted on it. This is a regression test for "blockdev: Fix livelocks on loop device". Signed-off-by: Jan Kara Reviewed-by: Chaitanya Kulkarni [Omar: mount under $TMPDIR] Signed-off-by: Omar Sandoval --- diff --git a/tests/loop/007 b/tests/loop/007 new file mode 100755 index 0000000..861b6b3 --- /dev/null +++ b/tests/loop/007 @@ -0,0 +1,39 @@ +#!/bin/bash +# SPDX-License-Identifier: GPL-3.0+ +# Copyright (C) 2019 Jan Kara +# +# Test loop device capacity change handling with filesystem mounted on top. +# +# Regression test for commit 04906b2f542c "blockdev: Fix livelocks on loop +# device". +# + +. tests/loop/rc + +DESCRIPTION="update loop device capacity with filesystem" +QUICK=1 + +requires() { + _have_program mkfs.ext4 +} + +test() { + echo "Running ${TEST_NAME}" + + local mount_dir="$TMPDIR/mnt" + + truncate -s 1G "$TMPDIR/img" + mkdir -p "$mount_dir" + local loop_device + loop_device="$(losetup -P -f --show "$TMPDIR/img")" + mkfs.ext4 -b 1024 "$loop_device" &>/dev/null + mount -t ext4 "$loop_device" "$mount_dir" + losetup -c "$loop_device" + # This hangs if rereading capacity changed block size + ls -l "$mount_dir" >/dev/null + umount "$mount_dir" + losetup -d "$loop_device" + rm -fr "$mount_dir" "$TMPDIR/img" + + echo "Test complete" +} diff --git a/tests/loop/007.out b/tests/loop/007.out new file mode 100644 index 0000000..3275293 --- /dev/null +++ b/tests/loop/007.out @@ -0,0 +1,2 @@ +Running loop/007 +Test complete