diff options
author | Ronnie Sahlberg <lsahlber@redhat.com> | 2020-10-21 11:30:35 +1000 |
---|---|---|
committer | Steve French <stfrench@microsoft.com> | 2020-10-22 12:17:05 -0500 |
commit | 2f20f076865daed006459b39ba78c2fc23b5c8b4 (patch) | |
tree | dc5040051efa9cbd928340f1eb270644fc6610f7 /fs/cifs | |
parent | 5c6e5aa496804451fc94d00a7cf9be2e3051ae29 (diff) |
cifs: move cache mount options to fs_context.ch
Helps to shrink connect.c and make it more readable
by moving mount related code to fs_context.c and
fs_context.h
Signed-off-by: Ronnie Sahlberg <lsahlber@redhat.com>
Signed-off-by: Steve French <stfrench@microsoft.com>
Reviewed-by: Aurelien Aptel <aaptel@suse.com>
Diffstat (limited to 'fs/cifs')
-rw-r--r-- | fs/cifs/connect.c | 62 | ||||
-rw-r--r-- | fs/cifs/fs_context.c | 52 | ||||
-rw-r--r-- | fs/cifs/fs_context.h | 11 |
3 files changed, 63 insertions, 62 deletions
diff --git a/fs/cifs/connect.c b/fs/cifs/connect.c index c2a92e26fef4..f7ef38a9dafa 100644 --- a/fs/cifs/connect.c +++ b/fs/cifs/connect.c @@ -280,25 +280,6 @@ static const match_table_t cifs_mount_option_tokens = { { Opt_err, NULL } }; -/* cache flavors */ -enum { - Opt_cache_loose, - Opt_cache_strict, - Opt_cache_none, - Opt_cache_ro, - Opt_cache_rw, - Opt_cache_err -}; - -static const match_table_t cifs_cacheflavor_tokens = { - { Opt_cache_loose, "loose" }, - { Opt_cache_strict, "strict" }, - { Opt_cache_none, "none" }, - { Opt_cache_ro, "ro" }, - { Opt_cache_rw, "singleclient" }, - { Opt_cache_err, NULL } -}; - static const match_table_t cifs_smb_version_tokens = { { Smb_1, SMB1_VERSION_STRING }, { Smb_20, SMB20_VERSION_STRING}, @@ -1347,49 +1328,6 @@ static int get_option_gid(substring_t args[], kgid_t *result) } static int -cifs_parse_cache_flavor(char *value, struct smb_vol *vol) -{ - substring_t args[MAX_OPT_ARGS]; - - switch (match_token(value, cifs_cacheflavor_tokens, args)) { - case Opt_cache_loose: - vol->direct_io = false; - vol->strict_io = false; - vol->cache_ro = false; - vol->cache_rw = false; - break; - case Opt_cache_strict: - vol->direct_io = false; - vol->strict_io = true; - vol->cache_ro = false; - vol->cache_rw = false; - break; - case Opt_cache_none: - vol->direct_io = true; - vol->strict_io = false; - vol->cache_ro = false; - vol->cache_rw = false; - break; - case Opt_cache_ro: - vol->direct_io = false; - vol->strict_io = false; - vol->cache_ro = true; - vol->cache_rw = false; - break; - case Opt_cache_rw: - vol->direct_io = false; - vol->strict_io = false; - vol->cache_ro = false; - vol->cache_rw = true; - break; - default: - cifs_dbg(VFS, "bad cache= option: %s\n", value); - return 1; - } - return 0; -} - -static int cifs_parse_smb_version(char *value, struct smb_vol *vol, bool is_smb3) { substring_t args[MAX_OPT_ARGS]; diff --git a/fs/cifs/fs_context.c b/fs/cifs/fs_context.c index dd9da734e346..deb1168ed8af 100644 --- a/fs/cifs/fs_context.c +++ b/fs/cifs/fs_context.c @@ -82,3 +82,55 @@ int cifs_parse_security_flavors(char *value, struct smb_vol *vol) return 0; } + +static const match_table_t cifs_cacheflavor_tokens = { + { Opt_cache_loose, "loose" }, + { Opt_cache_strict, "strict" }, + { Opt_cache_none, "none" }, + { Opt_cache_ro, "ro" }, + { Opt_cache_rw, "singleclient" }, + { Opt_cache_err, NULL } +}; + +int +cifs_parse_cache_flavor(char *value, struct smb_vol *vol) +{ + substring_t args[MAX_OPT_ARGS]; + + switch (match_token(value, cifs_cacheflavor_tokens, args)) { + case Opt_cache_loose: + vol->direct_io = false; + vol->strict_io = false; + vol->cache_ro = false; + vol->cache_rw = false; + break; + case Opt_cache_strict: + vol->direct_io = false; + vol->strict_io = true; + vol->cache_ro = false; + vol->cache_rw = false; + break; + case Opt_cache_none: + vol->direct_io = true; + vol->strict_io = false; + vol->cache_ro = false; + vol->cache_rw = false; + break; + case Opt_cache_ro: + vol->direct_io = false; + vol->strict_io = false; + vol->cache_ro = true; + vol->cache_rw = false; + break; + case Opt_cache_rw: + vol->direct_io = false; + vol->strict_io = false; + vol->cache_ro = false; + vol->cache_rw = true; + break; + default: + cifs_dbg(VFS, "bad cache= option: %s\n", value); + return 1; + } + return 0; +} diff --git a/fs/cifs/fs_context.h b/fs/cifs/fs_context.h index 87747ef7a2d3..3e3f6e29e787 100644 --- a/fs/cifs/fs_context.h +++ b/fs/cifs/fs_context.h @@ -12,6 +12,17 @@ #include <linux/parser.h> #include "cifsglob.h" +enum { + Opt_cache_loose, + Opt_cache_strict, + Opt_cache_none, + Opt_cache_ro, + Opt_cache_rw, + Opt_cache_err +}; + +int cifs_parse_cache_flavor(char *value, struct smb_vol *vol); + enum cifs_sec_param { Opt_sec_krb5, Opt_sec_krb5i, |