From bfddda2570331da2ae4387b530456e6c4e230257 Mon Sep 17 00:00:00 2001 From: Adhemerval Zanella Date: Mon, 29 Mar 2021 14:40:30 -0300 Subject: io: Check at runtime if timestamp supports nanoseconds Now that non-LFS stat function is implemented on to on LFS, it will use statx when available. It allows to check for nanosecond timestamp if the kernel supports __NR_statx. Checked on s390-linux-gnu with 4.12.14 kernel. --- io/tst-stat.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'io') diff --git a/io/tst-stat.c b/io/tst-stat.c index 397d480ecc..22b89bb3e7 100644 --- a/io/tst-stat.c +++ b/io/tst-stat.c @@ -25,6 +25,7 @@ #include #include #include +#include #include static void @@ -73,6 +74,10 @@ do_test (void) test_t tests[] = { stat_check, lstat_check, fstat_check, fstatat_check }; + bool check_ns = support_stat_nanoseconds (path); + if (!check_ns) + printf ("warning: timestamp with nanoseconds not supportted\n"); + for (int i = 0; i < array_length (tests); i++) { struct stat st; @@ -92,7 +97,7 @@ do_test (void) TEST_COMPARE (stx.stx_ctime.tv_sec, st.st_ctim.tv_sec); TEST_COMPARE (stx.stx_mtime.tv_sec, st.st_mtim.tv_sec); - if (support_stat_nanoseconds ()) + if (check_ns) { TEST_COMPARE (stx.stx_ctime.tv_nsec, st.st_ctim.tv_nsec); TEST_COMPARE (stx.stx_mtime.tv_nsec, st.st_mtim.tv_nsec); -- cgit v1.2.3-70-g09d2