• Lukas Czerner's avatar
    ext4: Completely separate options parsing and sb setup · 7edfd85b
    Lukas Czerner authored
    The new mount api separates option parsing and super block setup into
    two distinct steps and so we need to separate the options parsing out of
    the ext4_fill_super() and ext4_remount().
    
    In order to achieve this we have to create new ext4_fill_super() and
    ext4_remount() functions which will serve its purpose only until we
    actually do convert to the new api (as such they are only temporary for
    this patch series) and move the option parsing out of the old function
    which will now be renamed to __ext4_fill_super() and __ext4_remount().
    
    There is a small complication in the fact that while the mount option
    parsing is going to happen before we get to __ext4_fill_super(), the
    mount options stored in the super block itself needs to be applied
    first, before the user specified mount options.
    
    So with this patch we're going through the following sequence:
    
    - parse user provided options (including sb block)
    - initialize sbi and store s_sb_block if provided
    - in __ext4_fill_super()
    	- read the super block
    	- parse and apply options specified in s_mount_opts
    	- check and apply user provided options stored in ctx
    	- continue with the regular ext4_fill_super operation
    
    It's not exactly the most elegant solution, but if we still want to
    support s_mount_opts we have to do it in this order.
    Signed-off-by: default avatarLukas Czerner <lczerner@redhat.com>
    Reviewed-by: default avatarCarlos Maiolino <cmaiolino@redhat.com>
    Link: https://lore.kernel.org/r/20211027141857.33657-10-lczerner@redhat.comSigned-off-by: default avatarTheodore Ts'o <tytso@mit.edu>
    7edfd85b
super.c 206 KB