reactos/drivers/filesystems/fastfat
Pierre Schweitzer 7c01587680
[FASTFAT] Completely rewrite support for dirty volumes.
Until now, our support for dirty volumes was totally broken
to a point where, on FAT32 volume, the dirty couldn't even
be written nor read from the disk.

This commit totally rewrites its handling, for both FAT16 and FAT32
so that it's now fully functionnal. Furthermore, it also gets
totally compatible with our vfatlib, and thus, autochk.
Now, on mount, FastFAT will check if the volume is dirty or not, and
autochk will be able to ask for a repair if dirty. vfatlib will
repair the volume and remove the dirty bit. So that, on next
reboot, the volume will be mounted clean.

As a reminder, the dirty bit is set immediately after mounting
the volume, so that, if you crash or have a powercut, autochk
will always attempt to repair your volume (with more or less,
that's FAT!).

If you want to experience without breaking your FAT volume,
just boot, open a cmd prompt and type: fsutil dirty set c:
and reboot!

CORE-13758
CORE-13760
CORE-13759
2018-05-18 23:05:05 +02:00
..
blockdev.c [FASTFAT] Completely rewrite support for dirty volumes. 2018-05-18 23:05:05 +02:00
cleanup.c [FASTFAT] Only initialize directory cache on use. 2018-05-18 14:09:30 +02:00
close.c [FASTFAT] Uninit directory cache on last handle close. 2018-05-18 14:51:24 +02:00
CMakeLists.txt [FASTFAT] Introduce a KDBG extension. 2018-04-29 12:15:11 +02:00
create.c [FASTFAT] Only initialize directory cache on use. 2018-05-18 14:09:30 +02:00
dir.c [FASTFAT] Only initialize directory cache on use. 2018-05-18 14:09:30 +02:00
direntry.c [FASTFAT] Only initialize directory cache on use. 2018-05-18 14:09:30 +02:00
dirwr.c [FASTFAT] Uninit directory cache on last handle close. 2018-05-18 14:51:24 +02:00
ea.c Git conversion: Make reactos the root directory, move rosapps, rostests, wallpapers into modules, and delete rossubsys. 2017-10-03 07:45:34 +00:00
fastio.c [FASTFAT] Drop read ahead locking routines in favor of lazy writer routines. 2018-02-17 13:49:15 +01:00
fat.c [FASTFAT] Completely rewrite support for dirty volumes. 2018-05-18 23:05:05 +02:00
fcb.c [FASTFAT] Only initialize directory cache on use. 2018-05-18 14:09:30 +02:00
finfo.c [FASTFAT] Only initialize directory cache on use. 2018-05-18 14:09:30 +02:00
flush.c [FASTFAT] Only initialize directory cache on use. 2018-05-18 14:09:30 +02:00
fsctl.c [FASTFAT] Completely rewrite support for dirty volumes. 2018-05-18 23:05:05 +02:00
iface.c [FASTFAT] Reduce the number of local declaration. 2018-04-29 12:33:53 +02:00
kdbg.c [FASTFAT] Introduce a KDBG extension. 2018-04-29 12:15:11 +02:00
misc.c [FASTFAT] Implement write IOs defering. 2018-04-29 20:42:53 +02:00
pnp.c Git conversion: Make reactos the root directory, move rosapps, rostests, wallpapers into modules, and delete rossubsys. 2017-10-03 07:45:34 +00:00
rw.c [FASTFAT] Implement support for stack overflow in read operations. 2018-05-12 12:03:18 +02:00
shutdown.c [FASTFAT] Completely rewrite support for dirty volumes. 2018-05-18 23:05:05 +02:00
string.c Git conversion: Make reactos the root directory, move rosapps, rostests, wallpapers into modules, and delete rossubsys. 2017-10-03 07:45:34 +00:00
vfat.h [FASTFAT] Completely rewrite support for dirty volumes. 2018-05-18 23:05:05 +02:00
vfat005.1st Git conversion: Make reactos the root directory, move rosapps, rostests, wallpapers into modules, and delete rossubsys. 2017-10-03 07:45:34 +00:00
vfat_fr.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
vfatfs.rc Git conversion: Make reactos the root directory, move rosapps, rostests, wallpapers into modules, and delete rossubsys. 2017-10-03 07:45:34 +00:00
volume.c Git conversion: Make reactos the root directory, move rosapps, rostests, wallpapers into modules, and delete rossubsys. 2017-10-03 07:45:34 +00:00