108 Commits

Author SHA1 Message Date
Bill Zissimopoulos
bb3e92df6c
sys, dll: implement POSIX semantics for Rename 2021-10-21 15:39:25 +01:00
Bill Zissimopoulos
a4d7aee6f5
dll: fuse: implement new Delete design and POSIX semantics 2021-10-19 17:54:01 +01:00
Bill Zissimopoulos
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
Bill Zissimopoulos
6e3a8f70b2
update source copyright to 2021 2021-05-21 15:57:05 -07:00
Bill Zissimopoulos
9d5efe5f98
dll: fuse: FileSecurity option 2021-01-25 16:54:59 -08:00
Bill Zissimopoulos
e71aea8ad7
dll: fuse: ReadDirectory: log invalid directory entries 2020-04-15 15:07:01 -07:00
Bill Zissimopoulos
9066338220
dll: fuse: ReadDirectory: log invalid directory entries 2020-04-14 22:54:46 -07:00
Bill Zissimopoulos
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
Pedro Frejo
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
Bill Zissimopoulos
aedf01a384
update source copyright for 2020 2020-01-02 17:50:40 -08:00
Bill Zissimopoulos
5131ed5c01
Merge branch 'bdutro-o_append-fix' 2019-10-21 20:14:02 -07:00
Brett Dutro
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
Bill Zissimopoulos
3a12d928e5 dll: fuse: avoid calling fgetattr on directories 2019-07-01 00:00:37 -07:00
Bill Zissimopoulos
c01402443d wslinux support: ATOMIC_CREATE_ECP_CONTEXT 2019-04-27 15:30:57 -07:00
Bill Zissimopoulos
4f444b412e dll: fuse: create_file_mask, create_dir_mask options 2019-04-16 15:16:54 -07:00
Bill Zissimopoulos
3c3163c41b dll; fuse: rename dot_hidden option to dothidden 2019-04-16 12:11:43 -07:00
Bill Zissimopoulos
8beb534340 dll: fuse: dot_hidden option adds hidden file attribute on dot files 2019-04-15 16:30:00 -07:00
Bill Zissimopoulos
4e7d2fd204
tst: passthrough-fuse: xattr 2019-03-26 17:25:46 -07:00
Bill Zissimopoulos
732e6cc38c
grand EaSize patch; passes winfsp-tests and ifstest 2019-03-21 18:14:15 -07:00
Bill Zissimopoulos
8c6d037332
dll: fuse: extended attributes support 2019-03-20 14:32:00 -07:00
Bill Zissimopoulos
d2de5e996c
update source copyright for 2019 2019-02-28 10:39:31 -08:00
Fritz Elfert
f97b8fcc3a Fix #213 and a typo in macro FSP_FUSE_CTLCODE_FROM_IOCTL 2019-02-12 11:51:07 +01:00
Bill Zissimopoulos
75ae8daf8f
update commercial disclaimer 2018-08-21 18:09:33 -07:00
Bill Zissimopoulos
5d73687de8
dll: fuse: refactoring 2018-07-25 13:33:15 -07:00
Bill Zissimopoulos
0d819eb800
dll: fuse3: testing 2018-07-25 10:28:33 -07:00
Bill Zissimopoulos
ab3f3d2827
dll: fuse3: fuse2to3 implementation 2018-07-18 04:11:20 -07:00
Bill Zissimopoulos
3dc09b2496
dll: fuse: remove dll/fuse/shared.h 2018-07-16 14:21:57 -07:00
Bill Zissimopoulos
27d03d4323
dll: fuse: ENOSYS has different values on Windows vs Cygwin 2018-07-16 09:50:21 -07:00
Bill Zissimopoulos
fbcefe6339
dll: fuse: ioctl 2018-05-07 14:05:18 -07:00
Bill Zissimopoulos
7d56b9c23d
dll: fuse: GetSecurityByName: correctly handle "not found" paths with symlinks 2018-04-30 14:18:03 -07:00
Bill Zissimopoulos
deb237f7b0
dll: fuse: fsp_fuse_intf_AddDirInfo: avoid deadlock with ReaddirPlus and symlinks 2018-04-30 13:31:06 -07:00
Bill Zissimopoulos
994e232fb3
fuse: add create_umask option 2018-04-17 12:46:13 -07:00
Bill Zissimopoulos
9bd9cf4fbd
update source copyright notices for 2018 2018-01-03 15:29:38 -08:00
Bill Zissimopoulos
c2b066a054
dll: fuse: Create: do not add FILE_ATTRIBUTE_ARCHIVE for directories 2017-12-04 14:16:24 -08:00
Bill Zissimopoulos
266e0f4bab
dll: fuse: call chflags from Create and Overwrite
tst: winfsp-tests: file attributes test
2017-12-04 14:08:44 -08:00
Bill Zissimopoulos
d02030897d
dll: fuse: add O_EXCL during FUSE create op 2017-12-03 19:56:36 -08:00
Bill Zissimopoulos
48ad297df1
dll: fuse: setcrtime, setchgtime 2017-11-14 21:55:09 -08:00
Bill Zissimopoulos
658d873efb
dll: fuse: streamline time calculations 2017-11-14 21:37:50 -08:00
Bill Zissimopoulos
895bf67691
dll: fuse: implement BSD flags support 2017-11-14 09:11:51 -08:00
Bill Zissimopoulos
e06fe4153d
dll: fuse: implement BSD flags support 2017-11-13 20:44:49 -08:00
Bill Zissimopoulos
4b7684122b dll: fuse: disable GetDirInfoByName when file system is case-insensitive 2017-10-01 11:07:01 -07:00
Bill Zissimopoulos
aae0a5bc74 dll: fuse: GetDirInfoByName 2017-09-28 16:55:45 -07:00
saibotu
9a88791f61
dll: fuse: don't decrease FileSize on write 2017-09-15 13:32:08 +02:00
Bill Zissimopoulos
9deb9d5319 dll: fuse: winpid_to_pid 2017-07-12 23:45:40 -07:00
Bill Zissimopoulos
7302b4baea dll: originating process id 2017-07-12 20:18:35 -07:00
Bill Zissimopoulos
fc1586eb82 dll: originating process id 2017-07-12 18:53:12 -07:00
Bill Zissimopoulos
a29611fa2a dll: fuse: improve volname option handling 2017-03-19 18:06:21 -07:00
Sam Kelly
c085a91991 add FUSE support for VolumeLabel via "volname" option
* closes #64
2017-03-19 00:40:45 -04:00
Bill Zissimopoulos
0980365082 dll: fuse: fuse_intf_GetVolumeInfo: return default info when statfs unimplemented 2017-03-09 14:59:01 -08:00
Bill Zissimopoulos
712870ddd9 tst: passthrough-fuse: FSP_FUSE_CAP_* 2017-02-13 21:53:37 -08:00