reactos/drivers
Pierre Schweitzer 94ead99e0c [FASTFAT] Don't leak directories FILE_OBJECT, FCB and cache entries.
Once a directory is crossed (opened or a child is opened), associated
FCB structure is created in FastFAT, but also a stream FO for caching.
Up to now, due to an extra reference taken by the stream file object,
even when the directory was no longer used, the directory was kept in
memory: the FCB was never deleted, the file object was never dereferenced,
and the cache never released.

The immediate effect of this bug is that our FAT driver was leaking every
directory that was used affecting the whole OS situation. In case of
directories intensive operation (like extraction the ReactOS source code
in ReactOS ;-)), we were just killin the whole OS RAM without any way to
release it and recover.

The other side effects: IOs were faster as half of the FS was always
permanant in RAM.

This commit fixes the issue by forcing the FSD to release the FO,
and the cache when a directory is no longer used, leading to its
destruction in RAM.
Downside: on IO intensive operation, expect slowdowns, obviously,
there's less caching now. But more efficient!

CORE-14557
2018-04-28 18:33:14 +02:00
..
base [NULL] Additions for the Null driver. 2018-04-22 22:23:54 +02:00
battery Git conversion: Make reactos the root directory, move rosapps, rostests, wallpapers into modules, and delete rossubsys. 2017-10-03 07:45:34 +00:00
bluetooth [CMAKE/CLANG-CL] Silence some clang-cl warnings in consistency with our gcc build. 2017-12-07 21:53:45 +01:00
bus [ACPI] Fix the format of the (default hardcoded) "unique" instance ID. 2018-04-22 16:52:42 +02:00
crypto [REACTOS] Fix x64 build 2017-10-22 16:49:04 +02:00
filesystems [FASTFAT] Don't leak directories FILE_OBJECT, FCB and cache entries. 2018-04-28 18:33:14 +02:00
filters [FLTMGR] Properly allocate CCB in CreatePortCCB() 2018-01-06 13:54:21 +01:00
hid [DRIVERS] Use KeClearEvent instead of KeResetEvent where the previous state is not needed. 2017-12-30 11:44:25 +01:00
input [I8042PRT] Enable keyboard clock explicitly (fixes Lenovo ACPI bug). CORE-14256 (#434) 2018-03-21 22:07:30 +01:00
ksfilter [SWENUM] Add version information. CORE-14112 2017-12-17 02:22:28 +01:00
multimedia Delete "ghost" old(*) files that have been mysteriously added back during the SVN-to-Git transition. 2017-10-04 10:28:36 +02:00
network [AFD] Mark the socket as named pipe, so NtWriteFile actually knows what to do with it. 2018-03-21 19:22:13 +01:00
parallel Add .keep guard files in order to restore lost but empty directories we had with SVN. 2017-10-04 10:28:36 +02:00
processor Git conversion: Make reactos the root directory, move rosapps, rostests, wallpapers into modules, and delete rossubsys. 2017-10-03 07:45:34 +00:00
sac [SAC] Fix wrong sized variable in SAC driver 2017-12-20 06:56:09 +01:00
serial [SERIAL] Fix Serial{Get,Clear}PerfStats() to become proper PKSYNCHRONIZE_ROUTINE routines and get rid of the related casts. Brought to you by Thomas Faber. CORE-11799 (#94) 2017-10-31 15:44:39 +01:00
setup Git conversion: Make reactos the root directory, move rosapps, rostests, wallpapers into modules, and delete rossubsys. 2017-10-03 07:45:34 +00:00
storage Removed unreachable line (#517) 2018-04-24 21:35:23 +01:00
usb [REACTOS] Fix 64 bit build (#465) 2018-04-03 15:13:17 -06:00
wdm [DRIVERS] Use KeClearEvent instead of KeResetEvent where the previous state is not needed. 2017-12-30 11:44:25 +01:00
wmi Git conversion: Make reactos the root directory, move rosapps, rostests, wallpapers into modules, and delete rossubsys. 2017-10-03 07:45:34 +00:00
CMakeLists.txt Git conversion: Make reactos the root directory, move rosapps, rostests, wallpapers into modules, and delete rossubsys. 2017-10-03 07:45:34 +00:00