Re: [PATCH v2] generic/530: fix shutdown failure of generic/530 in overlay

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



CC: Darrick

On Mon, May 13, 2019 at 9:23 AM Jeffle Xu <jefflexu@xxxxxxxxxxxxxxxxx> wrote:
>
> Testcases are recommended to use  _require_scratch_shutdown()
> and _scratch_shutdown() pair helper function to test and execute
> shutdown.
>
> generic/530 formmerly used _require_scratch_shutdown() to test
> whether the filesystem supports shutdown or not, while executed
> the shutdown action in a raw binary (src/t_open_tmpfiles) rather
> than the recommended _scratch_shutdown() helper. This will cause
> a "shutdown: Inappropriate ioctl for device" error message when
> testing overlay filesystem.
>
> This patch simply move the shutdown action from the raw binary
> into the packaged _scratch_shutdown() helper. That is, we remove
> the "shutdown" interface of t_open_tmpfiles.c and call
> _scratch_shutdown() in genric/530 and xfs/501.
>
> thx
>
> Signed-off-by: Jeffle Xu <jefflexu@xxxxxxxxxxxxxxxxx>

Reviewed-by: Amir Goldstein <amir73il@xxxxxxxxx>

> ---
>  src/t_open_tmpfiles.c | 19 -------------------
>  tests/generic/530     |  4 +++-
>  tests/xfs/501         |  4 +++-
>  3 files changed, 6 insertions(+), 21 deletions(-)
>
> diff --git a/src/t_open_tmpfiles.c b/src/t_open_tmpfiles.c
> index da9390f..0393c6b 100644
> --- a/src/t_open_tmpfiles.c
> +++ b/src/t_open_tmpfiles.c
> @@ -24,7 +24,6 @@ static int min_fd = -1;
>  static int max_fd = -1;
>  static unsigned int nr_opened = 0;
>  static float start_time;
> -static int shutdown_fs = 0;
>
>  void clock_time(float *time)
>  {
> @@ -69,22 +68,6 @@ void die(void)
>                                 end_time - start_time);
>                 fflush(stdout);
>
> -               if (shutdown_fs) {
> -                       /*
> -                        * Flush the log so that we have to process the
> -                        * unlinked inodes the next time we mount.
> -                        */
> -                       int flag = XFS_FSOP_GOING_FLAGS_LOGFLUSH;
> -                       int ret;
> -
> -                       ret = ioctl(min_fd, XFS_IOC_GOINGDOWN, &flag);
> -                       if (ret) {
> -                               perror("shutdown");
> -                               exit(2);
> -                       }
> -                       exit(0);
> -               }
> -
>                 clock_time(&start_time);
>                 for (fd = min_fd; fd <= max_fd; fd++)
>                         close(fd);
> @@ -160,8 +143,6 @@ int main(int argc, char *argv[])
>                 if (ret)
>                         perror(argv[1]);
>         }
> -       if (argc > 2 && !strcmp(argv[2], "shutdown"))
> -               shutdown_fs = 1;
>
>         clock_time(&start_time);
>         while (1)
> diff --git a/tests/generic/530 b/tests/generic/530
> index b0d188b..56c6d32 100755
> --- a/tests/generic/530
> +++ b/tests/generic/530
> @@ -49,7 +49,9 @@ ulimit -n $max_files
>
>  # Open a lot of unlinked files
>  echo create >> $seqres.full
> -$here/src/t_open_tmpfiles $SCRATCH_MNT shutdown >> $seqres.full
> +$here/src/t_open_tmpfiles $SCRATCH_MNT >> $seqres.full
> +_scratch_shutdown -f
> +
>
>  # Unmount to prove that we can clean it all
>  echo umount >> $seqres.full
> diff --git a/tests/xfs/501 b/tests/xfs/501
> index 974f341..4be9997 100755
> --- a/tests/xfs/501
> +++ b/tests/xfs/501
> @@ -54,7 +54,9 @@ ulimit -n $max_files
>
>  # Open a lot of unlinked files
>  echo create >> $seqres.full
> -$here/src/t_open_tmpfiles $SCRATCH_MNT shutdown >> $seqres.full
> +$here/src/t_open_tmpfiles $SCRATCH_MNT >> $seqres.full
> +_scratch_shutdown -f
> +
>
>  # Unmount to prove that we can clean it all
>  echo umount >> $seqres.full
> --
> 1.8.3.1
>



[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