RE: [PATCH v3] exfat: remove EXFAT_SB_DIRTY flag

From: Namjae Jeon
Date: Thu Aug 13 2020 - 00:03:40 EST


> Thanks for thinking on this complicated issue.
>
>
> > Most of the NAND flash devices and HDDs have wear leveling and bad sector replacement algorithms
> applied.
> > So I think that the life of the boot sector will not be exhausted first.
>
> I'm not too worried about the life of the boot-sector.
> I'm worried about write failures caused by external factors.
> (power failure/system down/vibration/etc. during writing) They rarely occur on SD cards, but occur on
> many HDDs, some SSDs and USB storages by 0.1% or more.
Hard disk and SSD do not guarantee atomic write of a sector unit?

> Especially with AFT-HDD, not only boot-sector but also the following multiple sectors become
> unreadable.
Other file systems will also be unstable on a such HW.

> It is not possible to completely solve this problem, as long as writing to the boot-sector.
> (I think it's a exFAT's specification defect) The only effective way to reduce this problem is to
> reduce writes to the boot-sector.
exFAT's specification defect... Well..
Even though the boot sector is corrupted, It can be recovered using the backup boot sector
through fsck.
>
>
> > Currently the volume dirty/clean policy of exfat-fs is not perfect,
>
> Thank you for sharing the problem with you.
>
>
> > but I think it behaves similarly to the policy of MS Windows.
>
> On Windows10, the dirty flag is cleared after more than 15 seconds after all write operations are
> completed.
> (dirty-flag is never updated during the write operation continues)
>
>
> > Therefore,
> > I think code improvements should be made to reduce volume flag records while maintaining the current
> policy.
>
> Current policy is inconsistent.
> As I wrote last mail, the problem with the current implementation is that the dirty-flag may not be
> cleared after the write operation.(even if sync is enabled or disabled) Because, some write operations
> clear the dirty-flag but some don't clear.
> Unmount or sync command is the only way to ensure that the dirty-flag is cleared.
> This has no effect on clearing the dirty-flag after a write operations, it only increases risk of
> destroying the boot-sector.
> - Clear the dirty-flag after every write operation.
> - Never clear the dirty-flag after every write operation.
> Unless unified to either one, I think that sync policy cannot be consistent.
>
> How do you think?
>
>
> BR
> ---
> etsuhiro Kohada <kohada.t2@xxxxxxxxx>