*     changes on the process such as clearing out non-inheritable signal
  *     state.  This is called immediately after commit_creds().
  *
+ * Security hooks for mount using fs_context.
+ *     [See also Documentation/filesystems/mounting.txt]
+ *
+ * @fs_context_parse_param:
+ *     Userspace provided a parameter to configure a superblock.  The LSM may
+ *     reject it with an error and may use it for itself, in which case it
+ *     should return 0; otherwise it should return -ENOPARAM to pass it on to
+ *     the filesystem.
+ *     @fc indicates the filesystem context.
+ *     @param The parameter
+ *
  * Security hooks for filesystem operations.
  *
  * @sb_alloc_security:
        void (*bprm_committing_creds)(struct linux_binprm *bprm);
        void (*bprm_committed_creds)(struct linux_binprm *bprm);
 
+       int (*fs_context_parse_param)(struct fs_context *fc, struct fs_parameter *param);
+
        int (*sb_alloc_security)(struct super_block *sb);
        void (*sb_free_security)(struct super_block *sb);
        void (*sb_free_mnt_opts)(void *mnt_opts);
        struct hlist_head bprm_check_security;
        struct hlist_head bprm_committing_creds;
        struct hlist_head bprm_committed_creds;
+       struct hlist_head fs_context_parse_param;
        struct hlist_head sb_alloc_security;
        struct hlist_head sb_free_security;
        struct hlist_head sb_free_mnt_opts;
 
 struct xattr;
 struct xfrm_sec_ctx;
 struct mm_struct;
+struct fs_context;
+struct fs_parameter;
+enum fs_value_type;
 
 /* If capable should audit the security request */
 #define SECURITY_CAP_NOAUDIT 0
 int security_bprm_check(struct linux_binprm *bprm);
 void security_bprm_committing_creds(struct linux_binprm *bprm);
 void security_bprm_committed_creds(struct linux_binprm *bprm);
+int security_fs_context_parse_param(struct fs_context *fc, struct fs_parameter *param);
 int security_sb_alloc(struct super_block *sb);
 void security_sb_free(struct super_block *sb);
 void security_free_mnt_opts(void **mnt_opts);
 {
 }
 
+static inline int security_fs_context_parse_param(struct fs_context *fc,
+                                                 struct fs_parameter *param)
+{
+       return -ENOPARAM;
+}
+
 static inline int security_sb_alloc(struct super_block *sb)
 {
        return 0;
 
        call_void_hook(bprm_committed_creds, bprm);
 }
 
+int security_fs_context_parse_param(struct fs_context *fc, struct fs_parameter *param)
+{
+       return call_int_hook(fs_context_parse_param, -ENOPARAM, fc, param);
+}
+
 int security_sb_alloc(struct super_block *sb)
 {
        return call_int_hook(sb_alloc_security, 0, sb);