Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fuser/fork #1275

Closed
wants to merge 12 commits into from
Closed

Fuser/fork #1275

wants to merge 12 commits into from

Conversation

ujinho
Copy link
Contributor

@ujinho ujinho commented Feb 20, 2025

Fuser fork rebase check

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license and I agree to the terms of the Developer Certificate of Origin (DCO).

cberner and others added 12 commits November 22, 2024 08:24
Using the same cache key across multiple jobs can cause issues if we make assumption about it's content (like installing tools if not hit on the cache).
During certain operation, macOS use some helper that send request to the mountpoint with `crtime` set to `0xffff83da4f80`.
That value correspond to `-2_082_844_800u64` which is the difference between the date 1904-01-01 and 1970-01-01 because macOS epoch start at 1904 and not 1970.

<macfuse/macfuse#1042>

Fix awslabs#217
Co-authored-by: Daniel Carl Jones <[email protected]>
Currently the Filesystem trait forces only a single request dispatch
loop, with the idea that a filesystem that wants to be concurrent can
just spawn its own threads and dispatch operations on them itself. This
works, but it's bad for performance, because it forces every request to
bounce across threads.

Instead, let's make the Filesystem trait use interior mutability. This
allows us to spawn multiple dispatch threads that each block on the FUSE
device, read a request, and immediately dispatch it without the bounce.

Unfortunately there's not a good way for a trait to be variant in
mutability, so this is a breaking API change. We'll need to think more
carefully about how to upstream this change.

Signed-off-by: James Bornholt <[email protected]>
Add `is_forget()` method to `Request`.
Signed-off-by: Alessandro Passaro <[email protected]>
Introduce `Session::run_with_callbacks()` to notify callers before and after kernel
messages are dispatched.

Signed-off-by: Alessandro Passaro <[email protected]>
## Description of change

fuser v0.15.0 added support for creating sessions from FUSE fd. I'm
working on a PR to add this support to Mountpoint. We still need to open
the FUSE device and call `mount` syscall in order to test this new
behavior, and all this logic is already exists with `mnt::Mount`.

We could just copy the logic from `mnt::Mount` - but since we already
have this fork, making this change seemed fine to me. Maybe we can also
consider upstreaming it.

## Does this change impact existing behavior?

No

## Does this change need a changelog entry in any of the crates?

No

---

By submitting this pull request, I confirm that my contribution is made
under the terms of the Apache 2.0 license and I agree to the terms of
the [Developer Certificate of Origin
(DCO)](https://developercertificate.org/).

Signed-off-by: Burak Varli <[email protected]>
Our fuser fork emits a lot of warnings during builds, impacting our pull
requests. This change addresses missing documentation on one struct in
fuser (which was introduced by our change in
awslabs#1098).

This change is a good candidate to be contributed to upstream. Once
contributed, this commit can be removed.

Relevant issues: N/A

No.

---

By submitting this pull request, I confirm that my contribution is made
under the terms of the Apache 2.0 license and I agree to the terms of
the [Developer Certificate of Origin
(DCO)](https://developercertificate.org/).

---------

Signed-off-by: Daniel Carl Jones <[email protected]>
@ujinho ujinho closed this Feb 20, 2025
@ujinho ujinho mentioned this pull request Feb 20, 2025
@ujinho ujinho deleted the fuser/fork branch February 20, 2025 17:15
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

7 participants