diff options
Diffstat (limited to 'fs/cifs/fs_context.h')
-rw-r--r-- | fs/cifs/fs_context.h | 74 |
1 files changed, 41 insertions, 33 deletions
diff --git a/fs/cifs/fs_context.h b/fs/cifs/fs_context.h index 3a66199f3cb7..d4a905a80883 100644 --- a/fs/cifs/fs_context.h +++ b/fs/cifs/fs_context.h @@ -9,8 +9,11 @@ #ifndef _FS_CONTEXT_H #define _FS_CONTEXT_H -#include <linux/parser.h> #include "cifsglob.h" +#include <linux/parser.h> +#include <linux/fs_parser.h> + +#define cifs_invalf(fc, fmt, ...) invalf(fc, fmt, ## __VA_ARGS__) enum smb_version { Smb_1 = 1, @@ -24,8 +27,6 @@ enum smb_version { Smb_version_err }; -int cifs_parse_smb_version(char *value, struct smb3_fs_context *ctx, bool is_smb3); - enum { Opt_cache_loose, Opt_cache_strict, @@ -35,8 +36,6 @@ enum { Opt_cache_err }; -int cifs_parse_cache_flavor(char *value, struct smb3_fs_context *ctx); - enum cifs_sec_param { Opt_sec_krb5, Opt_sec_krb5i, @@ -55,36 +54,36 @@ enum cifs_sec_param { enum cifs_param { /* Mount options that take no arguments */ - Opt_user_xattr, Opt_nouser_xattr, - Opt_forceuid, Opt_noforceuid, - Opt_forcegid, Opt_noforcegid, + Opt_user_xattr, + Opt_forceuid, + Opt_forcegid, Opt_noblocksend, Opt_noautotune, Opt_nolease, - Opt_hard, Opt_nohard, - Opt_soft, Opt_nosoft, - Opt_perm, Opt_noperm, + Opt_hard, + Opt_soft, + Opt_perm, Opt_nodelete, - Opt_mapposix, Opt_nomapposix, + Opt_mapposix, Opt_mapchars, Opt_nomapchars, - Opt_sfu, Opt_nosfu, + Opt_sfu, Opt_nodfs, - Opt_posixpaths, Opt_noposixpaths, - Opt_unix, Opt_nounix, + Opt_posixpaths, + Opt_unix, Opt_nocase, - Opt_brl, Opt_nobrl, - Opt_handlecache, Opt_nohandlecache, + Opt_brl, + Opt_handlecache, Opt_forcemandatorylock, Opt_setuidfromacl, - Opt_setuids, Opt_nosetuids, - Opt_dynperm, Opt_nodynperm, - Opt_intr, Opt_nointr, - Opt_strictsync, Opt_nostrictsync, - Opt_serverino, Opt_noserverino, + Opt_setuids, + Opt_dynperm, + Opt_intr, + Opt_strictsync, + Opt_serverino, Opt_rwpidforward, - Opt_cifsacl, Opt_nocifsacl, - Opt_acl, Opt_noacl, + Opt_cifsacl, + Opt_acl, Opt_locallease, Opt_sign, Opt_ignore_signature, @@ -95,13 +94,13 @@ enum cifs_param { Opt_multiuser, Opt_sloppy, Opt_nosharesock, - Opt_persistent, Opt_nopersistent, - Opt_resilient, Opt_noresilient, + Opt_persistent, + Opt_resilient, Opt_domainauto, Opt_rdma, Opt_modesid, Opt_rootfs, - Opt_multichannel, Opt_nomultichannel, + Opt_multichannel, Opt_compress, /* Mount options which take numeric value */ @@ -142,11 +141,6 @@ enum cifs_param { /* Mount options to be ignored */ Opt_ignore, - /* Options which could be blank */ - Opt_blank_pass, - Opt_blank_user, - Opt_blank_ip, - Opt_err }; @@ -247,9 +241,23 @@ struct smb3_fs_context { unsigned int max_channels; __u16 compression; /* compression algorithm 0xFFFF default 0=disabled */ bool rootfs:1; /* if it's a SMB root file system */ + + char *mount_options; }; -extern int cifs_parse_security_flavors(char *value, struct smb3_fs_context *ctx); +extern const struct fs_parameter_spec smb3_fs_parameters[]; + +extern int cifs_parse_cache_flavor(char *value, + struct smb3_fs_context *ctx); +extern int cifs_parse_security_flavors(char *value, + struct smb3_fs_context *ctx); +extern int smb3_init_fs_context(struct fs_context *fc); + +static inline struct smb3_fs_context *smb3_fc2context(const struct fs_context *fc) +{ + return fc->fs_private; +} + extern int smb3_fs_context_dup(struct smb3_fs_context *new_ctx, struct smb3_fs_context *ctx); #endif |