2 # SPDX-License-Identifier: GPL-2.0
3 # Copyright (c) 2020 SUSE Linux Products GmbH. All Rights Reserved.
7 # Test subdirectory limit of ext4.
8 # We create more than 65000 subdirectories on the ext4 filesystem.
11 _begin_fstest auto dir
16 # Import common functions.
19 # real QA test starts here
23 _require_test_program "t_create_short_dirs"
24 _require_test_program "t_create_long_dirs"
25 _require_dumpe2fs "$DUMPE2FS_PROG" dumpe2fs
27 echo "Silence is golden"
30 # $1: Number of directories to create
31 # $2: create short dir or long dir
32 # $3: parent directory
36 if [ $2 -eq $SHORT_DIR ]; then
37 dir_name_len="short name"
39 dir_name_len="long name"
42 echo "Num of dirs to create: $1, Dir name len: $dir_name_len, " \
43 "Parent dir: $3" >> $seqres.full
45 _scratch_mkfs "-O extent,dir_nlink,dir_index -I 256" >> $seqres.full 2>&1
49 mkdir -p $3 2> /dev/null
51 if [ $2 -eq $SHORT_DIR ]; then
52 $here/src/t_create_short_dirs $1 $3
54 $here/src/t_create_long_dirs $1 $3
58 nr_dirs=`ls $3 | wc -l`
59 echo "Failed to create directories - $nr_dirs"
68 echo "Failed to remove directories in $3"
76 # check dir_nlink is set
77 $DUMPE2FS_PROG -h $SCRATCH_DEV 2>> $seqres.full | grep '^Filesystem features' | grep -q dir_nlink
79 echo "Feature dir_nlink is not set, please check $seqres.full for detail"
86 DIR_LEN=( $SHORT_DIR $LONG_DIR )
87 PARENT_DIR="$SCRATCH_MNT/subdir"
89 for ((i = 0; i < 2; i++)); do
90 workout $DIR_NUM ${DIR_LEN[$i]} $PARENT_DIR