From: Andreas Gruenbacher Subject: Add match_string() for mount option parsing References: FATE301275 Patch-mainline: no The match_string() function allows to parse string constants in mount options. Signed-off-by: Andreas Gruenbacher --- include/linux/parser.h | 1 + lib/parser.c | 14 ++++++++++++++ 2 files changed, 15 insertions(+) --- a/include/linux/parser.h +++ b/include/linux/parser.h @@ -26,6 +26,7 @@ typedef struct { } substring_t; int match_token(char *, const match_table_t table, substring_t args[]); +int match_string(substring_t *s, const char *str); int match_int(substring_t *, int *result); int match_octal(substring_t *, int *result); int match_hex(substring_t *, int *result); --- a/lib/parser.c +++ b/lib/parser.c @@ -114,6 +114,19 @@ int match_token(char *s, const match_tab } /** + * match_string: check for a particular parameter + * @s: substring to be scanned + * @str: string to scan for + * + * Description: Return if a &substring_t is equal to string @str. + */ +int match_string(substring_t *s, const char *str) +{ + return strlen(str) == s->to - s->from && + !memcmp(str, s->from, s->to - s->from); +} + +/** * match_number: scan a number in the given base from a substring_t * @s: substring to be scanned * @result: resulting integer on success @@ -224,6 +237,7 @@ char *match_strdup(const substring_t *s) } EXPORT_SYMBOL(match_token); +EXPORT_SYMBOL(match_string); EXPORT_SYMBOL(match_int); EXPORT_SYMBOL(match_octal); EXPORT_SYMBOL(match_hex);