microsoft / microsoft/WSL

WSl should support "birth" timestamps in |statx()| syscall for Windows filesystems

Open
#12,543 3 comments 1 reaction 0 assignees View on GitHub
feature file system
Dominant language
C++
Stars
33.7k
Forks
1.8k
Avg merge
3d 17h
Merged PRs (30d)
116

Description

WSl should support "birth" timestamps in |statx()| syscall for Windows filesystems (e.g. C:), e.g. map |FILE_BASIC_INFORMATION.CreationTime| to Linux |statx()| |struct statx.stx_btime|

**Describe the solution you'd like**
Solution: If |statx()| is called and triggers a |FILE_BASIC_INFORMATION| on the Windows kernel site, then map the |FILE_BASIC_INFORMATION.CreationTime| to the |struct statx.stx_btime|.

Note that if |FILE_BASIC_INFORMATION.CreationTime == 0| (or any other timestamp==0 in |FILE_BASIC_INFORMATION|), then the matching timestamp is NOT supported by that filesystem (e.g. modification time for CDROMs etc.). In that case the matching |statx_timestamp.tv_sec| and |statx_timestamp.tv_nsec| MUST be set to |-1| to reflect that the timestamp is not supported.

Contributor guide

Open the contributing guide

Research direction

The issue identifies statx(), FILE_BASIC_INFORMATION, CreationTime, and struct statx.stx_btime as the relevant entry points. Start by locating WSL's statx handling for Windows filesystems; done means CreationTime maps to stx_btime and zero timestamps produce tv_sec and tv_nsec values of -1.

Written by the indexing model from the issue text.

Assessment

Tech stack
linux
Domain
operating-systems
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.