Re: [PATCH] generic/469: Skip the test if fallocate keep_size is not supported

[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]



On Fri, Oct 18, 2019 at 09:02:12AM +0000, misono.tomohiro@xxxxxxxxxxx wrote:
> > On Wed, Oct 16, 2019 at 07:53:47PM +0900, Misono Tomohiro wrote:
> > > This test requires fallocate keep_size. So, skip the test if a target
> > > FS does not support the function to avoid false negative.
> > >
> > > Signed-off-by: Misono Tomohiro <misono.tomohiro@xxxxxxxxxxxxxx>
> > 
> > Would you please paste the false failure you've seen? I can't recall I hit such failures, and I think fsx would just disable unsupported
> > operations and don't cause failure, it just prints a message to stderr, and we already redirect stderr to $seqres.full in run_fsx
> > in 469.
> 
> Hi, I just got output mismatch error:
> 
> $ cat results/generic/469.out.bad
> QA output created by 469
> fsx --replay-ops fsxops.0
> Seed set to 1
> main: filesystem does not support fallocate mode FALLOC_FL_KEEP_SIZE, disabling!
> main: filesystem does not support fallocate mode FALLOC_FL_PUNCH_HOLE | FALLOC_FL_KEEP_SIZE, disabling!
> main: filesystem does not support fallocate mode FALLOC_FL_ZERO_RANGE, disabling!
> main: filesystem does not support fallocate mode FALLOC_FL_COLLAPSE_RANGE, disabling!
> main: filesystem does not support fallocate mode FALLOC_FL_INSERT_RANGE, disabling!
> main: filesystem does not support clone range, disabling!
> main: filesystem does not support dedupe range, disabling!
> fallocate: 0x0 to 0x1000
> do_preallocate: fallocate: Operation not supported
> LOG DUMP (1 total operations):
> 1(  1 mod 256): FALLOC   0x0 thru 0x1000        (0x1000 bytes) PAST_EOF
> Log of operations saved to "/test1/469.fsx.fsxops"; replay with --replay-ops
> Correct content saved for comparison
> (maybe hexdump "/test1/469.fsx" vs "/test1/469.fsx.fsxgood")

Ah, I recalled that I actually tried to fix this issue before, but Amir
didn't like my patch back then :)

https://spinics.net/lists/fstests/msg07953.html

Because my patch silently ignored 'keep_size' flag when replaying
operations, and look at it again, I don't like it either.

I think we could just skip the keep_size operations instead of ignoring
it.

Would you please try this patch?

diff --git a/ltp/fsx.c b/ltp/fsx.c
index 06d08e4e93f3..ae89bf665db4 100644
--- a/ltp/fsx.c
+++ b/ltp/fsx.c
@@ -2044,6 +2044,9 @@ have_op:
                if (!fallocate_calls) {
                        log4(OP_FALLOCATE, offset, size, FL_SKIPPED);
                        goto out;
+               } else if (keep_size && !keep_size_calls) {
+                       log4(OP_FALLOCATE, offset, size, FL_SKIPPED | FL_KEEP_SIZE);
+                       goto out;
                }
                break;
        case OP_PUNCH_HOLE:
@@ -2056,6 +2059,9 @@ have_op:
                if (!zero_range_calls) {
                        log4(OP_ZERO_RANGE, offset, size, FL_SKIPPED);
                        goto out;
+               } else if (keep_size && !keep_size_calls) {
+                       log4(OP_ZERO_RANGE, offset, size, FL_SKIPPED | FL_KEEP_SIZE);
+                       goto out;
                }
                break;
        case OP_COLLAPSE_RANGE:

Thanks!

Eryu
> 
> Thanks.
> 
> > 
> > Thanks,
> > Eryu
> > 
> > > ---
> > >  tests/generic/469 | 1 +
> > >  1 file changed, 1 insertion(+)
> > >
> > > diff --git a/tests/generic/469 b/tests/generic/469 index
> > > 47fdf0cf..0c6f8ae5 100755
> > > --- a/tests/generic/469
> > > +++ b/tests/generic/469
> > > @@ -40,6 +40,7 @@ rm -f $seqres.full
> > >  _supported_fs generic
> > >  _supported_os Linux
> > >  _require_test
> > > +_require_xfs_io_command "falloc" "-k"
> > >
> > >  run_fsx()
> > >  {
> > > --
> > > 2.21.0
> > >



[Index of Archives]     [Linux Filesystems Development]     [Linux NFS]     [Linux NILFS]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux