On Sunday 20 October 2019 20:08:20 Richard Weinberger wrote: > On Sat, Oct 19, 2019 at 10:33 AM Konstantin Komarov > <almaz.alexandrovich@xxxxxxxxxxxxxxxxxxxx> wrote: > > > > Recently exFAT filesystem specification has been made public by Microsoft (https://docs.microsoft.com/en-us/windows/win32/fileio/exfat-specification). > > Having decades of expertise in commercial file systems development, we at Paragon Software GmbH are very excited by Microsoft's decision and now want to make our contribution to the Open Source Community by providing our implementation of exFAT Read-Only (yet!) fs implementation for the Linux Kernel. > > We are about to prepare the Read-Write support patch as well. > > 'fs/exfat' is implemented accordingly to standard Linux fs development approach with no use/addition of any custom API's. > > To divide our contribution from 'drivers/staging' submit of Aug'2019, our Kconfig key is "EXFAT_RO_FS" > > How is this driver different from the driver in drivers/staging? > With the driver in staging and the upcoming driver from Samsung this > is driver number > three for exfat. ;-\ Hi Richard! There is vfat+msdos driver for FAT12/16/32 in fs/fat/. Then there is modified Samsung exfat driver which was recently merged into staging area and supports FAT12/16/32 and exFAT. Plus there is new version of this out-of-tree Samsung's exfat driver called sdfat which can be found in some Android phones. Based on sdfat sources there is out-of-tree exfat-linux [1] driver which seems to have better performance as currently merged old modified Samsung's exfat driver into staging. This list of available exfat drivers is not complete. There is also fuse implementation widely used [2] and some commercial implementations from Tuxera [3], Paragon [4], Embedded Access [5] or HCC [6]. As Konstantin in his email wrote, implementation which he sent should be one used in their commercial Paragon product. So we have not 3, but at least 6 open source implementations. Plus more closed source, commercial. About that one implementation from Samsung, which was recently merged into staging tree, more people wrote that code is in horrible state and probably it should not have been merged. That implementation has all-one-one driver FAT12, FAT16, FAT32 and exFAT which basically duplicate current kernel fs/fat code. Quick look at this Konstantin's patch, it looks like that code is not in such bad state as staging one. It has only exFAT support (no FAT32) but there is no write support (yet). For me it looks like that this Konstantin's implementation is more closer then one in staging to be "primary" exfat implementation for kernel (if write support would be provided). [1] - https://github.com/cryptomilk/kernel-sdfat [2] - https://github.com/relan/exfat [3] - https://www.tuxera.com/products/tuxera-exfat-embedded/ [4] - https://www.paragon-software.com/technologies/ [5] - http://embedded-access.com/exfat-file-system/ [6] - https://www.hcc-embedded.com/exfat/ -- Pali Rohár pali.rohar@xxxxxxxxx