common: implement _require_xfs_io_command "open"
authorAmir Goldstein <amir73il@gmail.com>
Thu, 8 Dec 2016 10:52:20 +0000 (12:52 +0200)
committerEryu Guan <eguan@redhat.com>
Fri, 9 Dec 2016 07:55:19 +0000 (15:55 +0800)
-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>
Reviewed-by: Eryu Guan <eguan@redhat.com>
Signed-off-by: Eryu Guan <eguan@redhat.com>
common/rc

index 6d9694f7418de4fdf60c4c4e5c0386398e9e65fc..2639fbdab535c5ac71b5bb715ef8b50759265438 100644 (file)
--- a/common/rc
+++ b/common/rc
@@ -1758,6 +1758,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