* [PATCH 1/2] common: implement _require_xfs_io_command "open"
@ 2016-12-08 10:52 Amir Goldstein
2016-12-08 10:52 ` [PATCH 2/2] overlay/016: use xfs_io -C for executing commands Amir Goldstein
0 siblings, 1 reply; 2+ messages in thread
From: Amir Goldstein @ 2016-12-08 10:52 UTC (permalink / raw)
To: Eryu Guan; +Cc: Dave Chinner, fstests, linux-unionfs
-c "open $f" is broken in xfs_io <= 4.8. Using it results
in an endless loop and xfs_io exists with error EMFILE.
A fix for that bug makes "open" a 'one shot' command.
Along with this fix, a new -C flag was introduced to explicitly
request to execute a one shot command.
Check for -C flag support as an indication that -c "open $f"
is not broken.
Signed-off-by: Amir Goldstein <amir73il@gmail.com>
---
common/rc | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/common/rc b/common/rc
index 2719b23..cd2e8eb 100644
--- a/common/rc
+++ b/common/rc
@@ -1757,6 +1757,14 @@ _require_xfs_io_command()
echo $testio | egrep -q "Inappropriate ioctl" && \
_notrun "xfs_io $command support is missing"
;;
+ "open")
+ # -c "open $f" is broken in xfs_io <= 4.8. Along with the fix,
+ # a new -C flag was introduced to execute one shot commands.
+ # Check for -C flag support as an indication for the bug fix.
+ testio=`$XFS_IO_PROG -F -f -C "open $testfile" $testfile 2>&1`
+ echo $testio | egrep -q "invalid option" && \
+ _notrun "xfs_io $command support is missing"
+ ;;
*)
testio=`$XFS_IO_PROG -c "$command help" 2>&1`
esac
--
2.7.4
^ permalink raw reply related [flat|nested] 2+ messages in thread
* [PATCH 2/2] overlay/016: use xfs_io -C for executing commands
2016-12-08 10:52 [PATCH 1/2] common: implement _require_xfs_io_command "open" Amir Goldstein
@ 2016-12-08 10:52 ` Amir Goldstein
0 siblings, 0 replies; 2+ messages in thread
From: Amir Goldstein @ 2016-12-08 10:52 UTC (permalink / raw)
To: Eryu Guan; +Cc: Dave Chinner, fstests, linux-unionfs
This test requires a fix to xfs_io to support
-C one shot commands and -c "open foo" command.
Signed-off-by: Amir Goldstein <amir73il@gmail.com>
---
tests/overlay/016 | 27 +++++++++++++--------------
tests/overlay/016.out | 11 +++++------
2 files changed, 18 insertions(+), 20 deletions(-)
diff --git a/tests/overlay/016 b/tests/overlay/016
index 6d3e339..041ab3d 100755
--- a/tests/overlay/016
+++ b/tests/overlay/016
@@ -50,6 +50,7 @@ _cleanup()
_supported_fs overlay
_supported_os Linux
_require_scratch
+_require_xfs_io_command "open"
rm -f $seqres.full
@@ -72,13 +73,12 @@ cd $SCRATCH_MNT
# write to rwfd
# read from rofd
#
-$XFS_IO_PROG << EOF | _filter_xfs_io
-open -r foo
-open foo
-pwrite -S 0x61 0 16
-file 0
-pread -v 0 16
-EOF
+$XFS_IO_PROG -r foo \
+ -C "open foo" \
+ -C "pwrite -S 0x61 0 16" \
+ -C "file 0" \
+ -C "pread -v 0 16" \
+| _filter_xfs_io
#
# case #2:
@@ -86,13 +86,12 @@ EOF
# write to rwfd
# read from mapped memory
#
-$XFS_IO_PROG << EOF | _filter_xfs_io
-open -r bar
-mmap -r 0 16
-open bar
-pwrite -S 0x61 0 16
-mread -v 0 16
-EOF
+$XFS_IO_PROG -r bar \
+ -C "mmap -r 0 16" \
+ -C "open bar" \
+ -C "pwrite -S 0x61 0 16" \
+ -C "mread -v 0 16" \
+| _filter_xfs_io
status=0
exit
diff --git a/tests/overlay/016.out b/tests/overlay/016.out
index 52b8cd7..c49f8dc 100644
--- a/tests/overlay/016.out
+++ b/tests/overlay/016.out
@@ -1,12 +1,11 @@
QA output created by 016
-xfs_io> xfs_io> xfs_io> wrote 16/16 bytes at offset 0
+wrote 16/16 bytes at offset 0
XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
-xfs_io> [000] foo (foreign,non-sync,non-direct,read-only)
+[000] foo (foreign,non-sync,non-direct,read-only)
001 foo (foreign,non-sync,non-direct,read-write)
-xfs_io> 00000000: 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 aaaaaaaaaaaaaaaa
+00000000: 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 aaaaaaaaaaaaaaaa
read 16/16 bytes at offset 0
XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
-xfs_io> xfs_io> xfs_io> xfs_io> xfs_io> wrote 16/16 bytes at offset 0
+wrote 16/16 bytes at offset 0
XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
-xfs_io> 00000000: 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 aaaaaaaaaaaaaaaa
-xfs_io>
\ No newline at end of file
+00000000: 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 aaaaaaaaaaaaaaaa
--
2.7.4
^ permalink raw reply related [flat|nested] 2+ messages in thread
end of thread, other threads:[~2016-12-08 10:52 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-12-08 10:52 [PATCH 1/2] common: implement _require_xfs_io_command "open" Amir Goldstein
2016-12-08 10:52 ` [PATCH 2/2] overlay/016: use xfs_io -C for executing commands Amir Goldstein
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox