mbox series

[0/3] fs_parser: handle parameters that can be empty and don't have a value

Message ID 20240229163011.16248-1-lhenriques@suse.de (mailing list archive)
Headers show
Series fs_parser: handle parameters that can be empty and don't have a value | expand

Message

Luis Henriques Feb. 29, 2024, 4:30 p.m. UTC
While investigating an ext4/053 fstest failure, I realised that when the
flag 'fs_param_can_be_empty' is set in a parameter and it's value is NULL
that parameter isn't being handled as a 'flag' type.  Even if it's type is
set to 'fs_value_is_flag'.  The first patch in this series changes this
behaviour.

Unfortunately, the two filesystems that use this flag (ext4 and overlayfs)
aren't prepared to have the parameter value set to NULL.  Patches #2 and #3
fix this.

Luis Henriques (3):
  fs_parser: handle parameters that can be empty and don't have a value
  ext4: fix mount parameters check for empty values
  overlay: fix mount parameters check for empty values

 fs/ext4/super.c       | 4 ++--
 fs/fs_parser.c        | 3 ++-
 fs/overlayfs/params.c | 2 +-
 3 files changed, 5 insertions(+), 4 deletions(-)

Comments

Christian Brauner March 1, 2024, 1:12 p.m. UTC | #1
> Unfortunately, the two filesystems that use this flag (ext4 and overlayfs)
> aren't prepared to have the parameter value set to NULL.  Patches #2 and #3
> fix this.

Both ext4 and overlayfs define

#define fsparam_string_empty(NAME, OPT) \
        __fsparam(fs_param_is_string, NAME, OPT, fs_param_can_be_empty, NULL)

Please add that to include/linux/fs_parser.h so that it can be used by both.
Eric Sandeen March 1, 2024, 2:54 p.m. UTC | #2
On 3/1/24 7:12 AM, Christian Brauner wrote:
>> Unfortunately, the two filesystems that use this flag (ext4 and overlayfs)
>> aren't prepared to have the parameter value set to NULL.  Patches #2 and #3
>> fix this.
> 
> Both ext4 and overlayfs define
> 
> #define fsparam_string_empty(NAME, OPT) \
>         __fsparam(fs_param_is_string, NAME, OPT, fs_param_can_be_empty, NULL)
> 
> Please add that to include/linux/fs_parser.h so that it can be used by both.

The f2fs conversion will also need this, so yes, it'd be nice to hoist it out
of ext4 and overlayfs.

-Eric