Skip to content

Use fuse3#14

Open
sithglan wants to merge 1 commit intopcarrier:masterfrom
sithglan:fuse3
Open

Use fuse3#14
sithglan wants to merge 1 commit intopcarrier:masterfrom
sithglan:fuse3

Conversation

@sithglan
Copy link
Copy Markdown

This patch uses fuse3 instead of fuse2 in order to support afuse in Debian forky. A lot of the utility functions use an additional parameter which is not used and ignored (fi). The rename function has an extra flags parameter which make it possible to not overwrite if a file exists or make the rename atomic. We return an error if the flags parameter is set, since neither is implemented. fuse_main takes an extra parameter for private data. Since we don't use that, we pass a zero. The extra parameter for the filler allows the kernel to prefill the values, since we don't use that, we pass a zero. utime was replaced by utimens which takes now a struct timespec tv[2] parameter instead of the old struct utimebuf *buf pointer. It also takes an extra parameter fi which is ignored, since it is not used in the implementation. In the utimens function the case PROC_PATH_PROXY_DIR is adopted to utimensat which was taken from the example documentation directory
/usr/share/doc/libfuse3-dev/examples/passthrough_ll.c:278 Otherwise is unchanged. ftruncate and fgetattr callbacks are dropped due to being provided by fuse3.

This patch uses fuse3 instead of fuse2 in order to support
afuse in Debian forky. A lot of the utility functions use an additional
parameter which is not used and ignored (fi). The rename function has an
extra flags parameter which make it possible to not overwrite if a file
exists or make the rename atomic. We return an error if the flags parameter
is set, since neither is implemented. fuse_main takes an extra parameter for
private data. Since we don't use that, we pass a zero. The extra parameter
for the filler allows the kernel to prefill the values, since we don't use
that, we pass a zero. utime was replaced by utimens which takes now a struct
timespec tv[2] parameter instead of the old struct utimebuf *buf pointer. It
also takes an extra parameter fi which is ignored, since it is not used in
the implementation. In the utimens function the case PROC_PATH_PROXY_DIR is
adopted to utimensat which was taken from the example documentation directory
/usr/share/doc/libfuse3-dev/examples/passthrough_ll.c:278 Otherwise is
unchanged. ftruncate and fgetattr callbacks are dropped due to being provided
by fuse3.

v2: Drop libfuse2 support to make patch easier to review
v3: Enable AC_SYS_LARGEFILE required by FUSE3 on 32-bit platforms

Signed-off-by: Thomas Glanzmann <thomas@glanzmann.de>
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.

1 participant