[LTP] [PATCH] mountns01: wait for umount completed in thread_b

xuyang2018.jy@fujitsu.com xuyang2018.jy@fujitsu.com
Thu Jul 7 12:02:43 CEST 2022


Hi Li

We can also use TST_CHECKPOINT_WAKE_AND_WAIT(0) again,
but use SAFE_WAIT(NULL) is easier.

So
Reviewed-by: Yang Xu <xuyang2018.jy@fujitsu.com>

ps: mountns04 seems doesn't need to use needs_checkpoints member
because we don't use tst_checkpoint* api in there.

Best Regards
Yang Xu
> To get rid of race condition (occurs with umount_folders):
>
>      mountns01.c:42: TPASS: shared mount in parent passed
>      mountns01.c:83: TPASS: shared mount in child passed
>      tst_device.c:394: TWARN: umount('B') failed with EINVAL
>      mountns.h:39: TWARN: umount(B) failed: EINVAL (22)
>
> Signed-off-by: Li Wang<liwang@redhat.com>
> ---
>   testcases/kernel/containers/mountns/mountns01.c | 2 ++
>   testcases/kernel/containers/mountns/mountns02.c | 2 ++
>   testcases/kernel/containers/mountns/mountns03.c | 2 ++
>   3 files changed, 6 insertions(+)
>
> diff --git a/testcases/kernel/containers/mountns/mountns01.c b/testcases/kernel/containers/mountns/mountns01.c
> index 452fe1d10..3e9c22ce3 100644
> --- a/testcases/kernel/containers/mountns/mountns01.c
> +++ b/testcases/kernel/containers/mountns/mountns01.c
> @@ -86,6 +86,8 @@ static void run(void)
>
>   	TST_CHECKPOINT_WAKE(0);
>
> +	SAFE_WAIT(NULL);
> +
>   	SAFE_UMOUNT(DIRA);
>   }
>
> diff --git a/testcases/kernel/containers/mountns/mountns02.c b/testcases/kernel/containers/mountns/mountns02.c
> index cbd435958..4ef1a61b8 100644
> --- a/testcases/kernel/containers/mountns/mountns02.c
> +++ b/testcases/kernel/containers/mountns/mountns02.c
> @@ -87,6 +87,8 @@ static void run(void)
>
>   	TST_CHECKPOINT_WAKE(0);
>
> +	SAFE_WAIT(NULL);
> +
>   	SAFE_UMOUNT(DIRA);
>   }
>
> diff --git a/testcases/kernel/containers/mountns/mountns03.c b/testcases/kernel/containers/mountns/mountns03.c
> index 5c19a96a9..0d8b86f9d 100644
> --- a/testcases/kernel/containers/mountns/mountns03.c
> +++ b/testcases/kernel/containers/mountns/mountns03.c
> @@ -97,6 +97,8 @@ static void run(void)
>
>   	TST_CHECKPOINT_WAKE(0);
>
> +	SAFE_WAIT(NULL);
> +
>   	SAFE_UMOUNT(DIRA);
>   }
>


More information about the ltp mailing list