public inbox for linux-fsdevel@vger.kernel.org
 help / color / mirror / Atom feed
* [RFC] Proposal: provenance_time (ptime) — a settable timestamp for cross-filesystem migration
@ 2026-03-25  4:26 Sean Smith
  2026-03-25  9:58 ` Andreas Dilger
  2026-03-25 10:47 ` Simon Richter
  0 siblings, 2 replies; 4+ messages in thread
From: Sean Smith @ 2026-03-25  4:26 UTC (permalink / raw)
  To: linux-fsdevel; +Cc: linux-ext4, tytso, dsterba, david, brauner, osandov

[Email draft produced by AI agent. Reviewed, revised, and submitted by
Sean Smith.]

Hello,

I am writing as a user whose work is directly harmed by the absence
of a settable file creation timestamp in the Linux kernel. I am not a
kernel developer, but I believe this use case may help inform the
ongoing design discussion about btime semantics.

BACKGROUND

I am a disabled Medicaid recipient pursuing pro se civil rights
litigation against Tennessee's Medicaid program. I am building
a suite of AI tools for my litigation. These tools will include
an agentic document management system on Linux
(EndeavourOS/Arch).

My current workflow requires migrating terabytes of case law,
evidence, research, AI Harness project files, and other data
from NTFS (Windows) to Btrfs (Linux) and vice versa. These
documents span years of case history — some created as far
back as 2014.

I've used Windows exclusively for the past 20 years, and so I
have much to migrate. I am abandoning Windows because it has
repeatedly gotten in the way as I work in OpenCode and with
other AI tools. Linux offers a clearer path to using AI to
build a user-first future. My litigation relies upon my AI
agents and I developing effective AI tools and data systems.
This reliance makes the nonsense that has been going on with
Windows 11 an existential threat. People with disabilities
should not have to ask permission from the legal community or
corporations to have human rights; with an open-source suite
of AI litigation tools, they won't have to.

I provide the above context so that you may better understand
the importance of adopting my modest proposal.

When files are copied from NTFS to Btrfs, every file's creation
date is reset to the moment of the copy. The kernel provides no
syscall to restore the original creation timestamp. The result
is that files created in 2019 after transfer will report being
created in 2026.

For litigation evidence, file creation timestamps are provenance
metadata. They establish when a document first came into existence
as a digital file. Losing this metadata during a routine filesystem
migration is a forensic integrity failure — it destroys the timeline
that courts, investigators, and opposing counsel may rely on.

For humans and for AI agents, the loss of this metadata limits
how well they can navigate and retrieve from the corpus of
files.

THE PROBLEM AS I UNDERSTAND IT

Omar Sandoval submitted working patches in February 2019 (AT_UTIME_BTIME
for utimensat). They were not merged due to disagreement about whether
btime should be mutable.

The core dispute, as I understand it from the mailing list archives:

  - Dave Chinner (XFS): btime is forensic metadata — the moment the
    inode was allocated on this specific filesystem. Allowing it to
    be changed destroys its value for filesystem forensic analysis.

  - Ted Ts'o (ext4, March 2025): Proposed distinguishing "btime"
    (forensic, immutable) from "crtime" (settable, for migration
    and Windows compatibility).

  - David Sterba (Btrfs): Acknowledged the need, has a WIP for a
    Btrfs-specific ioctl to set otime. Noted btrfs send/receive
    protocol v2 transmits otime but cannot write it.

Both sides have legitimate points. The impasse exists because one
field is being asked to serve two incompatible purposes.

PROPOSAL: provenance_time (ptime)

I propose a new timestamp concept: provenance_time, abbreviated ptime.

ptime is distinct from btime:

  btime = "when was this inode born on THIS filesystem"
          Forensic. Immutable. Set by the kernel at inode creation.
          Valuable for filesystem forensic analysis and intrusion
          detection. Dave Chinner's use case is preserved.

  ptime = "when did this file's content first come into existence,
          on any filesystem, as reported by the earliest known source"
          User-settable. Designed for cross-filesystem migration,
          backup/restore, and provenance tracking. Travels with
          the file across copies.

This is similar to Ted Ts'o's btime/crtime split, but with clearer
semantics:

  - "crtime" (creation time) is easily confused with "ctime" (change
    time) and with btime itself. The word "creation" is ambiguous —
    creation of the inode, or creation of the content?

  - "ptime" (provenance time) is unambiguous. It explicitly
    communicates: this timestamp records provenance — where and
    when this file originated. It makes no claim about the local
    inode's birth. It does not conflict with btime's forensic
    meaning.

ptime fits naturally into the existing timestamp schema:

  atime  - access time
  mtime  - modification time
  ctime  - change time (metadata)
  btime  - birth time (inode, forensic, immutable)
  ptime  - provenance time (origin, settable, travels with file)

IMPLEMENTATION NOTES (from a user's perspective)

  - ptime should be settable via utimensat() or a new dedicated
    syscall, with appropriate privilege requirements (CAP_FOWNER
    or similar).

  - Filesystems that store a creation timestamp (ext4, btrfs, xfs,
    ntfs, exfat) could optionally support ptime using an additional
    inode field, or by allowing the existing crtime/otime field to
    serve as ptime when a filesystem-specific flag is set (as Ted
    suggested for ext4).

  - Standard tools (cp, rsync, tar) could be updated to read and
    write ptime, finally resolving the long-standing inability to
    preserve creation timestamps during file migration on Linux.

  - NTFS-originated filesystems could map their creation time to
    ptime, making Windows-to-Linux migration seamless.

WHO THIS AFFECTS

This is not a niche concern. In researching this issue, I found:

  - Backup/restore users (Duplicati, rsync, rclone all lose btime)
  - Windows-to-Linux migrators frustrated by silent metadata loss
  - Digital forensics professionals whose MACB timelines break
  - Data archivists and media librarians
  - Users with memory/accessibility needs who rely on creation
    dates to track personal document timelines
  - A developer on StackOverflow needing to process 1.3 million
    files with preserved timestamps — no solution available
  - A 7zip developer filing an issue (Feb 2026) documenting that
    Linux extraction cannot preserve creation times

The common thread across these use cases is that the current
impasse — where btime's forensic semantics block any settable
timestamp — produces worse forensic outcomes than providing a
clearly-separated settable field would. The provenance data is
being destroyed precisely because there is no sanctioned place
to put it.

ptime resolves this by giving that data a home without
compromising btime's forensic meaning.

Thank you for considering this proposal.

Sincerely,
Sean Smith
DefendTheDisabled.org

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2026-03-26  2:29 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-03-25  4:26 [RFC] Proposal: provenance_time (ptime) — a settable timestamp for cross-filesystem migration Sean Smith
2026-03-25  9:58 ` Andreas Dilger
2026-03-25 10:47 ` Simon Richter
2026-03-26  2:29   ` Sean Smith

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox