diff options
| author | Paul Keith <javelinanddart@gmail.com> | 2018-03-02 04:51:53 +0100 |
|---|---|---|
| committer | Moyster <oysterized@gmail.com> | 2018-12-02 01:34:10 +0100 |
| commit | 796e4cc1081eea0d3ca72d91b48a7e27a4cfb07d (patch) | |
| tree | ddbfd7181e1465851757b14b9b7ea7f0bff4d25b /fs/sdfat | |
| parent | d9dbee633b72abf9ac55b323b7552c30c224a51a (diff) | |
fs: sdfat: Add config option to register sdFAT for exFAT
Change-Id: Id57abf0a4bd0b433fecc622eecb383cd4ea29d17
Signed-off-by: Paul Keith <javelinanddart@gmail.com>
Diffstat (limited to 'fs/sdfat')
| -rw-r--r-- | fs/sdfat/Kconfig | 7 | ||||
| -rw-r--r-- | fs/sdfat/sdfat.c | 26 |
2 files changed, 32 insertions, 1 deletions
diff --git a/fs/sdfat/Kconfig b/fs/sdfat/Kconfig index 417ff432d..90265a198 100644 --- a/fs/sdfat/Kconfig +++ b/fs/sdfat/Kconfig @@ -15,6 +15,13 @@ config SDFAT_FS To compile this as a module, choose M here: the module will be called sdfat_core and sdfat_fs. +config SDFAT_USE_FOR_EXFAT + bool "Register sdFAT as exFAT" + default y + depends on SDFAT_FS && !EXFAT_FS + help + If you want to register sdFAT as available for exFAT, say Y. + config SDFAT_DELAYED_META_DIRTY bool "Enable delayed metadata dirty" default y diff --git a/fs/sdfat/sdfat.c b/fs/sdfat/sdfat.c index 1837ea5a1..0829f4d83 100644 --- a/fs/sdfat/sdfat.c +++ b/fs/sdfat/sdfat.c @@ -4978,6 +4978,20 @@ static struct file_system_type sdfat_fs_type = { .fs_flags = FS_REQUIRES_DEV, }; +#ifdef CONFIG_SDFAT_USE_FOR_EXFAT +static struct file_system_type exfat_fs_type = { + .owner = THIS_MODULE, + .name = "exfat", + .mount = sdfat_fs_mount, +#ifdef CONFIG_SDFAT_DBG_IOCTL + .kill_sb = sdfat_debug_kill_sb, +#else + .kill_sb = kill_block_super, +#endif /* CONFIG_SDFAT_DBG_IOCTL */ + .fs_flags = FS_REQUIRES_DEV, +}; +#endif /* CONFIG_SDFAT_USE_FOR_EXFAT */ + static int __init init_sdfat_fs(void) { int err; @@ -5016,6 +5030,14 @@ static int __init init_sdfat_fs(void) goto error; } +#ifdef CONFIG_SDFAT_USE_FOR_EXFAT + err = register_filesystem(&exfat_fs_type); + if (err) { + pr_err("[SDFAT] failed to register for exfat filesystem\n"); + goto error; + } +#endif /* CONFIG_SDFAT_USE_FOR_EXFAT */ + return 0; error: sdfat_statistics_uninit(); @@ -5045,7 +5067,9 @@ static void __exit exit_sdfat_fs(void) sdfat_destroy_inodecache(); unregister_filesystem(&sdfat_fs_type); - +#ifdef CONFIG_SDFAT_USE_FOR_EXFAT + unregister_filesystem(&exfat_fs_type); +#endif /* CONFIG_SDFAT_USE_FOR_EXFAT */ fsapi_shutdown(); } |
