On Friday 18 October 2019 15:18:39 Konstantin Komarov 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.

Hi Konstantin! Do you have any plan when you provide also R/W support?

> '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"
>
> Signed-off-by: Konstantin Komarov <[email protected]>
> ---
> MAINTAINERS         |    6 +
> fs/Kconfig          |    3 +-
> fs/exfat/Kconfig    |   31 ++
> fs/exfat/Makefile   |    9 +
> fs/exfat/bitmap.c   |  117 +++++
> fs/exfat/cache.c    |  483 ++++++++++++++++++
> fs/exfat/debug.h    |   69 +++
> fs/exfat/dir.c      |  610 +++++++++++++++++++++++
> fs/exfat/exfat.h    |  248 ++++++++++
> fs/exfat/exfat_fs.h |  388 +++++++++++++++
> fs/exfat/fatent.c   |   79 +++
> fs/exfat/file.c     |   93 ++++
> fs/exfat/inode.c    |  317 ++++++++++++
> fs/exfat/namei.c    |  154 ++++++
> fs/exfat/super.c    | 1145 +++++++++++++++++++++++++++++++++++++++++++
> fs/exfat/upcase.c   |  344 +++++++++++++
> 16 files changed, 4095 insertions(+), 1 deletion(-)
> create mode 100644 fs/exfat/Kconfig
> create mode 100644 fs/exfat/Makefile
> create mode 100644 fs/exfat/bitmap.c
> create mode 100644 fs/exfat/cache.c
> create mode 100644 fs/exfat/debug.h
> create mode 100644 fs/exfat/dir.c
> create mode 100644 fs/exfat/exfat.h
> create mode 100644 fs/exfat/exfat_fs.h
> create mode 100644 fs/exfat/fatent.c
> create mode 100644 fs/exfat/file.c
> create mode 100644 fs/exfat/inode.c
> create mode 100644 fs/exfat/namei.c
> create mode 100644 fs/exfat/super.c
> create mode 100644 fs/exfat/upcase.c

Also have you considered to to re-use fs/fat sources instead? It is
possible or there is nothing in fs/fat which could be reused or
refactored/extracted?

> diff --git a/fs/exfat/super.c b/fs/exfat/super.c
> new file mode 100644
> index 000000000000..0705dab3c3fc
> --- /dev/null
> +++ b/fs/exfat/super.c
...
> +/* inits internal info from on-disk boot sector*/
> +static int exfat_init_from_boot(struct super_block *sb, struct exfat_boot 
> *boot,
> +                             u64 bytes_per_volume, u32 *root_lcn)
> +{
...
> +     if (boot->fats != 1) {
> +             hint = "This version of exfat driver does not support TexFat";
> +             goto out;
> +     }

Are you going to add support also for TexFAT? Or at least for more two
FAT tables (like is used in FAT32)?

-- 
Pali Rohár
[email protected]

Reply via email to