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 <almaz.alexandrovich@xxxxxxxxxxxxxxxxxxxx> > --- > 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 pali.rohar@xxxxxxxxx