diff --git a/0042-tests-add-udevadm-settle-to-loop-overlap-test.patch b/0042-tests-add-udevadm-settle-to-loop-overlap-test.patch
new file mode 100644
index 0000000..d390e34
--- /dev/null
+++ b/0042-tests-add-udevadm-settle-to-loop-overlap-test.patch
@@ -0,0 +1,48 @@
+From 500aa7e702f87031a5390a3275f54097b2bc7f42 Mon Sep 17 00:00:00 2001
+From: Karel Zak <kzak@redhat.com>
+Date: Fri, 12 Aug 2022 08:30:49 +0200
+Subject: tests: add udevadm settle to loop overlap test
+
+Addresses: https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=2117203
+Signed-off-by: Karel Zak <kzak@redhat.com>
+---
+ tests/ts/libmount/loop-overlay | 7 +++++++
+ 1 file changed, 7 insertions(+)
+
+diff --git a/tests/ts/libmount/loop-overlay b/tests/ts/libmount/loop-overlay
+index 62874a182..c27f60d0f 100755
+--- a/tests/ts/libmount/loop-overlay
++++ b/tests/ts/libmount/loop-overlay
+@@ -43,22 +43,29 @@ dd if="$IMG" of="$IMG" oflag=append bs=1024k count=5 conv=notrunc &>/dev/null
+ 
+ echo "second should fail" >>$TS_OUTPUT
+ $TS_CMD_MOUNT -oloop "$IMG" "$TS_MOUNTPOINT-1" >> $TS_OUTPUT 2>> $TS_ERRLOG
++udevadm settle
+ $TS_CMD_MOUNT -oloop,offset=$OFFSET "$IMG" "$TS_MOUNTPOINT-2" 2>&1 \
+        | sed 's/:.*:/: <target>/; s/for .*/for <source>/' >> $TS_OUTPUT
+ $TS_CMD_UMOUNT "$TS_MOUNTPOINT-1" >> $TS_OUTPUT 2>> $TS_ERRLOG
++udevadm settle
+ 
+ echo "should succeed" >>$TS_OUTPUT
+ $TS_CMD_MOUNT -oloop,sizelimit=$OFFSET "$IMG" "$TS_MOUNTPOINT-1" >> $TS_OUTPUT 2>> $TS_ERRLOG
++udevadm settle
+ $TS_CMD_MOUNT -oloop,offset=$OFFSET "$IMG" "$TS_MOUNTPOINT-2" >> $TS_OUTPUT 2>> $TS_ERRLOG
++udevadm settle
+ $TS_CMD_UMOUNT "$TS_MOUNTPOINT-1" >> $TS_OUTPUT 2>> $TS_ERRLOG
+ $TS_CMD_UMOUNT "$TS_MOUNTPOINT-2" >> $TS_OUTPUT 2>> $TS_ERRLOG
++udevadm settle
+ 
+ echo "both should fail" >>$TS_OUTPUT
+ LOOPDEV=$($TS_CMD_LOSETUP --show -f --offset 1 --sizelimit $OFFSET "$IMG")
++udevadm settle
+ $TS_CMD_MOUNT -oloop,sizelimit=$OFFSET "$IMG" "$TS_MOUNTPOINT-1" 2>&1 \
+ 	| sed 's/:.*:/: <target>/; s/for .*/for <source>/' >> $TS_OUTPUT
+ $TS_CMD_MOUNT -oloop,offset=$OFFSET "$IMG" "$TS_MOUNTPOINT-2" 2>&1 \
+ 	| sed 's/:.*:/: <target>/; s/for .*/for <source>/' >> $TS_OUTPUT
++udevadm settle
+ $TS_CMD_LOSETUP --detach $LOOPDEV
+ 
+ ts_log "Success"
+-- 
+2.37.1
+
diff --git a/util-linux.spec b/util-linux.spec
index ce2e1d7..183f96e 100644
--- a/util-linux.spec
+++ b/util-linux.spec
@@ -2,7 +2,7 @@
 Summary: A collection of basic system utilities
 Name: util-linux
 Version: 2.37.4
-Release: 6%{?dist}
+Release: 7%{?dist}
 License: GPLv2 and GPLv2+ and LGPLv2+ and BSD with advertising and Public Domain
 URL: http://en.wikipedia.org/wiki/Util-linux
 
@@ -153,7 +153,7 @@ Patch38: 0038-loopdev-add-retries-on-EAGAIN.patch
 Patch39: 0039-lib-loopdev-remove-duplicate-code.patch
 Patch40: 0040-lib-loopdev-consolidate-ioctls-calls-on-EAGAIN.patch
 Patch41: 0041-loopdev-set-block_size-when-using-LOOP_CONFIGURE.patch
-
+Patch42: 0042-tests-add-udevadm-settle-to-loop-overlap-test.patch
 
 %description
 The util-linux package contains a large variety of low-level system
@@ -988,6 +988,9 @@ fi
 %{_libdir}/python*/site-packages/libmount/
 
 %changelog
+* Fri Aug 12 2022 Karel Zak <kzak@redhat.com> 2.37.4-7
+- improve loop overlay test (#2117203)
+
 * Wed Aug 10 2022 Karel Zak <kzak@redhat.com> 2.37.4-6
 - fix #2094216 - lslogins reports incorrect "Password is locked" status
 - fix #2117203 - loop-overlay test failed