diff mbox series

syscalls/mount03: Add statfs f_flags member check

Message ID 1666091413-7732-1-git-send-email-xuyang2018.jy@fujitsu.com
State Accepted
Headers show
Series syscalls/mount03: Add statfs f_flags member check | expand

Commit Message

Yang Xu Oct. 18, 2022, 11:10 a.m. UTC
Signed-off-by: Yang Xu <xuyang2018.jy@fujitsu.com>
---
 testcases/kernel/syscalls/mount/mount03.c | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

Comments

Petr Vorel Oct. 21, 2022, 10:13 p.m. UTC | #1
Hi Xu,

Reviewed-by: Petr Vorel <pvorel@suse.cz>

>  static void run(unsigned int n)
>  {
>  	struct tcase *tc = &tcases[n];
> +	struct statfs stfs;

>  	tst_res(TINFO, "Testing flag %s", tc->desc);

> @@ -159,6 +160,11 @@ static void run(unsigned int n)
>  	if (tc->test)
>  		tc->test();

> +	SAFE_STATFS(MNTPOINT, &stfs);
> +	if (stfs.f_flags & (n == 3 ? MS_REMOUNT : tc->flag))
Wouldn't it be better to add another struct member for this check?
See patch below.

Kind regards,
Petr

> +		tst_res(TPASS, "statfs() gets the correct mount flag");
> +	else
> +		tst_res(TFAIL, "statfs() gets the incorrect mount flag");
>  	cleanup();
>  }

diff --git testcases/kernel/syscalls/mount/mount03.c testcases/kernel/syscalls/mount/mount03.c
index 297f89838..c4d3c110a 100644
--- testcases/kernel/syscalls/mount/mount03.c
+++ testcases/kernel/syscalls/mount/mount03.c
@@ -114,16 +114,18 @@ static void test_noatime(void)
 	TST_EXP_EQ_LI(st.st_atime, atime);
 }
 
-#define FLAG_DESC(x) .flag = x, .desc = #x
+#define FLAG_DESC(x) .flag = x, .flag2 = x, .desc = #x
+#define FLAG_DESC2(x) .flag2 = x, .desc = #x
 static struct tcase {
 	unsigned int flag;
+	unsigned int flag2;
 	char *desc;
 	void (*test)(void);
 } tcases[] = {
 	{FLAG_DESC(MS_RDONLY), test_rdonly},
 	{FLAG_DESC(MS_NODEV), test_nodev},
 	{FLAG_DESC(MS_NOEXEC), test_noexec},
-	{MS_RDONLY, "MS_REMOUNT", test_remount},
+	{MS_RDONLY, FLAG_DESC2(MS_REMOUNT), test_remount},
 	{FLAG_DESC(MS_NOSUID), test_nosuid},
 	{FLAG_DESC(MS_NOATIME), test_noatime},
 };
@@ -161,7 +163,7 @@ static void run(unsigned int n)
 		tc->test();
 
 	SAFE_STATFS(MNTPOINT, &stfs);
-	if (stfs.f_flags & (n == 3 ? MS_REMOUNT : tc->flag))
+	if (stfs.f_flags & tc->flag2)
 		tst_res(TPASS, "statfs() gets the correct mount flag");
 	else
 		tst_res(TFAIL, "statfs() gets the incorrect mount flag");
Yang Xu Oct. 24, 2022, 1:20 a.m. UTC | #2
Hi Petr

> Hi Xu,
> 
> Reviewed-by: Petr Vorel <pvorel@suse.cz>
> 
>>   static void run(unsigned int n)
>>   {
>>   	struct tcase *tc = &tcases[n];
>> +	struct statfs stfs;
> 
>>   	tst_res(TINFO, "Testing flag %s", tc->desc);
> 
>> @@ -159,6 +160,11 @@ static void run(unsigned int n)
>>   	if (tc->test)
>>   		tc->test();
> 
>> +	SAFE_STATFS(MNTPOINT, &stfs);
>> +	if (stfs.f_flags & (n == 3 ? MS_REMOUNT : tc->flag))
> Wouldn't it be better to add another struct member for this check?

Of course, it seems better.

Best Regards
Yang Xu
> See patch below.
> 
> Kind regards,
> Petr
> 
>> +		tst_res(TPASS, "statfs() gets the correct mount flag");
>> +	else
>> +		tst_res(TFAIL, "statfs() gets the incorrect mount flag");
>>   	cleanup();
>>   }
> 
> diff --git testcases/kernel/syscalls/mount/mount03.c testcases/kernel/syscalls/mount/mount03.c
> index 297f89838..c4d3c110a 100644
> --- testcases/kernel/syscalls/mount/mount03.c
> +++ testcases/kernel/syscalls/mount/mount03.c
> @@ -114,16 +114,18 @@ static void test_noatime(void)
>   	TST_EXP_EQ_LI(st.st_atime, atime);
>   }
>   
> -#define FLAG_DESC(x) .flag = x, .desc = #x
> +#define FLAG_DESC(x) .flag = x, .flag2 = x, .desc = #x
> +#define FLAG_DESC2(x) .flag2 = x, .desc = #x
>   static struct tcase {
>   	unsigned int flag;
> +	unsigned int flag2;
>   	char *desc;
>   	void (*test)(void);
>   } tcases[] = {
>   	{FLAG_DESC(MS_RDONLY), test_rdonly},
>   	{FLAG_DESC(MS_NODEV), test_nodev},
>   	{FLAG_DESC(MS_NOEXEC), test_noexec},
> -	{MS_RDONLY, "MS_REMOUNT", test_remount},
> +	{MS_RDONLY, FLAG_DESC2(MS_REMOUNT), test_remount},
>   	{FLAG_DESC(MS_NOSUID), test_nosuid},
>   	{FLAG_DESC(MS_NOATIME), test_noatime},
>   };
> @@ -161,7 +163,7 @@ static void run(unsigned int n)
>   		tc->test();
>   
>   	SAFE_STATFS(MNTPOINT, &stfs);
> -	if (stfs.f_flags & (n == 3 ? MS_REMOUNT : tc->flag))
> +	if (stfs.f_flags & tc->flag2)
>   		tst_res(TPASS, "statfs() gets the correct mount flag");
>   	else
>   		tst_res(TFAIL, "statfs() gets the incorrect mount flag");
Richard Palethorpe Oct. 24, 2022, 2:49 p.m. UTC | #3
Hello,

"xuyang2018.jy@fujitsu.com" <xuyang2018.jy@fujitsu.com> writes:

> Hi Petr
>
>> Hi Xu,
>> 
>> Reviewed-by: Petr Vorel <pvorel@suse.cz>
>> 
>>>   static void run(unsigned int n)
>>>   {
>>>   	struct tcase *tc = &tcases[n];
>>> +	struct statfs stfs;
>> 
>>>   	tst_res(TINFO, "Testing flag %s", tc->desc);
>> 
>>> @@ -159,6 +160,11 @@ static void run(unsigned int n)
>>>   	if (tc->test)
>>>   		tc->test();
>> 
>>> +	SAFE_STATFS(MNTPOINT, &stfs);
>>> +	if (stfs.f_flags & (n == 3 ? MS_REMOUNT : tc->flag))
>> Wouldn't it be better to add another struct member for this check?
>
> Of course, it seems better.
>
> Best Regards
> Yang Xu

OK... Petr are you going to merge this with your changes?

Acked-by: Richard Palethorpe <rpalethorpe@suse.com>
Yang Xu Oct. 25, 2022, 2:13 a.m. UTC | #4
Hi Richard, Petr


> Hello,
> 
> "xuyang2018.jy@fujitsu.com" <xuyang2018.jy@fujitsu.com> writes:
> 
>> Hi Petr
>>
>>> Hi Xu,
>>>
>>> Reviewed-by: Petr Vorel <pvorel@suse.cz>
>>>
>>>>    static void run(unsigned int n)
>>>>    {
>>>>    	struct tcase *tc = &tcases[n];
>>>> +	struct statfs stfs;
>>>
>>>>    	tst_res(TINFO, "Testing flag %s", tc->desc);
>>>
>>>> @@ -159,6 +160,11 @@ static void run(unsigned int n)
>>>>    	if (tc->test)
>>>>    		tc->test();
>>>
>>>> +	SAFE_STATFS(MNTPOINT, &stfs);
>>>> +	if (stfs.f_flags & (n == 3 ? MS_REMOUNT : tc->flag))
>>> Wouldn't it be better to add another struct member for this check?
>>
>> Of course, it seems better.
>>
>> Best Regards
>> Yang Xu
> 
> OK... Petr are you going to merge this with your changes?

Thanks for your review, I merged this patch with petr's changes.


Best Regards
Yang Xu
> 
> Acked-by: Richard Palethorpe <rpalethorpe@suse.com>
>
diff mbox series

Patch

diff --git a/testcases/kernel/syscalls/mount/mount03.c b/testcases/kernel/syscalls/mount/mount03.c
index 7a6914fb1..e1dd8d170 100644
--- a/testcases/kernel/syscalls/mount/mount03.c
+++ b/testcases/kernel/syscalls/mount/mount03.c
@@ -24,6 +24,7 @@ 
 #include <stdlib.h>
 #include <sys/types.h>
 #include <sys/wait.h>
+#include <sys/vfs.h>
 #include <pwd.h>
 #include "tst_test.h"
 #include "lapi/mount.h"
@@ -144,10 +145,10 @@  static void cleanup(void)
 		SAFE_UMOUNT(MNTPOINT);
 }
 
-
 static void run(unsigned int n)
 {
 	struct tcase *tc = &tcases[n];
+	struct statfs stfs;
 
 	tst_res(TINFO, "Testing flag %s", tc->desc);
 
@@ -159,6 +160,11 @@  static void run(unsigned int n)
 	if (tc->test)
 		tc->test();
 
+	SAFE_STATFS(MNTPOINT, &stfs);
+	if (stfs.f_flags & (n == 3 ? MS_REMOUNT : tc->flag))
+		tst_res(TPASS, "statfs() gets the correct mount flag");
+	else
+		tst_res(TFAIL, "statfs() gets the incorrect mount flag");
 	cleanup();
 }