All of lore.kernel.org
 help / color / mirror / Atom feed
* main - aux: add clear_dev
@ 2023-04-21 12:53 Zdenek Kabelac
  0 siblings, 0 replies; only message in thread
From: Zdenek Kabelac @ 2023-04-21 12:53 UTC (permalink / raw)
  To: lvm-devel

Gitweb:        https://sourceware.org/git/?p=lvm2.git;a=commitdiff;h=11562bcc6b9dc09eb0c5bccb69a7741dec9e626b
Commit:        11562bcc6b9dc09eb0c5bccb69a7741dec9e626b
Parent:        b030ef31de0897aac1964dce4368750bb1166d5c
Author:        Zdenek Kabelac <zkabelac@redhat.com>
AuthorDate:    Fri Apr 21 01:35:31 2023 +0200
Committer:     Zdenek Kabelac <zkabelac@redhat.com>
CommitterDate: Fri Apr 21 14:52:43 2023 +0200

aux: add clear_dev

Function that will use 'blkdiscard -z' and fallbacks
to 'dd' when such option is not available.
---
 test/lib/aux.sh | 36 ++++++++++++++++++++++++++++++++++++
 1 file changed, 36 insertions(+)

diff --git a/test/lib/aux.sh b/test/lib/aux.sh
index 9412a20af..3ab599f60 100644
--- a/test/lib/aux.sh
+++ b/test/lib/aux.sh
@@ -916,6 +916,42 @@ cleanup_idm_context() {
 	fi
 }
 
+
+#
+# clear device either with blkdiscard -z or fallback to 'dd'
+# $1  device_path
+# TODO: add support for parametrized [OPTION] usage (Not usable ATM)
+# TODO: -bs  blocksize  (defaults 512K)
+# TODO: -count  count/length  (defaults to whole device, otherwise in BS units)
+# TODO: -seek  offset/oseek  (defaults 0, begining of zeroing area in BS unit)
+clear_devs() {
+	local bs=
+	local count=
+	local seek=
+
+	while [ "$#" -ne 0 ] ; do
+		case "$1" in
+		"") ;;
+		"--bs") bs=$2; shift ;;
+		"--count") count=$2; shift ;;
+		"--seek") seek=$2; shift ;;
+		*TEST*) # Protection: only test devices with TEST in its path name can be zeroed
+			test -e NO_BLKDISCARD_Z || {
+				if blkdiscard -f -z "$1" ; then
+					shift
+					continue
+				fi
+				echo "Info: can't use 'blkdiscard -z' switch to 'dd'."
+				touch NO_BLKDISCARD_Z
+			}
+
+			dd if=/dev/zero of="$1" bs=512K oflag=direct $seek $count || true
+			;;
+		esac
+		shift
+	done
+}
+
 prepare_backing_dev() {
 	local size=${1=32}
 	shift


^ permalink raw reply related	[flat|nested] only message in thread

only message in thread, other threads:[~2023-04-21 12:53 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-04-21 12:53 main - aux: add clear_dev Zdenek Kabelac

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.