[PATCH v3 1/2] common/dmlogwrites: add _require_log_writes_sized helper

Disha Goel <[email protected]>
Newsgroups org.kernel.vger.fstests,org.kernel.vger.linux-btrfs
Message-ID <[email protected]>
Add a new helper function _require_log_writes_sized() to check if the
LOGWRITES_DEV meets a minimum size requirement.

This is useful for tests that use dm-log-writes with additional space
requirements, such as creating LVM snapshots during log replay or tests
that generate large amounts of logged I/O operations.

The function takes a size parameter in KB, calls _require_log_writes()
internally, and skips the test if LOGWRITES_DEV is smaller than the
required size.

Suggested-by: Darrick J. Wong <[email protected]>
Suggested-by: Anand Jain <[email protected]>
Signed-off-by: Disha Goel <[email protected]>
---
v2 -> v3:
- Fixed variable declaration order - declare all local variables at the
  beginning of the function
- Use $size instead of $1 for clarity in the comparison

 common/dmlogwrites | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

diff --git a/common/dmlogwrites b/common/dmlogwrites
index a27e1966..b457ef7f 100644
--- a/common/dmlogwrites
+++ b/common/dmlogwrites
@@ -14,6 +14,22 @@ _require_log_writes()
 	_require_test_program "log-writes/replay-log"
 }
 
+# Require a log writes device of a minimum size
+# $1: minimum size in KB
+_require_log_writes_sized()
+{
+	local size=$1
+	local devsize
+
+	[ $# -eq 1 ] || _fail "_require_log_writes_sized: expected size param"
+
+	_require_log_writes
+
+	devsize=$(_get_device_size $LOGWRITES_DEV)
+	[ $devsize -lt $size ] && \
+		_notrun "LOGWRITES_DEV too small, ${devsize}KB < ${size}KB"
+}
+
 # Starting from v4.15-rc1, DAX support was added to dm-log-writes, but note
 # that it doesn't track the data that we write via the mmap(), so we can't do
 # any data integrity checking. We can only verify that the metadata writes for
-- 
2.45.1
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.