From: Hou Tao Date: Thu, 11 Jan 2018 06:49:30 +0000 (+0800) Subject: dmflakey: support multiple dm targets for a dm-flakey device X-Git-Tag: v2022.05.01~1708 X-Git-Url: https://www.infradead.org/git/?a=commitdiff_plain;h=976c9ca6561ce5fc4a62c6cab1ecad0a92a98511;p=users%2Fhch%2Fxfstests-dev.git dmflakey: support multiple dm targets for a dm-flakey device 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 Reviewed-by: Eryu Guan Signed-off-by: Eryu Guan --- diff --git a/common/dmflakey b/common/dmflakey index 4434307ea..e34fce85c 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