• Harshad Shirwadkar's avatar
    ext4: main fast-commit commit path · aa75f4d3
    Harshad Shirwadkar authored
    This patch adds main fast commit commit path handlers. The overall
    patch can be divided into two inter-related parts:
    
    (A) Metadata updates tracking
    
        This part consists of helper functions to track changes that need
        to be committed during a commit operation. These updates are
        maintained by Ext4 in different in-memory queues. Following are
        the APIs and their short description that are implemented in this
        patch:
    
        - ext4_fc_track_link/unlink/creat() - Track unlink. link and creat
          operations
        - ext4_fc_track_range() - Track changed logical block offsets
          inodes
        - ext4_fc_track_inode() - Track inodes
        - ext4_fc_mark_ineligible() - Mark file system fast commit
          ineligible()
        - ext4_fc_start_update() / ext4_fc_stop_update() /
          ext4_fc_start_ineligible() / ext4_fc_stop_ineligible() These
          functions are useful for co-ordinating inode updates with
          commits.
    
    (B) Main commit Path
    
        This part consists of functions to convert updates tracked in
        in-memory data structures into on-disk commits. Function
        ext4_fc_commit() is the main entry point to commit path.
    Reported-by: default avatarkernel test robot <lkp@intel.com>
    Signed-off-by: default avatarHarshad Shirwadkar <harshadshirwadkar@gmail.com>
    Link: https://lore.kernel.org/r/20201015203802.3597742-6-harshadshirwadkar@gmail.comSigned-off-by: default avatarTheodore Ts'o <tytso@mit.edu>
    aa75f4d3
fast_commit.c 34.1 KB