diff mbox

[v4,1/4] dmflakey: support multiple dm targets for a dm-flakey device

Message ID 20180111064933.12088-2-houtao1@huawei.com (mailing list archive)
State Accepted, archived
Headers show

Commit Message

Hou Tao Jan. 11, 2018, 6:49 a.m. UTC
dm-flakey can be used to emulate IO write error, however, when
we also need to prevent the IO error for a specific range of the
block device (eg., the log region of a XFS), we need to specify
multiple dm targets for the dm device.

Option --table can not accommodate the multiple dm targets case,
so let dmsetup get the possible-multiple-targets table from
standard input.

Signed-off-by: Hou Tao <houtao1@huawei.com>
---
v4: add comments for reading dm target table from standard input
---
 common/dmflakey | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)
diff mbox

Patch

diff --git a/common/dmflakey b/common/dmflakey
index 4434307..e34fce8 100644
--- a/common/dmflakey
+++ b/common/dmflakey
@@ -77,11 +77,14 @@  _load_flakey_table()
 	$DMSETUP_PROG suspend $suspend_opt flakey-test
 	[ $? -ne 0 ] && _fatal "failed to suspend flakey-test"
 
-	$DMSETUP_PROG load flakey-test --table "$table"
+	# There may be multiple dm targets in the table, and these dm targets
+	# will be joined by the newline ("\n"). Option --table can not cope with
+	# the multiple-targets case, so get them by reading from standard input.
+	echo -e "$table" | $DMSETUP_PROG load flakey-test
 	[ $? -ne 0 ] && _fatal "failed to load table into flakey-test"
 
 	$DMSETUP_PROG resume flakey-test
-	[ $? -ne 0 ] && _fatal  "failed to resumeflakey-test"
+	[ $? -ne 0 ] && _fatal  "failed to resume flakey-test"
 }
 
 # Silently drop all writes and unmount/remount to simulate a crash/power