dll: fuse: multiple improvements and fixes

- Symlinks: Now supports conventing a directory into a symlink reparse
point.

- Symlinks: The determination of whether a symlink is a file or
directory is now possible for file systems that do not support slashdot
(/.) queries.

- EA: Now allows the removal of non-existant EA without error (this is
allowed on Windows).
This commit is contained in:
Bill Zissimopoulos
2021-11-13 23:27:34 +00:00
parent ec3386c2b3
commit 0b94e8bc6a
8 changed files with 215 additions and 65 deletions

View File

@ -34,6 +34,7 @@
((struct fuse_context *)((PUINT8)(h) + sizeof(struct fsp_fuse_context_header)))
#define FSP_FUSE_HAS_SYMLINKS(f) ((f)->has_symlinks)
#define FSP_FUSE_HAS_SLASHDOT(f) ((f)->has_slashdot)
#define ENOSYS_(env) ('C' == (env)->environment ? 88 : 40)
@ -61,7 +62,7 @@ struct fuse
void *data;
unsigned conn_want;
BOOLEAN fsinit;
BOOLEAN has_symlinks;
BOOLEAN has_symlinks, has_slashdot;
UINT32 DebugLog;
FSP_FILE_SYSTEM_OPERATION_GUARD_STRATEGY OpGuardStrategy;
FSP_FSCTL_VOLUME_PARAMS VolumeParams;