On 8/18/25 16:06, Hongbo Li wrote:
> Hi Chao,
> 
> On 2025/8/18 10:09, Chao Yu wrote:
>> The mount behavior changed after commit d18535132523 ("f2fs: separate the
>> options parsing and options checking"), let's fix it.
>>
>> [Scripts]
>> mkfs.f2fs -f /dev/vdb
>> mount -t f2fs -o usrquota /dev/vdb /mnt/f2fs
>> quotacheck -uc /mnt/f2fs
>> umount /mnt/f2fs
>> mount -t f2fs -o usrjquota=aquota.user,jqfmt=vfsold /dev/vdb /mnt/f2fs
>> mount|grep f2fs
>> mount -t f2fs -o remount,usrjquota=,jqfmt=vfsold /dev/vdb /mnt/f2fs
>> mount|grep f2fs
>> dmesg
>>
>> [Before commit]
>> mount#1: ...,quota,jqfmt=vfsold,usrjquota=aquota.user,...
>> mount#2: ...,quota,jqfmt=vfsold,...
>> kmsg: no output
>>
>> [After commit]
>> mount#1: ...,quota,jqfmt=vfsold,usrjquota=aquota.user,...
>> mount#2: ...,quota,jqfmt=vfsold,usrjquota=aquota.user,...
>> kmsg: "user quota file already specified"
>>
>> [After patch]
>> mount#1: ...,quota,jqfmt=vfsold,usrjquota=aquota.user,...
>> mount#2: ...,quota,jqfmt=vfsold,...
>> kmsg: "remove qf_name aquota.user"
>>
>> Fixes: d18535132523 ("f2fs: separate the options parsing and options 
>> checking")
>> Cc: Hongbo Li <lihongb...@huawei.com>
>> Signed-off-by: Chao Yu <c...@kernel.org>
>> ---
>>   fs/f2fs/super.c | 7 +++++--
>>   1 file changed, 5 insertions(+), 2 deletions(-)
>>
>> diff --git a/fs/f2fs/super.c b/fs/f2fs/super.c
>> index 465604fdc5dd..07f6c8cac07a 100644
>> --- a/fs/f2fs/super.c
>> +++ b/fs/f2fs/super.c
>> @@ -1219,8 +1219,11 @@ static int f2fs_check_quota_consistency(struct 
>> fs_context *fc,
>>                   goto err_jquota_change;
>>                 if (old_qname) {
>> -                if (new_qname &&
>> -                    strcmp(old_qname, new_qname) == 0) {
>> +                if (!new_qname) {
> 
> Thanks for catching this. Do we also need the patch 1/2 ? It seems this patch 
> also solve the syzbot problems.

I prefer to split it, since it'd better to use one patch to resolve one
problem. :)

Thanks,

> 
> Thanks,
> Hongbo
> 
>> +                    f2fs_info(sbi, "remove qf_name %s",
>> +                                old_qname);
>> +                    continue;
>> +                } else if (strcmp(old_qname, new_qname) == 0) {
>>                       ctx->qname_mask &= ~(1 << i);
>>                       continue;
>>                   }



_______________________________________________
Linux-f2fs-devel mailing list
Linux-f2fs-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel

Reply via email to