Skip to content
This repository has been archived by the owner on Aug 19, 2022. It is now read-only.

Commit

Permalink
fs: sdfat: add config option to register sdFAT for exFAT
Browse files Browse the repository at this point in the history
Signed-off-by: Jesse Chan <jc@linux.com>
  • Loading branch information
javelinanddart authored and jesec committed Apr 20, 2020
1 parent fecb31b commit 4cbccb4
Show file tree
Hide file tree
Showing 2 changed files with 32 additions and 1 deletion.
7 changes: 7 additions & 0 deletions fs/sdfat/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
26 changes: 25 additions & 1 deletion fs/sdfat/sdfat.c
Original file line number Diff line number Diff line change
Expand Up @@ -5087,6 +5087,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;
Expand Down Expand Up @@ -5129,6 +5143,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_uevent_uninit();
Expand Down Expand Up @@ -5160,7 +5182,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();
}

Expand Down

0 comments on commit 4cbccb4

Please sign in to comment.