Re: [PATCH] fs: exFAT read-only driver GPL implementation by Paragon Software.

From: Pali RohÃr
Date: Mon Oct 21 2019 - 06:54:16 EST


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