-
Notifications
You must be signed in to change notification settings - Fork 483
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
[FUSE] Add ENOTSUP to ntstatus_from_errno
mapping
#531
Comments
Looking at the Linux man page for Looking at case (1) I agree that a good choice would have been to translate So although the |
Oh, i didn't know the second meaning (of being not valid). I understand your point and since FUSE is not a Windows native API, i guess we have to deal with this deficiency. The motivation for this ticket FR was, that we have a passthrough-filesystem, that initially implements the xattr methods, but if the underlying filesystem do not support extended attributes, returns ENOTSUP. This leads in combination with WinFsp to "access denied" errors for end users (see cryptomator/cryptomator#3207). Actually, you also sparked a solution in our case, by prechecking the underlying filesystem for extended attribute support and configure the passthrough-fs accordingly. Thanks! (: |
Enhancement Request
Summary
Add the mapping ENOTSUP -> STATUS_INVALID_REQUEST to
errno.i
.Description
WinFsp uses the function
fsp_fuse_ntstatus_from_errno
to map POSIX errors to Windows NTSTATUSes. By default,STATUS_ACCESS_DENIED
is returned and only a subset of POSIXs error codes are mapped to different statuses (mapping is defined inerrno.i
).One unmapped error code is ENOTSUP. This means fuse operations, which are implemented, but return in some/all cases ENOTSUP would always report ACCESS_DENIED to Windows, making the implementation not usable. A better mapping would be
STATUS_INVALID_REQUEST
, which is semantically at least vaguely familiar.Unfortunately, this would be a breaking change.
The text was updated successfully, but these errors were encountered: