590 Commits

Author SHA1 Message Date
Bill Zissimopoulos
a4d7aee6f5
dll: fuse: implement new Delete design and POSIX semantics 2021-10-19 17:54:01 +01:00
Bill Zissimopoulos
19823d84de
sys,dll,inc: implement new Delete design and POSIX semantics 2021-10-19 15:23:15 +01:00
Bill Zissimopoulos
490d021b22
dll: mount: MountDoNotUseLauncher registry setting 2021-08-11 16:27:29 +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
ca832988ed
dll,sys: fix issue #369
The original WinFsp protocol for shutting down a file system was to issue
an FSP_FSCTL_STOP control code to the fsctl device. This would set the IOQ
to the "stopped" state and would also cancel all active IRP's. Cancelation
of IRP's would sometimes free buffers that may have still been in use by
the user mode file system threads; hence access violation.

To fix this problem a new control code FSP_FSCTL_STOP0 is introduced. The
new file system shutdown protocol is backwards compatible with the original
one and works as follows:

- First the file system process issues an FSP_FSCTL_STOP0 control code which
sets the IOQ to the "stopped" state but does NOT cancel IRP's.

- Then the file system process waits for its dispatcher threads to complete
(see FspFileSystemStopDispatcher).

- Finally the file system process issues an FSP_FSCTL_STOP control code
which stops the (already stopped) IOQ and cancels all IRP's.
2021-05-18 12:30:17 -07:00
Bill Zissimopoulos
023c925fb6
WinFsp rebranding support 2021-04-12 17:47:34 -07:00
Bill Zissimopoulos
9d5efe5f98
dll: fuse: FileSecurity option 2021-01-25 16:54:59 -08:00
gaotxg
a939d9997b
Credential: Default do not save password
If user want to save password, click save and credential window won't appear again.
Do not remember password should be default option.
2020-12-30 11:19:57 +08:00
Bill Zissimopoulos
c803ef24f8
dll: fuse: truncate fixed size options
Some options (VolumePrefix, FileSystemName, volname) have a fixed maximum size.
This commit adds functionality to truncate user-specified long options to their fixed maximum size.
2020-12-22 15:44:37 -08:00
Bill Zissimopoulos
2d5d058d2f
dll: FspFsctlStartService:make thread safe 2020-12-19 11:05:24 -08:00
Bill Zissimopoulos
b3058a5e3e
shared: minimal.h: STRTOINT 2020-11-06 09:41:49 -08:00
Bill Zissimopoulos
bd0d6638b0
dll: posix: trustPosixOffset 2020-11-03 12:31:13 -08:00
Bill Zissimopoulos
f1cf020272
dll: fuse: allow mount manager mountpoints 2020-10-29 15:28:14 -07:00
Bill Zissimopoulos
6340811974
dll: fuse: fsp_fuse_notify: handle case-insensitive file systems 2020-10-21 15:45:07 -07:00
Bill Zissimopoulos
cd21d26b93
dll: fuse: fsp_fuse_notify
Correctly compute Windows change notification filter and action
from FUSE change notification action.
2020-10-19 18:17:05 -07:00
Bill Zissimopoulos
e54c2288f7
dll: fuse: fuse_notify 2020-10-10 10:15:36 -07:00
Bill Zissimopoulos
a004e4be10
sys: notify implementation 2020-10-08 20:49:24 -07:00
Bill Zissimopoulos
88edf5723e
sys: notify implementation 2020-10-08 16:56:31 -07:00
Bill Zissimopoulos
7f360827f6
sys: notify implementation 2020-10-08 15:31:41 -07:00
Bill Zissimopoulos
844fb7171e
inc,dll,sys: notify implementation skeleton 2020-10-06 16:37:33 -07:00
Bill Zissimopoulos
aa3beba928
sys: silo support 2020-06-05 15:47:19 -07:00
Bill Zissimopoulos
01744e8193
launcher: Stderr registry setting
This commit adds a new Stderr registry setting that can be used to redirect
the standard error output of a launched service instance.
2020-04-25 00:48:40 -07:00
Bill Zissimopoulos
0268e51099
dll: launch: registry: support Recovery setting 2020-04-16 16:08:55 -07: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
Bill Zissimopoulos
24b5d48fed
add shared/ku/config.h and related changes 2020-02-07 15:40:08 -08:00
Bill Zissimopoulos
0650cabc47
refactor: shared->shared/um, ku->shared/ku 2020-02-07 15:28:25 -08:00
Bill Zissimopoulos
71995a1fcd
dll,sys: FSP_CFG_REJECT_EARLY_IRP
Includes Avast fix for FUSE.
2020-02-07 15:11:24 -08:00
Bill Zissimopoulos
91c36b8f09
dll: FspFileSystemResolveReparsePointsInternal: fix warning 2020-02-07 14:54:09 -08:00
Bill Zissimopoulos
896c00a08c
Merge branch 'pvt-reject-irp' 2020-02-07 13:29:19 -08:00
Bill Zissimopoulos
52663ec676
dll: FspFileSystemResolveReparsePoints
Fix junction handling.
2020-02-04 15:37:17 -08:00
Bill Zissimopoulos
0901fb6477
inc,sys,tst: FSP_FSCTL_VOLUME_PARAMS::RejectIrpPriorToTransact0 2020-02-03 16:43:15 -08:00
Bill Zissimopoulos
bf6d56ceac
inc,sys,tst: FSP_FSCTL_VOLUME_PARAMS::RejectIrpPriorToTransact0 2020-02-03 16:38:55 -08: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
14ac0f8db9
dll: FspFileSystemOpCreate_FileOpenTargetDirectory 2020-01-15 13:26:29 -08:00
Gal Hammer
ac306c2ce1 dll: open as directory when file's parent directory should be opened. 2020-01-05 09:09:05 +02: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
6f585ce63e
Merge pull request #251 from johntyner/feature/remove-fuse-prefix
Remove "FUSE-" prefix from file system name when using FUSE API
2019-10-07 14:05:18 -07:00
John Tyner
8f90305726 add support for setting file system name without 'FUSE-' prefix 2019-10-07 07:05:01 -07:00
John Tyner
490d0577bb Revert "Remove 'FUSE-' prefix from file system name when using fuse interface"
This reverts commit 7d2ff3afeb768b610867861489152e0c31ade16d.
2019-10-07 06:47:02 -07:00
John Tyner
7d2ff3afeb Remove 'FUSE-' prefix from file system name when using fuse interface 2019-09-24 20:04:29 -07:00
Bill Zissimopoulos
c415c87195
dll: FspMountSet, FspMountRemove 2019-09-24 15:34:01 -07:00
Bill Zissimopoulos
05b37c744b
sys,dll: only user mode sends MountManager IOCTL's
(except for cleanup in FspMountdevFini)
2019-09-08 17:45:00 -07:00
Bill Zissimopoulos
4655926d03
sys, dll: mount manager support 2019-09-06 14:24:00 -07:00
Bill Zissimopoulos
565caebe4c
sys,dll: FspFileSystemSetMountPoint: mount manager support 2019-09-05 19:58:14 -07:00
Bill Zissimopoulos
fb6893968a dll: fuse: add --UserName and --GroupName 2019-07-08 15:12:26 -07:00