134 Commits

Author SHA1 Message Date
Bill Zissimopoulos
751eaa69df
update source copyright to 2022 2022-01-07 17:30:49 +00:00
Bill Zissimopoulos
c208e0ecbd
sys: cache FileDesc->DispositionStatus
DeleteFileW and RemoveDirectoryW in recent versions of Windows 10 have
been changed to perform a FileDispositionInformationEx with POSIX
semantics and if that fails to retry with FileDispositionInformation.
Unfortunately this is done even for legitimate error codes such as
STATUS_DIRECTORY_NOT_EMPTY.

This means that user mode file systems have to do unnecessary CanDelete
checks even when they support FileDispositionInformationEx. The extra
check incurs extra context switches, and in some cases it may also be
costly to compute (e.g. FUSE).

We optimize this away by storing the status of the last CanDelete check
in the FileDesc and then continue returning the same status code for
all checks for the same FileDesc.
2021-12-04 12:36:12 +00:00
Bill Zissimopoulos
00219f29cf
sys: POSIX rename improvements 2021-11-25 10:35:22 +00:00
Bill Zissimopoulos
c4f994f8f6
sys: FspFsvolSetDispositionInformation
return STATUS_FILE_DELETED if file is already deleted
2021-11-24 18:31:48 +00:00
Bill Zissimopoulos
91211f6ccb
sys: reimplement POSIX unlink 2021-11-24 16:03:31 +00:00
Bill Zissimopoulos
d72fe2ee33
sys: FspFsvolSetDispositionInformation: ignore FILE_DISPOSITION_FORCE_IMAGE_SECTION_CHECK flag 2021-11-19 17:16:36 +00:00
Bill Zissimopoulos
bb3e92df6c
sys, dll: implement POSIX semantics for Rename 2021-10-21 15:39:25 +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
6e3a8f70b2
update source copyright to 2021 2021-05-21 15:57:05 -07:00
Bill Zissimopoulos
b2e677a3d3
sys: FspFsvolSetBasicInformation: issue #362
According to the FILE_BASIC_INFORMATION doc a file system should not update a file timestamp when it receives a value of -1 in the corresponding time field.

This commit converts a -1 timestamp to a 0 timestamp; this directs a WinFsp file system not to update the corresponding file timestamp.

This commit fixes issue #362
2021-04-06 13:41:35 -07:00
Bill Zissimopoulos
32a5b2bc64
tst: winfsp-tests: rename_backslash_test 2020-10-01 11:46:55 -07:00
Bill Zissimopoulos
5045403d85
sys: FspFsvolSetRenameInformation: tolerate trailing backslash on target name 2020-09-28 16:01:38 -07:00
Bill Zissimopoulos
aedf01a384
update source copyright for 2020 2020-01-02 17:50:40 -08:00
Bill Zissimopoulos
b18df6bba8 sys: release rename lock when doing oplock breaks 2019-12-08 14:27:02 -08:00
Bill Zissimopoulos
7f084787e3 sys: fix issues found by static analyzer 2019-06-28 15:21:36 -07:00
Bill Zissimopoulos
c01402443d wslinux support: ATOMIC_CREATE_ECP_CONTEXT 2019-04-27 15:30:57 -07:00
Bill Zissimopoulos
7cb29a4db3 sys: remove unused variables 2019-04-18 17:22:58 -07:00
Bill Zissimopoulos
969651f5f6 sys: improve support for FileStatLxInformation 2019-04-18 15:57:22 -07:00
Bill Zissimopoulos
2b0d204ff1 sys: FileStatInformation is missing on old WDK's 2019-04-16 21:28:09 -07:00
Bill Zissimopoulos
851d0758d9 sys: define FSP_FILE_STAT*_INFORMATION that are missing on some WDK's 2019-04-16 15:55:13 -07:00
Bill Zissimopoulos
ce83619728 sys: FileStatLxInformation and friends 2019-04-15 15:04:31 -07:00
Bill Zissimopoulos
351b4f5294 sys: fileinfo: fix unnecessary STATUS_BUFFER_TOO_SMALL 2019-04-03 09:52:00 -07:00
Bill Zissimopoulos
732e6cc38c
grand EaSize patch; passes winfsp-tests and ifstest 2019-03-21 18:14:15 -07:00
Bill Zissimopoulos
62b0e889b2
sys: FileEaInformation and EaSize support 2019-03-21 14:05:17 -07:00
Bill Zissimopoulos
d2de5e996c
update source copyright for 2019 2019-02-28 10:39:31 -08:00
Bill Zissimopoulos
4d49039abe
sys: FspFastIoQueryOpen: access control
Extend the WinFsp kernel-user mode protocol to allow passing
security descriptors that can then be used for access control
during FastIoQueryOpen.
2018-10-04 13:21:29 -07:00
Bill Zissimopoulos
1aab4662e5
inc, sys, dotnet: FSP_FSCTL_VOLUME_PARAMS::AllowOpenInKernelMode 2018-10-02 11:47:51 -07:00
Bill Zissimopoulos
02a4d3641e
sys: implement FastIo operations
FspFastIoQueryOpen: return FALSE when RelatedFileObject is not NULL
2018-10-02 11:12:26 -07:00
Bill Zissimopoulos
3dfbdc313b
sys: implement FastIo operations
DEBUGTEST
2018-10-02 11:12:25 -07:00
Bill Zissimopoulos
3a286324ff
sys: implement FastIo operations
FspFastIoQueryOpen
2018-10-02 11:12:25 -07:00
Bill Zissimopoulos
0d849ffcc8
sys: implement FastIo operations
FastIoQueryBasicInfo, FastIoQueryStandardInfo, FastIoQueryNetworkOpenInfo
2018-10-02 11:12:24 -07:00
Bill Zissimopoulos
75ae8daf8f
update commercial disclaimer 2018-08-21 18:09:33 -07:00
Bill Zissimopoulos
9bd9cf4fbd
update source copyright notices for 2018 2018-01-03 15:29:38 -08:00
Bill Zissimopoulos
92e7dbad21 sys: Create and Rename requests should include the originating process PID 2017-10-11 16:28:50 -07:00
Bill Zissimopoulos
4812f5bbd0 sys: Create and Rename requests should include the originating process PID 2017-10-11 16:25:22 -07:00
Bill Zissimopoulos
26485ffbd6 sys: originating process id 2017-07-12 20:54:12 -07:00
Bill Zissimopoulos
a57325e8af update source copyright notices for 2017 2017-01-05 13:56:18 -08:00
Bill Zissimopoulos
27315c1111 sys: FspFsvolQueryInformation,FspFsvolSetInformation:
- return STATUS_INVALID_PARAMETER on volume handles
2016-12-30 14:40:28 -08:00
Bill Zissimopoulos
bd38a39dbd sys: FileHardLinkInformation,FileLinkInformation: return STATUS_NOT_SUPPORTED 2016-12-30 14:14:54 -08:00
Bill Zissimopoulos
766734a8e3 sys: FileAlternateNameInformation: return STATUS_OBJECT_NAME_NOT_FOUND 2016-12-30 13:59:56 -08:00
Bill Zissimopoulos
843d3f0362 sys: FspFsvolSetBasicInformation: invalidate dir caches 2016-12-30 11:01:52 -08:00
Bill Zissimopoulos
5824a24bf4 sys: FspFileNodeNotifyChange: significant improvements 2016-12-27 21:30:56 -08:00
Bill Zissimopoulos
ff3436718c sys: FSP_FILE_DESC::DidSetMetadata 2016-12-23 16:26:16 -08:00
Bill Zissimopoulos
69f6f661ba sys,dll: Cleanup, file times overhaul 2016-12-23 15:30:39 -08:00
Bill Zissimopoulos
7b94f2bebf sys: FspFileNodeSetFileInfo: TruncateOnClose 2016-12-21 16:45:01 -08:00
Bill Zissimopoulos
c897ddd864 sys,dll: Cleanup/TruncateOnClose overhaul 2016-12-21 16:09:24 -08:00
Bill Zissimopoulos
eec63332e0 sys: fileinfo: correctly set AllInformation and StandardInformation DeletePending flag 2016-12-19 13:36:11 -08:00
Bill Zissimopoulos
94ea4f65f7 sys: FspFileNameIsValid, FspFileNameIsValidPattern: check path component length
tst: memfs: allow filenames to be 512 chars long
2016-12-18 11:51:23 -08:00
Bill Zissimopoulos
299605b8fc sys: FILE_ATTRIBUTE_DIRECTORY support 2016-12-17 12:13:53 -08:00
Bill Zissimopoulos
6de998ff98 sys: rename: capture correct security context 2016-12-12 13:20:42 -08:00