Make fs_param_neg_with_empty work.  It says that a parameter with no value
or and empty value should be marked as negated.

This is intended for use with ext4, which hadn't yet been converted.

Fixes: 31d921c7fb96 ("vfs: Add configuration parser helpers")
Reported-by: Lukas Czerner <[email protected]>
Signed-off-by: David Howells <[email protected]>
---

 fs/fs_parser.c |    5 +++++
 1 file changed, 5 insertions(+)

diff --git a/fs/fs_parser.c b/fs/fs_parser.c
index d1930adce68d..f95997a76738 100644
--- a/fs/fs_parser.c
+++ b/fs/fs_parser.c
@@ -129,6 +129,11 @@ int fs_parse(struct fs_context *fc,
        case fs_param_is_string:
                if (param->type != fs_value_is_string)
                        goto bad_value;
+               if ((p->flags & fs_param_neg_with_empty) &&
+                   (!result->has_value || !param->string[0])) {
+                       result->negated = true;
+                       goto okay;
+               }
                if (!result->has_value) {
                        if (p->flags & fs_param_v_optional)
                                goto okay;

Reply via email to