[FASTFAT] Implement write IOs defering.
authorPierre Schweitzer <pierre@reactos.org>
Sun, 29 Apr 2018 18:42:24 +0000 (20:42 +0200)
committerPierre Schweitzer <pierre@reactos.org>
Sun, 29 Apr 2018 18:42:53 +0000 (20:42 +0200)
commit2a7d16727a840b631076aaaa1cd00d09b9a32a80
tree1b30b056cb8a48b9657f0f2463cbb947ca56903d
parentf2c44aa4838de066069a532758965522f482de10
[FASTFAT] Implement write IOs defering.

Before any write operation that would involve caching, ask
the cache controler whether writing would make it exceed its memory
consumption. If so, queue the write operation for later execution.

In case the write operation can wait, then, the FSD operation will be
halted until the write is allowed.

I could test it successfully by copying huge files from a FAT volume to
another. The write is halted until some portions of the file is written
to the disk.
I could also properly install Qt (SDK) on ReactOS with this and less than 1GB RAM:
- https://www.heisspiter.net/~Pierre/rostests/Qt_OS.png
- https://www.heisspiter.net/~Pierre/rostests/Qt_OS2.png

CORE-12081
CORE-14582
CORE-14313
drivers/filesystems/fastfat/misc.c
drivers/filesystems/fastfat/rw.c
drivers/filesystems/fastfat/vfat.h