Received: by 2002:a25:d7c1:0:0:0:0:0 with SMTP id o184csp4120516ybg; Mon, 21 Oct 2019 04:12:15 -0700 (PDT) X-Google-Smtp-Source: APXvYqxrSXIaK2mPAbBY/8b7f52SPGcikPijpC8A9H5TjjDXpXfvUy/gmBMvSwXJ6UnhLlyvRaHI X-Received: by 2002:a17:906:684:: with SMTP id u4mr20759759ejb.155.1571656335270; Mon, 21 Oct 2019 04:12:15 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1571656335; cv=none; d=google.com; s=arc-20160816; b=WnaiBsJAOrhmT/JWoufhCFBu+ZRXXIH81E9JgT6qnj5C411P2EXZvXdZW7GAPuHs/8 /JqjypIaERsI3ys1lULXoYkaSUttaqSLriGbPynEkwM0QZRaO8r7/EzAVhAXl9H2DnXi F1NdBvkFzMtJ3Nb6i6d6/ggnyc4svLUTr6SMldl74hauOFgWpFjcoRA7gje/IMwlnrcD j79ZPKzX5AFveh2vg/dfYGj7EPAKOfCdXNYHXuzU0OxGVorRoFoOSC5g3ihm39ueyAIq 9FULZ3hul8cyT2iiX+rtt9xbPt5NDJKJ+tm7YeXv5ceKKqodtdQDopUKshIb72r+dCnD 1x+A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:user-agent:in-reply-to :content-transfer-encoding:content-disposition:mime-version :references:message-id:subject:cc:to:from:date:dkim-signature; bh=MrGT/ACSXBerqMBFt/M8LBAiQe+lN7qu02ft+PsvJxY=; b=V0yZc8aaLCALofPjxXIlJXq9zdpnbQsptFNJYKRbkX8gs7Nzs18yO72xx3zkFbWRNR UZPhnjLMzMYb0CF+4RAD6K0pTZZYbV4csM+NPiOmC3pLbyaYgkNFab9F0YxXzcN0iCbO wNEujpPTCWbdAD4Bq3N9s+cM0pGqXIHfZu4xWPf64WNhTADeH0Miuzj2bg1Dp4Qe4XCu tTz+eMcMwejtL3mLXk3wzdwDDGUXxs4Cw/jhZ8Ax2xuYx9ixQAnrloFewV3Gg7dMNjp8 mGfmJWEhkUo/5WpP0yL/YHS+oszL6KIeCJ2+lPzqH2AwFyZI03PAXLzc7WjS1dPTHQz0 C75Q== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=lyFZeW6r; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id 14si1050011edz.130.2019.10.21.04.11.51; Mon, 21 Oct 2019 04:12:15 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=lyFZeW6r; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728337AbfJULLl (ORCPT + 99 others); Mon, 21 Oct 2019 07:11:41 -0400 Received: from mail-wm1-f67.google.com ([209.85.128.67]:39760 "EHLO mail-wm1-f67.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727685AbfJULLk (ORCPT ); Mon, 21 Oct 2019 07:11:40 -0400 Received: by mail-wm1-f67.google.com with SMTP id r141so2754029wme.4; Mon, 21 Oct 2019 04:11:38 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=date:from:to:cc:subject:message-id:references:mime-version :content-disposition:content-transfer-encoding:in-reply-to :user-agent; bh=MrGT/ACSXBerqMBFt/M8LBAiQe+lN7qu02ft+PsvJxY=; b=lyFZeW6r4TsnzNcbEe/m/NFXG6lKFUwNTCSl7xgX3quKIW/6P4Cd8V0H4X3vriuOtw wmTpBAtInwGfs5rZMpY15JmfJCU1J0QFGPM2LMvBJ4d0WGIuJ21laUbdy4/oanKPsyYF m2d9mmh11nurPv0GDCjemTZrYEnJhejFxBjUrAVudaF9GKLrFRvcq2Fzw19qFxbxelZl lBLqfjDuRam9LPw7HwQJJm/PLfhIHCRL5zs0E2XAvVQZ/OfT5RRl93qBggui8JMNWQuX J+eRwyRtrDYmtPIyISfXKSYW5IqLQjF+M8awuVe8tu6DUbnb50bWud4ZqeTg/0MLsSZ9 Wy2A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:from:to:cc:subject:message-id:references :mime-version:content-disposition:content-transfer-encoding :in-reply-to:user-agent; bh=MrGT/ACSXBerqMBFt/M8LBAiQe+lN7qu02ft+PsvJxY=; b=JA7DpIGHOrKdJjpfFdOJAhIAAivl1DO96WEpm/ZUVVxic8Tihv1iAzz767NOj4wNR/ ciAPeImZpwIyNWPrHZEKnOtVyUHroaUbFg77TvUBPdrcSSgKIj1oQZpiRleYqm9SEj/5 MxFFLVKDbPRQhL4ck8H3KfmxUz/UV/+AweCOXI5fGDSQUZAwGvJtUdnkAEmHQ2KmIVQ4 o6UTrlIC+YlANJGLVztsVfH40idBIebP7RG1YDCkTqKOC0awncR2uDq8BmAJnIYkj0C1 Y2xDHenRsVs4ssIR/4z/6aixoFcAxLoi9AUHYbPbuh51L6Gcho8FPcGQL3DThsmOlXPb uzlw== X-Gm-Message-State: APjAAAVZgm5eBhZXnjSV1oy67okfAhOgQfzqHQ0cJeIcz4KgBMXYHkBi mJkDprhhhobefXmC+QXlG+1RmEGH X-Received: by 2002:a7b:c413:: with SMTP id k19mr20137973wmi.175.1571656298187; Mon, 21 Oct 2019 04:11:38 -0700 (PDT) Received: from pali ([2a02:2b88:2:1::5cc6:2f]) by smtp.gmail.com with ESMTPSA id k8sm28731822wrg.15.2019.10.21.04.11.37 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Mon, 21 Oct 2019 04:11:37 -0700 (PDT) Date: Mon, 21 Oct 2019 13:11:36 +0200 From: Pali =?utf-8?B?Um9ow6Fy?= To: Konstantin Komarov Cc: "viro@zeniv.linux.org.uk" , "linux-kernel@vger.kernel.org" , "linux-fsdevel@vger.kernel.org" Subject: Re: [PATCH] fs: exFAT read-only driver GPL implementation by Paragon Software. Message-ID: <20191021111136.adpxjxmmz4p2vud2@pali> References: <453A1153-9493-4A04-BF66-CE6A572DEBDB@paragon-software.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <453A1153-9493-4A04-BF66-CE6A572DEBDB@paragon-software.com> User-Agent: NeoMutt/20170113 (1.7.2) Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 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 > --- > 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@gmail.com