--- /dev/null
+#! /bin/bash
+# SPDX-License-Identifier: GPL-2.0
+# Copyright (C) 2020 SUSE Linux Products GmbH. All Rights Reserved.
+#
+# FS QA Test 217
+#
+# Test if the following workload would cause problem:
+# - fstrim
+# - shrink device
+# - fstrim
+#
+seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+echo "QA output created by $seq"
+
+here=`pwd`
+tmp=/tmp/$$
+status=1 # failure is the default!
+trap "_cleanup; exit \$status" 0 1 2 3 15
+
+_cleanup()
+{
+ cd /
+ rm -f $tmp.*
+}
+
+# get standard environment, filters and checks
+. ./common/rc
+. ./common/filter
+
+# remove previous $seqres.full before test
+rm -f $seqres.full
+
+# real QA test starts here
+
+# Modify as appropriate.
+_supported_fs btrfs
+_supported_os Linux
+_require_scratch_size $((5 * 1024 * 1024)) #kB
+_require_fstrim
+
+# Create a 5G fs
+_scratch_mkfs_sized $((5 * 1024 * 1024 * 1024)) >> $seqres.full
+_scratch_mount
+
+# Fstrim to populate the device->alloc_status CHUNK_TRIMMED bits
+$FSTRIM_PROG -v $SCRATCH_MNT >> $seqres.full 2>&1 || \
+ _notrun "FSTRIM not supported"
+
+
+# Shrink the fs to 4G, so the existing CHUNK_TRIMMED bits are beyond
+# device boundary
+$BTRFS_UTIL_PROG filesystem resize 1:-1G "$SCRATCH_MNT" >> $seqres.full
+
+# Do fstrim again to trigger the bug
+$FSTRIM_PROG -v $SCRATCH_MNT >> $seqres.full
+
+echo "Silence is golden"
+
+# success, all done
+status=0
+exit