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

Mount and unmount programmatically #5

Merged
merged 33 commits into from
Sep 5, 2022

Conversation

infeo
Copy link
Member

@infeo infeo commented Sep 2, 2022

This PR refactors mount and unmounting for fuse filesystems.

Instead of calling fuse_main_real() and getting a reference later in the fuse_init() method, we directly use the apprpiate calls sequence with fuse_new(...), fuse_mount(...)`. (the actual sequence depends on used fuse version, see https://github.com/libfuse/libfuse/releases?q=3.0.0&expanded=true and search for "typical initialization sequence" )

This allows the lib consumer to programmatically unmount the volume. (by invoking fuse.close())

overheadhunter and others added 23 commits February 16, 2022 13:48
replaced with `fuse_mount, fuse_new, fuse_loop, fuse_unmount, fuse_exit, fuse_destroy`
# Conflicts:
#	jfuse-api/src/main/java/org/cryptomator/jfuse/api/Fuse.java
#	jfuse-tests/src/test/java/org/cryptomator/jfuse/tests/MirrorIT.java
# Conflicts:
#	jfuse-api/src/main/java/org/cryptomator/jfuse/api/Fuse.java
#	jfuse-linux-aarch64/pom.xml
#	jfuse-linux-aarch64/src/main/java/org/cryptomator/jfuse/linux/aarch64/FuseImpl.java
#	jfuse-linux-aarch64/src/main/java/org/cryptomator/jfuse/linux/aarch64/extr/constants$0.java
#	jfuse-linux-aarch64/src/main/java/org/cryptomator/jfuse/linux/aarch64/extr/fuse_h.java
#	jfuse-linux-amd64/pom.xml
#	jfuse-linux-amd64/src/main/java/org/cryptomator/jfuse/linux/amd64/extr/Constants$root.java
#	jfuse-linux-amd64/src/main/java/org/cryptomator/jfuse/linux/amd64/extr/RuntimeHelper.java
#	jfuse-linux-amd64/src/main/java/org/cryptomator/jfuse/linux/amd64/extr/constants$0.java
#	jfuse-linux-amd64/src/main/java/org/cryptomator/jfuse/linux/amd64/extr/errno_h.java
#	jfuse-linux-amd64/src/main/java/org/cryptomator/jfuse/linux/amd64/extr/fcntl_h.java
#	jfuse-linux-amd64/src/main/java/org/cryptomator/jfuse/linux/amd64/extr/fuse_conn_info.java
#	jfuse-linux-amd64/src/main/java/org/cryptomator/jfuse/linux/amd64/extr/fuse_context.java
#	jfuse-linux-amd64/src/main/java/org/cryptomator/jfuse/linux/amd64/extr/fuse_file_info.java
#	jfuse-linux-amd64/src/main/java/org/cryptomator/jfuse/linux/amd64/extr/fuse_fill_dir_t.java
#	jfuse-linux-amd64/src/main/java/org/cryptomator/jfuse/linux/amd64/extr/fuse_h.java
#	jfuse-linux-amd64/src/main/java/org/cryptomator/jfuse/linux/amd64/extr/fuse_operations.java
#	jfuse-linux-amd64/src/main/java/org/cryptomator/jfuse/linux/amd64/extr/stat.java
#	jfuse-linux-amd64/src/main/java/org/cryptomator/jfuse/linux/amd64/extr/stat_h.java
#	jfuse-linux-amd64/src/main/java/org/cryptomator/jfuse/linux/amd64/extr/statvfs.java
#	jfuse-linux-amd64/src/main/java/org/cryptomator/jfuse/linux/amd64/extr/timespec.java
#	jfuse-mac/pom.xml
#	jfuse-mac/src/main/java/org/cryptomator/jfuse/mac/extr/Constants$root.java
#	jfuse-mac/src/main/java/org/cryptomator/jfuse/mac/extr/RuntimeHelper.java
#	jfuse-mac/src/main/java/org/cryptomator/jfuse/mac/extr/constants$0.java
#	jfuse-mac/src/main/java/org/cryptomator/jfuse/mac/extr/errno_h.java
#	jfuse-mac/src/main/java/org/cryptomator/jfuse/mac/extr/fcntl_h.java
#	jfuse-mac/src/main/java/org/cryptomator/jfuse/mac/extr/fuse_conn_info.java
#	jfuse-mac/src/main/java/org/cryptomator/jfuse/mac/extr/fuse_context.java
#	jfuse-mac/src/main/java/org/cryptomator/jfuse/mac/extr/fuse_file_info.java
#	jfuse-mac/src/main/java/org/cryptomator/jfuse/mac/extr/fuse_fill_dir_t.java
#	jfuse-mac/src/main/java/org/cryptomator/jfuse/mac/extr/fuse_h.java
#	jfuse-mac/src/main/java/org/cryptomator/jfuse/mac/extr/fuse_operations.java
#	jfuse-mac/src/main/java/org/cryptomator/jfuse/mac/extr/stat.java
#	jfuse-mac/src/main/java/org/cryptomator/jfuse/mac/extr/stat_h.java
#	jfuse-mac/src/main/java/org/cryptomator/jfuse/mac/extr/statvfs.java
#	jfuse-mac/src/main/java/org/cryptomator/jfuse/mac/extr/timespec.java
#	jfuse-tests/src/test/java/org/cryptomator/jfuse/tests/MirrorIT.java
see docs of fuse_lowlevel.h → fuse_session_unmount()
# Conflicts:
#	jfuse-linux-aarch64/src/main/java/org/cryptomator/jfuse/linux/aarch64/FuseImpl.java
#	jfuse-linux-aarch64/src/main/java/org/cryptomator/jfuse/linux/aarch64/extr/fuse_h.java
#	jfuse-linux-amd64/src/main/java/org/cryptomator/jfuse/linux/amd64/FuseImpl.java
#	jfuse-linux-amd64/src/main/java/org/cryptomator/jfuse/linux/amd64/extr/constants$0.java
#	jfuse-linux-amd64/src/main/java/org/cryptomator/jfuse/linux/amd64/extr/fuse_h.java
#	jfuse-mac/src/main/java/org/cryptomator/jfuse/mac/FuseImpl.java
#	libfuse2
@overheadhunter overheadhunter changed the title Feature/unmount on close Mount and unmount programmatically Sep 3, 2022
@overheadhunter overheadhunter merged commit 4ebe376 into develop Sep 5, 2022
@overheadhunter overheadhunter deleted the feature/unmount-on-close branch September 5, 2022 13:50
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.

2 participants