Add Linux XFS loop storage fallback#41
Merged
Merged
Conversation
JanJakes
added a commit
that referenced
this pull request
May 15, 2026
Present ForkPress as a ready product with concise install, branch, merge, Git, agent, storage, log, command, and build guidance. Remove outdated implementation-heavy sections and document the COW storage cascade including the Linux XFS loop fallback from PR #41.
JanJakes
added a commit
that referenced
this pull request
May 15, 2026
Present ForkPress as a ready product with concise install, branch, merge, Git, agent, storage, log, command, and build guidance. Remove outdated implementation-heavy sections and document the COW storage cascade including the Linux XFS loop fallback from PR #41.
JanJakes
added a commit
that referenced
this pull request
May 15, 2026
Present ForkPress as a ready product with concise install, branch, merge, Git, agent, storage, log, command, and build guidance. Remove outdated implementation-heavy sections and document the COW storage cascade including the Linux XFS loop fallback from PR #41.
JanJakes
added a commit
that referenced
this pull request
May 15, 2026
Present ForkPress as a ready product with concise install, branch, merge, Git, agent, storage, log, command, and build guidance. Remove outdated implementation-heavy sections and document the COW storage cascade including the Linux XFS loop fallback from PR #41.
JanJakes
added a commit
that referenced
this pull request
May 15, 2026
Present ForkPress as a ready product with concise install, branch, merge, Git, agent, storage, log, command, and build guidance. Remove outdated implementation-heavy sections and document the COW storage cascade including the Linux XFS loop fallback from PR #41.
JanJakes
added a commit
that referenced
this pull request
May 15, 2026
Present ForkPress as a ready product with concise install, branch, merge, Git, agent, storage, log, command, and build guidance. Remove outdated implementation-heavy sections and document the COW storage cascade including the Linux XFS loop fallback from PR #41.
JanJakes
added a commit
that referenced
this pull request
May 15, 2026
Present ForkPress as a ready product with concise install, branch, merge, Git, agent, storage, log, command, and build guidance. Remove outdated implementation-heavy sections and document the COW storage cascade including the Linux XFS loop fallback from PR #41.
JanJakes
added a commit
that referenced
this pull request
May 15, 2026
Present ForkPress as a ready product with concise install, branch, merge, Git, agent, storage, log, command, and build guidance. Remove outdated implementation-heavy sections and document the COW storage cascade including the Linux XFS loop fallback from PR #41.
Use native reflinks first, then fall back on Linux to one shared reflink-capable XFS image mounted through direct loop ioctls and mount(2). Embed the compressed XFS template and route mounted branch storage through per-site directories inside the shared volume.
Keep automatic stop paths from detaching the shared XFS volume while another Linux XFS site is still running. Detect interrupted XFS setup from the mounted per-site directory even when site.toml is missing, and print deletion cleanup that includes the hidden per-site XFS data directory.
This was referenced May 15, 2026
Closed
Closed
Merged
JanJakes
added a commit
that referenced
this pull request
May 15, 2026
## Release `v0.1.14` Version bump and release metadata update for `v0.1.14`. **Changelog draft:** * Add remote-site cache branching ([#40](#40)) * Bootstrap Starlight documentation site ([#42](#42)) * Add COW mergeback and audit model * Polish branch merge UI and harden audit follow-ups * Guard COW row merges against target trigger rewrites * Rewrite README and restructure documentation ([#47](#47)) * Add Linux XFS loop storage fallback ([#41](#41)) * Harden merge reliability gates and semantic coverage ([#46](#46)) * Automate release preparation and publishing ([#50](#50)) * Harden release prepare authentication ([#53](#53)) * Fix release prepare status parsing ([#54](#54)) * Polish release pull request handling ([#56](#56)) * Clarify release workflow stages **Full changelog:** v0.1.13-windows-cow.3...release/v0.1.14 ## Next steps 1. **Review** the changes in this pull request. 2. **Push** any additional edits to this branch (`release/v0.1.14`). 3. **Merge** this pull request to publish `v0.1.14`. Merging will automatically build ForkPress binaries, create a GitHub release, and update the Homebrew formula. Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
linux-xfs-loopas the Linux fallback after nativeFICLONEreflink probing fails.mount(2)/umount2(2), avoiding runtime calls tomount,losetup, ormkfs.Notes
The fallback is viable but still requires loop-device and mount privileges on Linux, usually root or
CAP_SYS_ADMIN. If those privileges are unavailable, ForkPress reports the setup failure and falls back to full file-copy materialization.If XFS setup fails after this process mounted the shared image, ForkPress detaches that partial mount before considering file-copy fallback. If cleanup fails, setup returns the cleanup error instead of recording file-copy while leaving a shared XFS mount behind.
Validation
cargo check --target x86_64-unknown-linux-musl -p forkpress-storagecargo check --target aarch64-unknown-linux-musl -p forkpress-storagecargo check --target x86_64-unknown-linux-gnu -p forkpress-storagecargo test --workspace --exclude forkpress-cliFORKPRESS_RUNTIME_BUNDLE=/dev/null cargo test -p forkpress-cliFORKPRESS_RUNTIME_BUNDLE=/dev/null cargo test -p forkpress-cli --features dev-experiments --bin forkpress-devmake test-allcargo test -p forkpress-storagecp --reflink=alwaysCOW behavior