Message ID | 20240814023912.3959299-1-lihongbo22@huawei.com (mailing list archive) |
---|---|
Headers | show |
Series | f2fs: new mount API conversion | expand |
Does there exist CI test for f2fs? I can only write the mount test for f2fs refer to tests/ext4/053. And I have tested this in local. Thanks, Hongbo On 2024/8/14 10:39, Hongbo Li wrote: > Since many filesystems have done the new mount API conversion, > we introduce the new mount API conversion in f2fs. > > The series can be applied on top of the current mainline tree > and the work is based on the patches from Lukas Czerner (has > done this in ext4[1]). His patch give me a lot of ideas. > > Here is a high level description of the patchset: > > 1. Prepare the f2fs mount parameters required by the new mount > API and use it for parsing, while still using the old API to > get mount options string. Split the parameter parsing and > validation of the parse_options helper into two separate > helpers. > > f2fs: Add fs parameter specifications for mount options > f2fs: move the option parser into handle_mount_opt > f2fs: move option validation into a separate helper > > 2. Remove the use of sb/sbi structure of f2fs from all the > parsing code, because with the new mount API the parsing is > going to be done before we even get the super block. In this > part, we introduce f2fs_fs_context to hold the temporary > options when parsing. For the simple options check, it has > to be done during parsing by using f2fs_fs_context structure. > For the check which needs sb/sbi, we do this during super > block filling. > > f2fs: Allow sbi to be NULL in f2fs_printk > f2fs: Add f2fs_fs_context to record the mount options > f2fs: separate the options parsing and options checking > > 3. Switch the f2fs to use the new mount API for mount and > remount. > > f2fs: introduce fs_context_operation structure > f2fs: switch to the new mount api > > 4. Cleanup the old unused structures and helpers. > > f2fs: remove unused structure and functions > > There is still a potential to do some cleanups and perhaps > refactoring. However that can be done later after the conversion > to the new mount API which is the main purpose of the patchset. > > [1] https://lore.kernel.org/all/20211021114508.21407-1-lczerner@redhat.com/ > > Hongbo Li (9): > f2fs: Add fs parameter specifications for mount options > f2fs: move the option parser into handle_mount_opt > f2fs: move option validation into a separate helper > f2fs: Allow sbi to be NULL in f2fs_printk > f2fs: Add f2fs_fs_context to record the mount options > f2fs: separate the options parsing and options checking > f2fs: introduce fs_context_operation structure > f2fs: switch to the new mount api > f2fs: remove unused structure and functions > > fs/f2fs/super.c | 2211 ++++++++++++++++++++++++++++------------------- > 1 file changed, 1341 insertions(+), 870 deletions(-) >
Just FWIW - I had missed this thread when I got temporarily unsubscribed from fsdevel. I have a series that I was hacking on for this same work, at https://git.kernel.org/pub/scm/linux/kernel/git/sandeen/linux.git/commit/?h=f2fs-mount-api but it's very rough and almost certainly contains bugs. It may or may not be of any help to you, but just FYI. I'll try to help review/test your series since I tried to solve this as well, but I never completed the work. :) Thanks, -Eric On 8/27/24 6:47 AM, Hongbo Li wrote: > Does there exist CI test for f2fs? I can only write the mount test for f2fs refer to tests/ext4/053. And I have tested this in local. > > Thanks, > Hongbo > > On 2024/8/14 10:39, Hongbo Li wrote: >> Since many filesystems have done the new mount API conversion, >> we introduce the new mount API conversion in f2fs. >> >> The series can be applied on top of the current mainline tree >> and the work is based on the patches from Lukas Czerner (has >> done this in ext4[1]). His patch give me a lot of ideas. >> >> Here is a high level description of the patchset: >> >> 1. Prepare the f2fs mount parameters required by the new mount >> API and use it for parsing, while still using the old API to >> get mount options string. Split the parameter parsing and >> validation of the parse_options helper into two separate >> helpers. >> >> f2fs: Add fs parameter specifications for mount options >> f2fs: move the option parser into handle_mount_opt >> f2fs: move option validation into a separate helper >> >> 2. Remove the use of sb/sbi structure of f2fs from all the >> parsing code, because with the new mount API the parsing is >> going to be done before we even get the super block. In this >> part, we introduce f2fs_fs_context to hold the temporary >> options when parsing. For the simple options check, it has >> to be done during parsing by using f2fs_fs_context structure. >> For the check which needs sb/sbi, we do this during super >> block filling. >> >> f2fs: Allow sbi to be NULL in f2fs_printk >> f2fs: Add f2fs_fs_context to record the mount options >> f2fs: separate the options parsing and options checking >> >> 3. Switch the f2fs to use the new mount API for mount and >> remount. >> >> f2fs: introduce fs_context_operation structure >> f2fs: switch to the new mount api >> >> 4. Cleanup the old unused structures and helpers. >> >> f2fs: remove unused structure and functions >> >> There is still a potential to do some cleanups and perhaps >> refactoring. However that can be done later after the conversion >> to the new mount API which is the main purpose of the patchset. >> >> [1] https://lore.kernel.org/all/20211021114508.21407-1-lczerner@redhat.com/ >> >> Hongbo Li (9): >> f2fs: Add fs parameter specifications for mount options >> f2fs: move the option parser into handle_mount_opt >> f2fs: move option validation into a separate helper >> f2fs: Allow sbi to be NULL in f2fs_printk >> f2fs: Add f2fs_fs_context to record the mount options >> f2fs: separate the options parsing and options checking >> f2fs: introduce fs_context_operation structure >> f2fs: switch to the new mount api >> f2fs: remove unused structure and functions >> >> fs/f2fs/super.c | 2211 ++++++++++++++++++++++++++++------------------- >> 1 file changed, 1341 insertions(+), 870 deletions(-) >> >
On 2024/8/31 1:07, Eric Sandeen wrote: > Just FWIW - > > I had missed this thread when I got temporarily unsubscribed from fsdevel. > I have a series that I was hacking on for this same work, at > https://git.kernel.org/pub/scm/linux/kernel/git/sandeen/linux.git/commit/?h=f2fs-mount-api > but it's very rough and almost certainly contains bugs. It may or may not > be of any help to you, but just FYI. > > I'll try to help review/test your series since I tried to solve this as > well, but I never completed the work. :) That will be great! Thank you very much! There is still a lot of refactoring that can be done. At the time, the consideration was to make the smallest possible changes, so many places were essentially preserved. We can work together to make this better. Thanks, Hongbo > > Thanks, > -Eric > > On 8/27/24 6:47 AM, Hongbo Li wrote: >> Does there exist CI test for f2fs? I can only write the mount test for f2fs refer to tests/ext4/053. And I have tested this in local. >> >> Thanks, >> Hongbo >> >> On 2024/8/14 10:39, Hongbo Li wrote: >>> Since many filesystems have done the new mount API conversion, >>> we introduce the new mount API conversion in f2fs. >>> >>> The series can be applied on top of the current mainline tree >>> and the work is based on the patches from Lukas Czerner (has >>> done this in ext4[1]). His patch give me a lot of ideas. >>> >>> Here is a high level description of the patchset: >>> >>> 1. Prepare the f2fs mount parameters required by the new mount >>> API and use it for parsing, while still using the old API to >>> get mount options string. Split the parameter parsing and >>> validation of the parse_options helper into two separate >>> helpers. >>> >>> f2fs: Add fs parameter specifications for mount options >>> f2fs: move the option parser into handle_mount_opt >>> f2fs: move option validation into a separate helper >>> >>> 2. Remove the use of sb/sbi structure of f2fs from all the >>> parsing code, because with the new mount API the parsing is >>> going to be done before we even get the super block. In this >>> part, we introduce f2fs_fs_context to hold the temporary >>> options when parsing. For the simple options check, it has >>> to be done during parsing by using f2fs_fs_context structure. >>> For the check which needs sb/sbi, we do this during super >>> block filling. >>> >>> f2fs: Allow sbi to be NULL in f2fs_printk >>> f2fs: Add f2fs_fs_context to record the mount options >>> f2fs: separate the options parsing and options checking >>> >>> 3. Switch the f2fs to use the new mount API for mount and >>> remount. >>> >>> f2fs: introduce fs_context_operation structure >>> f2fs: switch to the new mount api >>> >>> 4. Cleanup the old unused structures and helpers. >>> >>> f2fs: remove unused structure and functions >>> >>> There is still a potential to do some cleanups and perhaps >>> refactoring. However that can be done later after the conversion >>> to the new mount API which is the main purpose of the patchset. >>> >>> [1] https://lore.kernel.org/all/20211021114508.21407-1-lczerner@redhat.com/ >>> >>> Hongbo Li (9): >>> f2fs: Add fs parameter specifications for mount options >>> f2fs: move the option parser into handle_mount_opt >>> f2fs: move option validation into a separate helper >>> f2fs: Allow sbi to be NULL in f2fs_printk >>> f2fs: Add f2fs_fs_context to record the mount options >>> f2fs: separate the options parsing and options checking >>> f2fs: introduce fs_context_operation structure >>> f2fs: switch to the new mount api >>> f2fs: remove unused structure and functions >>> >>> fs/f2fs/super.c | 2211 ++++++++++++++++++++++++++++------------------- >>> 1 file changed, 1341 insertions(+), 870 deletions(-) >>> >> >
Is the subject of the email required to be [f2fs-dev][PATCH]? Thanks, Hongbo On 2024/8/14 10:39, Hongbo Li wrote: > Since many filesystems have done the new mount API conversion, > we introduce the new mount API conversion in f2fs. > > The series can be applied on top of the current mainline tree > and the work is based on the patches from Lukas Czerner (has > done this in ext4[1]). His patch give me a lot of ideas. > > Here is a high level description of the patchset: > > 1. Prepare the f2fs mount parameters required by the new mount > API and use it for parsing, while still using the old API to > get mount options string. Split the parameter parsing and > validation of the parse_options helper into two separate > helpers. > > f2fs: Add fs parameter specifications for mount options > f2fs: move the option parser into handle_mount_opt > f2fs: move option validation into a separate helper > > 2. Remove the use of sb/sbi structure of f2fs from all the > parsing code, because with the new mount API the parsing is > going to be done before we even get the super block. In this > part, we introduce f2fs_fs_context to hold the temporary > options when parsing. For the simple options check, it has > to be done during parsing by using f2fs_fs_context structure. > For the check which needs sb/sbi, we do this during super > block filling. > > f2fs: Allow sbi to be NULL in f2fs_printk > f2fs: Add f2fs_fs_context to record the mount options > f2fs: separate the options parsing and options checking > > 3. Switch the f2fs to use the new mount API for mount and > remount. > > f2fs: introduce fs_context_operation structure > f2fs: switch to the new mount api > > 4. Cleanup the old unused structures and helpers. > > f2fs: remove unused structure and functions > > There is still a potential to do some cleanups and perhaps > refactoring. However that can be done later after the conversion > to the new mount API which is the main purpose of the patchset. > > [1] https://lore.kernel.org/all/20211021114508.21407-1-lczerner@redhat.com/ > > Hongbo Li (9): > f2fs: Add fs parameter specifications for mount options > f2fs: move the option parser into handle_mount_opt > f2fs: move option validation into a separate helper > f2fs: Allow sbi to be NULL in f2fs_printk > f2fs: Add f2fs_fs_context to record the mount options > f2fs: separate the options parsing and options checking > f2fs: introduce fs_context_operation structure > f2fs: switch to the new mount api > f2fs: remove unused structure and functions > > fs/f2fs/super.c | 2211 ++++++++++++++++++++++++++++------------------- > 1 file changed, 1341 insertions(+), 870 deletions(-) >