2020-10-29 15:47:21

by Kaixu Xia

[permalink] [raw]
Subject: [PATCH] ext4: report error message when setting usrjquota or grpjquota options failed

From: Kaixu Xia <[email protected]>

The macro MOPT_Q is used to indicates the mount option is quota stuff and
would be the same as MOPT_NOSUPPORT when CONFIG_QUOTA is disabled. We want
to report NOSUPPORT error message when setting usrjquota or grpjquota
options with the CONFIG_QUOTA is disabled, but now it report nothing. So
fix it by adding the MOPT_STRING flag.

Signed-off-by: Kaixu Xia <[email protected]>
---
fs/ext4/super.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/fs/ext4/super.c b/fs/ext4/super.c
index 83fdde498414..a26ba4cf5626 100644
--- a/fs/ext4/super.c
+++ b/fs/ext4/super.c
@@ -2025,8 +2025,8 @@ static const struct mount_opts {
{Opt_noquota, (EXT4_MOUNT_QUOTA | EXT4_MOUNT_USRQUOTA |
EXT4_MOUNT_GRPQUOTA | EXT4_MOUNT_PRJQUOTA),
MOPT_CLEAR | MOPT_Q},
- {Opt_usrjquota, 0, MOPT_Q},
- {Opt_grpjquota, 0, MOPT_Q},
+ {Opt_usrjquota, 0, MOPT_Q | MOPT_STRING},
+ {Opt_grpjquota, 0, MOPT_Q | MOPT_STRING},
{Opt_offusrjquota, 0, MOPT_Q},
{Opt_offgrpjquota, 0, MOPT_Q},
{Opt_jqfmt_vfsold, QFMT_VFS_OLD, MOPT_QFMT},
--
2.20.0


2020-11-07 03:58:44

by Theodore Ts'o

[permalink] [raw]
Subject: Re: [PATCH] ext4: report error message when setting usrjquota or grpjquota options failed

On Thu, Oct 29, 2020 at 11:46:36PM +0800, [email protected] wrote:
> From: Kaixu Xia <[email protected]>
>
> The macro MOPT_Q is used to indicates the mount option is quota stuff and
> would be the same as MOPT_NOSUPPORT when CONFIG_QUOTA is disabled. We want
> to report NOSUPPORT error message when setting usrjquota or grpjquota
> options with the CONFIG_QUOTA is disabled, but now it report nothing. So
> fix it by adding the MOPT_STRING flag.
>
> Signed-off-by: Kaixu Xia <[email protected]>

Thanks, applied with an improved commit description:

The macro MOPT_Q is used to indicates the mount option is related
to quota stuff and is defined to be MOPT_NOSUPPORT when
CONFIG_QUOTA is disabled. Normally the quota options are handled
explicitly, so it didn't matter that the MOPT_STRING flag was
missing, even though the usrjquota and grpjquota mount options
take a string argument. It's important that's present in the
!CONFIG_QUOTA case, since without MOPT_STRING, the mount option
matcher will match usrjquota= followed by an integer, and will
otherwise skip the table entry, and so "mount option not
supported" error message is never reported.

- Ted