Commit Graph

115 Commits

Author SHA1 Message Date
e5879a9cb0 dll: fuse: getpath 2022-04-12 15:44:54 +01:00
751eaa69df update source copyright to 2022 2022-01-07 17:30:49 +00:00
4e94991221 dll: fuse: revert the Delete redesign 2021-11-22 14:46:57 +00:00
378beb55eb dll: fuse: CheckSymlinkDirectory: optimization 2021-11-14 10:48:17 +00:00
0b94e8bc6a 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).
2021-11-13 23:27:47 +00:00
52dd6f7478 dll: fuse: FSP_FUSE_CAP_DELETE_ACCESS 2021-10-26 13:21:57 +01:00
73359d682b dll: fuse: convert EPERM/EACCES from unlink/rmdir to STATUS_CANNOT_DELETE 2021-10-25 13:58:52 +01:00
bb3e92df6c sys, dll: implement POSIX semantics for Rename 2021-10-21 15:39:25 +01:00
a4d7aee6f5 dll: fuse: implement new Delete design and POSIX semantics 2021-10-19 17:54:01 +01:00
f51bdef534 dll: fuse: fix path arg to release on Create error
When the kernel sends a `Create` message the WinFsp-FUSE layer creates
and opens the file (as per Windows semantics). Sometimes an additional
operation needs to be performed after the file has been opened, which
may fail. In this case the just opened file must be released.

In this particular case the WinFsp-FUSE layer used to call `release`
with an uninitialized path. This commit fixes the problem.

This problem was originally reported in cgofuse (billziss-gh/cgofuse#58)
2021-06-09 10:17:59 -07:00
6e3a8f70b2 update source copyright to 2021 2021-05-21 15:57:05 -07:00
9d5efe5f98 dll: fuse: FileSecurity option 2021-01-25 16:54:59 -08:00
e71aea8ad7 dll: fuse: ReadDirectory: log invalid directory entries 2020-04-15 15:07:01 -07:00
9066338220 dll: fuse: ReadDirectory: log invalid directory entries 2020-04-14 22:54:46 -07:00
b4c39f656c dll,fuse: allow dir buffer entry invalidation
The FUSE implementation of ReadDirectory issues readdir followed
by a slew of getattr. In the current implementation if a getattr fails
the whole readdir operation fails.

This commit adds the ability to invalidate individual entries in the
directory buffer. Entries for which getattr fails are now marked invalid
rather than fail the overall ReadDirectory operation.

See #292
2020-04-13 15:52:03 -07:00
dbfbcb547d Fixed data corruption when overwriting a file on a Fuse v3 filesystem
When a file of size "s" is overwritten, forcing "O_APPEND" flag
makes the server file offset to be placed "s" bytes in advance.
This caused subsequent write operations to be paded by "s" zeroes,
thus corrupting the file.
2020-01-23 21:31:56 +01:00
aedf01a384 update source copyright for 2020 2020-01-02 17:50:40 -08:00
5131ed5c01 Merge branch 'bdutro-o_append-fix' 2019-10-21 20:14:02 -07:00
b513128cfe In Windows, Go clears any write-related flags when O_APPEND is
specified. This causes WinFSP to think that any O_APPEND requests are
actually read-only. This adds an additional check for the
FILE_APPEND_DATA flag so that we can ensure the request is sent with at
least O_WRONLY and O_APPEND set.
2019-10-21 18:04:26 -05:00
3a12d928e5 dll: fuse: avoid calling fgetattr on directories 2019-07-01 00:00:37 -07:00
c01402443d wslinux support: ATOMIC_CREATE_ECP_CONTEXT 2019-04-27 15:30:57 -07:00
4f444b412e dll: fuse: create_file_mask, create_dir_mask options 2019-04-16 15:16:54 -07:00
3c3163c41b dll; fuse: rename dot_hidden option to dothidden 2019-04-16 12:11:43 -07:00
8beb534340 dll: fuse: dot_hidden option adds hidden file attribute on dot files 2019-04-15 16:30:00 -07:00
4e7d2fd204 tst: passthrough-fuse: xattr 2019-03-26 17:25:46 -07:00
732e6cc38c grand EaSize patch; passes winfsp-tests and ifstest 2019-03-21 18:14:15 -07:00
8c6d037332 dll: fuse: extended attributes support 2019-03-20 14:32:00 -07:00
d2de5e996c update source copyright for 2019 2019-02-28 10:39:31 -08:00
f97b8fcc3a Fix #213 and a typo in macro FSP_FUSE_CTLCODE_FROM_IOCTL 2019-02-12 11:51:07 +01:00
75ae8daf8f update commercial disclaimer 2018-08-21 18:09:33 -07:00
5d73687de8 dll: fuse: refactoring 2018-07-25 13:33:15 -07:00
0d819eb800 dll: fuse3: testing 2018-07-25 10:28:33 -07:00
ab3f3d2827 dll: fuse3: fuse2to3 implementation 2018-07-18 04:11:20 -07:00
3dc09b2496 dll: fuse: remove dll/fuse/shared.h 2018-07-16 14:21:57 -07:00
27d03d4323 dll: fuse: ENOSYS has different values on Windows vs Cygwin 2018-07-16 09:50:21 -07:00
fbcefe6339 dll: fuse: ioctl 2018-05-07 14:05:18 -07:00
7d56b9c23d dll: fuse: GetSecurityByName: correctly handle "not found" paths with symlinks 2018-04-30 14:18:03 -07:00
deb237f7b0 dll: fuse: fsp_fuse_intf_AddDirInfo: avoid deadlock with ReaddirPlus and symlinks 2018-04-30 13:31:06 -07:00
994e232fb3 fuse: add create_umask option 2018-04-17 12:46:13 -07:00
9bd9cf4fbd update source copyright notices for 2018 2018-01-03 15:29:38 -08:00
c2b066a054 dll: fuse: Create: do not add FILE_ATTRIBUTE_ARCHIVE for directories 2017-12-04 14:16:24 -08:00
266e0f4bab dll: fuse: call chflags from Create and Overwrite
tst: winfsp-tests: file attributes test
2017-12-04 14:08:44 -08:00
d02030897d dll: fuse: add O_EXCL during FUSE create op 2017-12-03 19:56:36 -08:00
48ad297df1 dll: fuse: setcrtime, setchgtime 2017-11-14 21:55:09 -08:00
658d873efb dll: fuse: streamline time calculations 2017-11-14 21:37:50 -08:00
895bf67691 dll: fuse: implement BSD flags support 2017-11-14 09:11:51 -08:00
e06fe4153d dll: fuse: implement BSD flags support 2017-11-13 20:44:49 -08:00
4b7684122b dll: fuse: disable GetDirInfoByName when file system is case-insensitive 2017-10-01 11:07:01 -07:00
aae0a5bc74 dll: fuse: GetDirInfoByName 2017-09-28 16:55:45 -07:00
9a88791f61 dll: fuse: don't decrease FileSize on write 2017-09-15 13:32:08 +02:00