[FASTFAT] Implement delayed close
authorPierre Schweitzer <pierre@reactos.org>
Sat, 18 Aug 2018 15:04:02 +0000 (17:04 +0200)
committerPierre Schweitzer <pierre@reactos.org>
Sat, 18 Aug 2018 17:03:30 +0000 (19:03 +0200)
commit50b00f0fcca638a7c205bdf022ade079135e58c6
tree743c2ca83101ef0a5f23d557322352135d3a58c2
parentb2d2e3433b74ff37c4de2f8d27d85fc7c0700235
[FASTFAT] Implement delayed close

When we're about to close a file (ie, forget everything about it
and release any associated structure), actually delay it.
This allows keep data fresh in memory for faster reuse in case
it would be required. The effective closing will only happen after some time.

For specific operations, this will produce a real speed up in ReactOS.
For instance, with that patch, Winamp starts within seconds, instead of dozen
of minutes.
In most cases, it will bring ReactOS to performances it had before fixing
the huge leak in FastFAT (commit 94ead99) without leaking the whole FS.

For now, due to regressions, this is only activated for files and not
for directories. Once it gets fixed, it will be enabled for both.

CORE-14826
CORE-14917
drivers/filesystems/fastfat/cleanup.c
drivers/filesystems/fastfat/close.c
drivers/filesystems/fastfat/create.c
drivers/filesystems/fastfat/iface.c
drivers/filesystems/fastfat/kdbg.c
drivers/filesystems/fastfat/vfat.h