RFR: 8316304: (fs) Add support for BasicFileAttributes.creationTime() for Linux [v3]
Brian Burkhalter
bpb at openjdk.org
Fri Sep 29 17:29:30 UTC 2023
On Fri, 29 Sep 2023 16:35:09 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 refreshed the contents of this pull request, and previous commits have been removed. The incremental views will show differences compared to the previous content of the PR. The pull request contains three new commits since the last revision:
>
> - Wrap copy_statx_attributes with ifdef __linux__
> - Fix compile warnings.
> - 8316304: (fs) Add support for BasicFileAttributes.creationTime() for Linux
test/jdk/java/nio/file/attribute/BasicFileAttributeView/CreationTime.java line 34:
> 32: */
> 33:
> 34: import java.lang.reflect.Method;
Instead of using reflective access, would it be possible to use the "os.version" property and a minimum kernel version (4.11?)?
jshell> System.getProperty("os.version")
$1 ==> "5.19.0-50-generic"
jshell>
bpb at bpb-vb-u2204:~$ uname -a
Linux bpb-vb-u2204 5.19.0-50-generic #50-Ubuntu SMP PREEMPT_DYNAMIC Mon Jul 10 18:24:29 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux```
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/15792#discussion_r1341635701
More information about the nio-dev
mailing list