Re: [PATCH 0/9] f2fs: new mount API conversion

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 





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@xxxxxxxxxx/

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(-)







[Index of Archives]     [Linux Ext4 Filesystem]     [Union Filesystem]     [Filesystem Testing]     [Ceph Users]     [Ecryptfs]     [NTFS 3]     [AutoFS]     [Kernel Newbies]     [Share Photos]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux Cachefs]     [Reiser Filesystem]     [Linux RAID]     [NTFS 3]     [Samba]     [Device Mapper]     [CEPH Development]

  Powered by Linux