File: test.sh

package info (click to toggle)
btrfs-progs 6.17.1-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 20,612 kB
  • sloc: ansic: 127,282; sh: 7,915; python: 1,384; makefile: 900; asm: 296
file content (52 lines) | stat: -rwxr-xr-x 1,399 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
#!/bin/bash
# Read and set scrub limits on a filesystem

source "$TEST_TOP/common" || exit

setup_root_helper
setup_loopdevs 4
prepare_loopdevs
TEST_DEV=${loopdevs[1]}
support=true

fsid="13411a59-ccea-4296-a6f8-1446ccf8c9be"
sysfs="/sys/fs/btrfs/13411a59-ccea-4296-a6f8-1446ccf8c9be"

run_check $SUDO_HELPER "$TOP/mkfs.btrfs" -f --uuid "$fsid" -d raid1 -m raid1 "${loopdevs[@]}"
run_check_mount_test_dev

# Set the limits directly
for i in "$sysfs"/devinfo/*/scrub_speed_max; do
	if ! [ -f "$i" ]; then
		_log "sysfs file scrub_speed_max not available, skip setting limits"
		support=false
		break;
	fi
	run_check cat "$i"
	echo "10m" | run_check $SUDO_HELPER tee "$i" >/dev/null
done
# This works even if scrub_speed_max files don't exist, this is equivalent to unlimited
run_check "$TOP/btrfs" scrub limit "$TEST_MNT"

# The rest of the test would fail
if ! $support; then
	run_check_umount_test_dev
	cleanup_loopdevs
fi

# Set the limits by command
here=`pwd`
cd "$sysfs/devinfo" || _fail "Cannot cd to $sysfs/devinfo"
for i in *; do
	run_check $SUDO_HELPER "$TOP/btrfs" scrub limit -d "$i" -l 20m "$TEST_MNT"
done
cd "$here" || _fail "Cannot cd to $here"
run_check "$TOP/btrfs" scrub limit "$TEST_MNT"

# Set limits for all devices
run_check $SUDO_HELPER "$TOP/btrfs" scrub limit -a -l 30m "$TEST_MNT"
run_check "$TOP/btrfs" scrub limit "$TEST_MNT"

run_check_umount_test_dev

cleanup_loopdevs