RFR: 8316304: (fs) Add support for BasicFileAttributes.creationTime() for Linux [v5]

Alan Bateman alanb at openjdk.org
Tue Oct 3 10:18:37 UTC 2023


On Tue, 3 Oct 2023 10:02:32 GMT, Severin Gehwolf <sgehwolf at openjdk.org> wrote:

>> Please review this nio change which adds `BasicFileAttributes.creationTime()` support for Linux by means of the `statx` Linux specific system call. The patch does a dynamic lookup of the function and if it is available, uses it to set the support birth time capability in `UnixNativeDispatcher`. When `statx` is not available, it won't use it and fall back to the old behaviour on such systems. It should, however, compile fine on Linux systems not supporting the `statx` system call.
>> 
>> Testing:
>> - [x] GHA (MacOS X failure seems unrelated)
>> - [x] `java.nio` tests.
>> - [x] Manual builds and tests on older glibc versions (2.17 => fallback, 2.28+ => works). Compiles fine and falls back to the not supported case as it was before this patch.
>> 
>> Thoughts?
>
> Severin Gehwolf has updated the pull request incrementally with one additional commit since the last revision:
> 
>   Add support for nano seconds for btime on Linux

src/java.base/unix/native/libnio/fs/UnixNativeDispatcher.c line 350:

> 348: #if defined (__linux__) // Linux has nsec granularity
> 349:     attrs_st_birthtime_nsec = (*env)->GetFieldID(env, clazz, "st_birthtime_nsec", "J");
> 350:     CHECK_NULL_RETURN(attrs_st_birthtime_sec, 0);

This should check attrs_st_birthtime_nsec.

-------------

PR Review Comment: https://git.openjdk.org/jdk/pull/15792#discussion_r1343863736


More information about the nio-dev mailing list