Skip to contentSkip to conversation

Testing statx syscall

PATCH Superseded vaishnavi.d 2 participants 5 messages Aug 17, 2018 – Aug 20, 2018

v5 of 7 Superseded Latest is v7 →

lore
Share & tools
lore
#0 lore raw

PATCH v5 1/1 Testing statx syscall

From: vaishnavi <[email protected]>

* statx01.c: This file will check metadata of files like uid, gid, size, blocks, mode for normal file(1) and rdev_major, rdev_minor number for device file(2)

* statx02.c: This file will check flag like AT_EMPTY_PATH, AT_SYMLINK_NOFOLLOW
* AT_EMPTY_PATH: If pathname is an empty string, operate on the file referred to by dirfd.
* AT_SYMLINK_NOFOLLOW:If pathname is a symbolic link, do not dereference it: instead return information about the link itself.

* stat03.c: This file will check error code(errno) by providing required input in statx argument syscall. The following errno are
checked: EBADF, EBADF, ENAMETOOLONG, ENOENT, ENOTDIR, EFAULT.

* statx04.c: This file will check attribute flag by defining flag to that directory and checks another directory with no flags. Changes from V4 to V5:
* Modified header name to stat.h
* Added check for structure in m4 file.
* Modified test case for stx_blocks in statx01.c.

---
 include/lapi/fs.h                          |  47 +++++
 include/lapi/stat.h                        | 264 +++++++++++++++++++++++++++++
 include/lapi/syscalls/arm.in               |   1 +
 include/lapi/syscalls/i386.in              |   1 +
 include/lapi/syscalls/powerpc.in           |   1 +
 include/lapi/syscalls/powerpc64.in         |   1 +
 include/lapi/syscalls/s390.in              |   1 +
 include/lapi/syscalls/sparc.in             |   1 +
 include/lapi/syscalls/sparc64.in           |   1 +
 include/lapi/syscalls/x86_64.in            |   1 +
 m4/ltp-statx.m4                            |  28 +++
 runtest/syscalls                           |   5 +
 testcases/kernel/syscalls/statx/.gitignore |   4 +
 testcases/kernel/syscalls/statx/Makefile   |  25 +++
 testcases/kernel/syscalls/statx/statx01.c  | 199 ++++++++++++++++++++++
 testcases/kernel/syscalls/statx/statx02.c  | 144 ++++++++++++++++
 testcases/kernel/syscalls/statx/statx03.c  | 135 +++++++++++++++
 testcases/kernel/syscalls/statx/statx04.c  | 217 ++++++++++++++++++++++++
 18 files changed, 1076 insertions(+)
 create mode 100644 include/lapi/fs.h
 create mode 100644 include/lapi/stat.h
 create mode 100644 m4/ltp-statx.m4
 create mode 100644 testcases/kernel/syscalls/statx/.gitignore
 create mode 100644 testcases/kernel/syscalls/statx/Makefile
 create mode 100644 testcases/kernel/syscalls/statx/statx01.c
 create mode 100644 testcases/kernel/syscalls/statx/statx02.c
 create mode 100644 testcases/kernel/syscalls/statx/statx03.c
 create mode 100644 testcases/kernel/syscalls/statx/statx04.c
include/lapi/fs.h new file +47 -0
new file mode 100644
index 000000000..e3cf2673e
@@ -0,0 +1,47 @@
+// SPDX-License-Identifier: GPL-2.0 or later
+/*
+ * Referred from linux kernel -github/torvalds/linux
+ * Copyright (c) Zilogic Systems Pvt. Ltd., 2018
+ * Email: [email protected]
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+#ifndef FS_H
+#define FS_H
+
+#ifndef FS_IOC_GETFLAGS
+#define	FS_IOC_GETFLAGS	_IOR('f', 1, long)
+#endif
+
+#ifndef FS_IOC_SETFLAGS
+#define	FS_IOC_SETFLAGS	_IOW('f', 2, long)
+#endif
+
+#ifndef FS_COMPR_FL
+#define	FS_COMPR_FL        0x00000004 /* Compress file */
+#endif
+
+#ifndef FS_IMMUTABLE_FL
+#define FS_IMMUTABLE_FL	   0x00000010 /* Immutable file */
+#endif
+
+#ifndef FS_APPEND_FL
+#define FS_APPEND_FL	   0x00000020 /* writes to file may only append */
+#endif
+
+#ifndef FS_NODUMP_FL
+#define FS_NODUMP_FL	   0x00000040 /* do not dump file */
+#endif
+
+#endif
include/lapi/stat.h new file +264 -0

264 lines not on this page · raw message

include/lapi/syscalls/arm.in +1 -0
index c44adcd7e..a355ba36b 100644
@@ -342,3 +342,4 @@ getrandom (__NR_SYSCALL_BASE+384)
 memfd_create (__NR_SYSCALL_BASE+385)
 execveat (__NR_SYSCALL_BASE+387)
 copy_file_range (__NR_SYSCALL_BASE+391)
+statx (__NR_SYSCALL+397)
include/lapi/syscalls/i386.in +1 -0
index 19f0148fe..fa4b529ad 100644
@@ -342,3 +342,4 @@ getrandom 355
 memfd_create 356
 execveat 358
 copy_file_range 377
+statx 383
include/lapi/syscalls/powerpc.in +1 -0
index 11ddca34e..10fb238bf 100644
@@ -348,3 +348,4 @@ renameat2 357
 getrandom 359
 memfd_create 360
 copy_file_range 379
+statx 383
include/lapi/syscalls/powerpc64.in +1 -0
index 11ddca34e..10fb238bf 100644
@@ -348,3 +348,4 @@ renameat2 357
 getrandom 359
 memfd_create 360
 copy_file_range 379
+statx 383
include/lapi/syscalls/s390.in +1 -0
index d95b282f8..66ee19e61 100644
@@ -333,3 +333,4 @@ getrandom 349
 memfd_create 350
 execveat 354
 copy_file_range 375
+statx 379
include/lapi/syscalls/sparc.in +1 -0
index 296d694a8..bbab51b72 100644
@@ -337,3 +337,4 @@ renameat2 345
 getrandom 347
 memfd_create 348
 copy_file_range 357
+statx 360
include/lapi/syscalls/sparc64.in +1 -0
index 169347a6a..ebff38265 100644
@@ -313,3 +313,4 @@ renameat2 345
 getrandom 347
 memfd_create 348
 copy_file_range 357
+statx 360
include/lapi/syscalls/x86_64.in +1 -0
index 7907c3108..5d926dfff 100644
@@ -309,3 +309,4 @@ getrandom 318
 memfd_create 319
 execveat 322
 copy_file_range 326
+statx 332
m4/ltp-statx.m4 new file +28 -0
new file mode 100644
index 000000000..547172ebc
@@ -0,0 +1,28 @@
+dnl
+dnl Copyright (c) Linux Test Project, 2014
+dnl
+dnl This program is free software;  you can redistribute it and/or modify
+dnl it under the terms of the GNU General Public License as published by
+dnl the Free Software Foundation; either version 2 of the License, or
+dnl (at your option) any later version.
+dnl
+dnl This program is distributed in the hope that it will be useful,
+dnl but WITHOUT ANY WARRANTY;  without even the implied warranty of
+dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See
+dnl the GNU General Public License for more details.
+dnl
+dnl You should have received a copy of the GNU General Public License
+dnl along with this program;  if not, write to the Free Software
+dnl Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+dnl
+
+dnl
+dnl LTP_CHECK_STATX
+dnl ----------------------------
+dnl
+AC_DEFUN([LTP_CHECK_STATX],[
+AC_CHECK_FUNCS(statx,,)
+])
+AC_CHECK_MEMBERS([struct statx.stx_mask, struct statx.stx_blksize, struct statx.stx_attributes, struct statx.stx_nlink, struct statx.stx_uid, struct statx.stx_gid, struct statx.stx_mode, struct statx.stx_ino, struct statx.stx_size, struct statx.stx_blocks, struct statx.stx_attributes_mask, struct statx.stx_rdev_minor, struct statx.stx_mtime, struct statx.stx_atime, struct statx.stx_btime, struct statx.stx_ctime, struct statx.stx_rdev_major, struct statx.stx_dev_major, struct statx.stx_dev_minor])
+
+AC_CHECK_MEMBERS([struct statx_timestamp tv_sec, struct statx_timestamp tv_nsec])
runtest/syscalls +5 -0
index e2c937b02..275f955a7 100644
@@ -1285,6 +1285,11 @@ statfs03_64 statfs03_64
 statvfs01 statvfs01
 statvfs02 statvfs02
 
+statx01 statx01
+statx02 statx02
+statx03 statx03
+statx04 statx04
+
 stime01 stime01
 stime02 stime02
 
testcases/kernel/syscalls/statx/.gitignore new file +4 -0
new file mode 100644
index 000000000..47c415e10
@@ -0,0 +1,4 @@
+/statx01
+/statx02
+/statx03
+/statx04
testcases/kernel/syscalls/statx/Makefile new file +25 -0
new file mode 100644
index 000000000..3a9523a1e
@@ -0,0 +1,25 @@
+#
+#  Copyright (c) International Business Machines  Corp., 2001
+#
+#  This program is free software;  you can redistribute it and/or modify
+#  it under the terms of the GNU General Public License as published by
+#  the Free Software Foundation; either version 2 of the License, or
+#  (at your option) any later version.
+#
+#  This program is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY;  without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See
+#  the GNU General Public License for more details.
+#
+#  You should have received a copy of the GNU General Public License
+#  along with this program;  if not, write to the Free Software
+#  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+#
+
+top_srcdir		?= ../../../..
+
+include $(top_srcdir)/include/mk/testcases.mk
+
+%_64: CPPFLAGS += -D_FILE_OFFSET_BITS=64
+
+include $(top_srcdir)/include/mk/generic_leaf_target.mk
testcases/kernel/syscalls/statx/statx01.c new file +199 -0

199 lines not on this page · raw message

testcases/kernel/syscalls/statx/statx02.c new file +144 -0

144 lines not on this page · raw message

testcases/kernel/syscalls/statx/statx03.c new file +135 -0

135 lines not on this page · raw message

testcases/kernel/syscalls/statx/statx04.c new file +217 -0

217 lines not on this page · raw message

Signature · 1 line
2.11.0
#1 lore raw

PATCH v5 1/1 Testing statx syscall

Hi,

tiny issues with copyright (no need to repost just because them, we can change them before merge).

Quoted 11 lines

+++ b/include/lapi/fs.h

include/lapi/fs.h new file +9 -0
@@ -0,0 +1,47 @@
+// SPDX-License-Identifier: GPL-2.0 or later
+/*
+ * Referred from linux kernel -github/torvalds/linux
+ * Copyright (c) Zilogic Systems Pvt. Ltd., 2018
+ * Email: [email protected]
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or

include/lapi/fs.h line 19

Quoted 10 lines
include/lapi/fs.h new file +10 -0
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */

Whole copyright is supposed to be (you can left the text as that's why SPDX-License-Identifier is here):
// SPDX-License-Identifier: GPL-2.0-or-later
/*
* Copyright (c) Zilogic Systems Pvt. Ltd., 2018
* Email: [email protected]
*/
IMHO If it's directly taken from somewhere from kernel, you may want to say exactly from which file).

There some more checkpatch.pl warnings:
include/lapi/stat.h:37: WARNING: please, no space before tabs

testcases/kernel/syscalls/statx/Makefile line 2

Quoted 4 lines
testcases/kernel/syscalls/statx/Makefile new file +3 -0
+++ b/testcases/kernel/syscalls/statx/Makefile
@@ -0,0 +1,25 @@
+#
+#  Copyright (c) International Business Machines  Corp., 2001

Here is copy paste error (year). Again, just SPDX-License-Identifier make the things shorter.

Quoted 4 lines
testcases/kernel/syscalls/statx/Makefile new file +4 -0
+#
+#  This program is free software;  you can redistribute it and/or modify
+#  it under the terms of the GNU General Public License as published by
+#  the Free Software Foundation; either version 2 of the License, or

testcases/kernel/syscalls/statx/Makefile line 16

Quoted 10 lines
testcases/kernel/syscalls/statx/Makefile new file +10 -0
+#  (at your option) any later version.
+#
+#  This program is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY;  without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See
+#  the GNU General Public License for more details.
+#
+#  You should have received a copy of the GNU General Public License
+#  along with this program;  if not, write to the Free Software
+#  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA

Kind regards,
Petr

#2 lore raw

PATCH v5 1/1 Testing statx syscall

Hi,

Quoted 6 lines

Hi,

tiny issues with copyright (no need to repost just because them, we can change
them before merge).

So, are you suggesting that you will make the changes or is there anything that has to be done from my side?

Quoted 23 lines
Quoted 11 lines

+++ b/include/lapi/fs.h

include/lapi/fs.h new file +9 -0
@@ -0,0 +1,47 @@
+// SPDX-License-Identifier: GPL-2.0 or later
+/*
+ * Referred from linux kernel -github/torvalds/linux
+ * Copyright (c) Zilogic Systems Pvt. Ltd., 2018
+ * Email: [email protected]
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or

include/lapi/fs.h line 19

Quoted 10 lines
include/lapi/fs.h new file +10 -0
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */

Whole copyright is supposed to be (you can left the text as that's why SPDX-License-Identifier is here):

Quoted 8 lines

// SPDX-License-Identifier: GPL-2.0-or-later
/*
* Copyright (c) Zilogic Systems Pvt. Ltd., 2018
* Email: [email protected]
*/
IMHO If it's directly taken from somewhere from kernel, you may want to say
exactly from which file).

The flags were taken from include/uapi/linux/fs.h

Quoted 30 lines

There some more checkpatch.pl warnings:
include/lapi/stat.h:37: WARNING: please, no space before tabs

testcases/kernel/syscalls/statx/Makefile line 2

Quoted 4 lines
testcases/kernel/syscalls/statx/Makefile new file +3 -0
+++ b/testcases/kernel/syscalls/statx/Makefile
@@ -0,0 +1,25 @@
+#
+#  Copyright (c) International Business Machines  Corp., 2001

Here is copy paste error (year). Again, just SPDX-License-Identifier make the things shorter.

Quoted 15 lines
(quoted diff) +2 -0
+#
+#  This program is free software;  you can redistribute it and/or

modify

testcases/kernel/syscalls/statx/Makefile new file +12 -0
+#  it under the terms of the GNU General Public License as published by
+#  the Free Software Foundation; either version 2 of the License, or
+#  (at your option) any later version.
+#
+#  This program is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY;  without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See
+#  the GNU General Public License for more details.
+#
+#  You should have received a copy of the GNU General Public License
+#  along with this program;  if not, write to the Free Software
+#  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
Quoted 1 line

02110-1301 USA

Kind regards,
Petr

#3 lore raw

PATCH v5 1/1 Testing statx syscall

In reply to vaishnavi.d

Hi,

Found more things. BTW from my point of view well done, it's a big patch.

Quoted 5 lines

---

include/lapi/stat.h +0 -0

...

include/lapi/stat.h

Quoted 2 lines
include/lapi/stat.h +2 -0
+#ifndef STATX_H
+#define STATX_H

Better would be LAPI_STAT_H or least STAT_H.

include/lapi/stat.h

Quoted 4 lines
include/lapi/stat.h +4 -0
+
+#include <stdint.h>
+#include "lapi/syscalls.h"
+#include "tst_test.h"

You probably don't want to add tst_test.h to lapi file. It's meant to be used by actual tests.

Quoted 5 lines
include/lapi/stat.h +5 -0
+/*
+ * Timestamp structure for the timestamps in struct statx.
+ *
+ * tv_sec holds the number of seconds before (negative) or after (positive)
+ * 00:00:00 1st January 1970 UTC.

include/lapi/stat.h

Quoted 10 lines
include/lapi/stat.h +10 -0
+ *
+ * tv_nsec holds a number of nanoseconds (0..999,999,999) after the tv_sec time.
+ *
+ * __reserved is held in case we need a yet finer resolution.
+ */
+struct statx_timestamp {
+	int64_t 	tv_sec;
+	uint32_t	tv_nsec;
+	int32_t __reserved;
+};

You want to add this structure and other definitions only if not defined in <sys/stat.h>. Something like:

#if !defined(HAVE_STRUCT_STATX_TIMESTAMP) ...
#include <sys/stat.h>
#else

struct statx_timestamp {
	int64_t 	tv_sec;
	uint32_t	tv_nsec;
	int32_t __reserved;
};

#fi

Quoted 1 line

+++ b/m4/ltp-statx.m4

...

Quoted 1 line

+AC_DEFUN([LTP_CHECK_STATX],[

You don't call LTP_CHECK_STATX function. It should be in configure.ac. Without that HAVE_STATX is never defined.

include/lapi/stat.h

Quoted 5 lines
include/lapi/stat.h +5 -0
+AC_CHECK_FUNCS(statx,,)
+])
+AC_CHECK_MEMBERS([struct statx.stx_mask, struct statx.stx_blksize, struct statx.stx_attributes, struct statx.stx_nlink, struct statx.stx_uid, struct statx.stx_gid, struct statx.stx_mode, struct statx.stx_ino, struct statx.stx_size, struct statx.stx_blocks, struct statx.stx_attributes_mask, struct statx.stx_rdev_minor, struct statx.stx_mtime, struct statx.stx_atime, struct statx.stx_btime, struct statx.stx_ctime, struct statx.stx_rdev_major, struct statx.stx_dev_major, struct statx.stx_dev_minor])
+
+AC_CHECK_MEMBERS([struct statx_timestamp tv_sec, struct statx_timestamp tv_nsec])

There is error in definition (end of function before AC_CHECK_MEMBERS calls + missing dot in second AC_CHECK_MEMBERS). Diff with fixes:

configure.ac +1 -0
index df64ce2e2..e1ecb32a7 100644
@@ -200,6 +200,7 @@ LTP_CHECK_OPENAT
 LTP_CHECK_EXECVEAT
 LTP_CHECK_RENAMEAT
 LTP_CHECK_RENAMEAT2
+LTP_CHECK_STATX
 LTP_CHECK_FALLOCATE
 LTP_CHECK_SYSCALL_FCNTL
 LTP_CHECK_SYSCALL_PERF_EVENT_OPEN
m4/ltp-statx.m4 +2 -2
index 547172ebc..dec161567 100644
@@ -22,7 +22,7 @@ dnl ----------------------------
 dnl
 AC_DEFUN([LTP_CHECK_STATX],[
 AC_CHECK_FUNCS(statx,,)
-])
 AC_CHECK_MEMBERS([struct statx.stx_mask, struct statx.stx_blksize, struct statx.stx_attributes, struct statx.stx_nlink, struct statx.stx_uid, struct statx.stx_gid, struct statx.stx_mode, struct statx.stx_ino, struct statx.stx_size, struct statx.stx_blocks, struct statx.stx_attributes_mask, struct statx.stx_rdev_minor, struct statx.stx_mtime, struct statx.stx_atime, struct statx.stx_btime, struct statx.stx_ctime, struct statx.stx_rdev_major, struct statx.stx_dev_major, struct statx.stx_dev_minor])
 
-AC_CHECK_MEMBERS([struct statx_timestamp tv_sec, struct statx_timestamp tv_nsec])
+AC_CHECK_MEMBERS([struct statx_timestamp.tv_sec, struct statx_timestamp.tv_nsec])
+])

...

Quoted 1 line
testcases/kernel/syscalls/statx/statx02.c +0 -0

...

testcases/kernel/syscalls/statx/statx02.c

Quoted 7 lines
testcases/kernel/syscalls/statx/statx02.c +7 -0
+	if (buf.stx_size == SIZE)
+		tst_res(TPASS,
+			"stx_size(%llu) obtained is correct", buf.stx_size);
+	else
+		tst_res(TFAIL,
+			"stx_size(%llu) obtained is not same as expected(%u)",
+			buf.stx_size, SIZE);

On my system (x86_64) there is a warning asking to use %lu
statx01.c: In function ‘test_normal_file’:
../../../../include/tst_test.h:53:40: warning: format ‘%llu’ expects argument of type ‘long long unsigned int’, but argument 5 has type ‘uint64_t’ {aka ‘long unsigned int’} [-Wformat=]
tst_res_(__FILE__, __LINE__, (ttype), (arg_fmt), ##__VA_ARGS__)

                                        ^~~~~~~~~

statx01.c:103:3: note: in expansion of macro ‘tst_res’
tst_res(TPASS, " stx_blocks(%llu) obtained is valid", ^~~~~~~

It is for all llu usage.

Kind regards,
Petr

#4 lore raw

PATCH v5 1/1 Testing statx syscall

Hi,

Quoted 26 lines

Review

Quoted 5 lines
(quoted diff) +5 -0
+AC_CHECK_FUNCS(statx,,)
+])
+AC_CHECK_MEMBERS([struct statx.stx_mask, struct statx.stx_blksize, struct statx.stx_attributes, struct statx.stx_nlink, struct statx.stx_uid, struct statx.stx_gid, struct statx.stx_mode, struct statx.stx_ino, struct statx.stx_size, struct statx.stx_blocks, struct statx.stx_attributes_mask, struct statx.stx_rdev_minor, struct statx.stx_mtime, struct statx.stx_atime, struct statx.stx_btime, struct statx.stx_ctime, struct statx.stx_rdev_major, struct statx.stx_dev_major, struct statx.stx_dev_minor])
+
+AC_CHECK_MEMBERS([struct statx_timestamp tv_sec, struct statx_timestamp tv_nsec])

There is error in definition (end of function before AC_CHECK_MEMBERS calls + missing dot in second AC_CHECK_MEMBERS). Diff with fixes:

configure.ac +1 -0
index df64ce2e2..e1ecb32a7 100644
@@ -200,6 +200,7 @@ LTP_CHECK_OPENAT
 LTP_CHECK_EXECVEAT
 LTP_CHECK_RENAMEAT
 LTP_CHECK_RENAMEAT2
+LTP_CHECK_STATX
 LTP_CHECK_FALLOCATE
 LTP_CHECK_SYSCALL_FCNTL
 LTP_CHECK_SYSCALL_PERF_EVENT_OPEN
m4/ltp-statx.m4 +0 -0
index 547172ebc..dec161567 100644

m4/ltp-statx.m4 dnl ---------------------------- · line 28

Quoted 9 lines
m4/ltp-statx.m4 +2 -2
@@ -22,7 +22,7 @@ dnl ----------------------------
 dnl
 AC_DEFUN([LTP_CHECK_STATX],[
 AC_CHECK_FUNCS(statx,,)
-])
 AC_CHECK_MEMBERS([struct statx.stx_mask, struct statx.stx_blksize, struct statx.stx_attributes, struct statx.stx_nlink, struct statx.stx_uid, struct statx.stx_gid, struct statx.stx_mode, struct statx.stx_ino, struct statx.stx_size, struct statx.stx_blocks, struct statx.stx_attributes_mask, struct statx.stx_rdev_minor, struct statx.stx_mtime, struct statx.stx_atime, struct statx.stx_btime, struct statx.stx_ctime, struct statx.stx_rdev_major, struct statx.stx_dev_major, struct statx.stx_dev_minor])
 
-AC_CHECK_MEMBERS([struct statx_timestamp tv_sec, struct statx_timestamp tv_nsec])
+AC_CHECK_MEMBERS([struct statx_timestamp.tv_sec, struct statx_timestamp.tv_nsec])
+])

Actually, #include <linux/stat.h> is required for AC_CHECK_MEMBERS:
AC_CHECK_MEMBERS([struct statx.stx_mask, struct statx.stx_blksize, struct statx.stx_attributes, struct statx.stx_nlink, struct statx.stx_uid, struct statx.stx_gid, struct statx.stx_mode, struct statx.stx_ino, struct statx.stx_size, struct statx.stx_blocks, struct statx.stx_attributes_mask, struct statx.stx_rdev_minor, struct statx.stx_mtime, struct statx.stx_atime, struct statx.stx_btime, struct statx.stx_ctime, struct statx.stx_rdev_major, struct statx.stx_dev_major, struct statx.stx_dev_minor],,, [[#include <linux/stat.h>]]) AC_CHECK_MEMBERS([struct statx_timestamp.tv_sec, struct statx_timestamp.tv_nsec],,, [[#include <linux/stat.h>]])
+])

BTW: not sure if all struct members need to be checked for.

Kind regards,
Petr