• Jaegeuk Kim's avatar
    f2fs: fix fs corruption due to zero inode page · e71f0996
    Jaegeuk Kim authored
    commit 9bb02c36 upstream.
    
    This patch fixes the following scenario.
    
    - f2fs_create/f2fs_mkdir             - write_checkpoint
     - f2fs_mark_inode_dirty_sync         - block_operations
                                           - f2fs_lock_all
                                           - f2fs_sync_inode_meta
                                            - f2fs_unlock_all
                                            - sync_inode_metadata
     - f2fs_lock_op
                                             - f2fs_write_inode
                                              - update_inode_page
                                               - get_node_page
                                                 return -ENOENT
     - new_inode_page
      - fill_node_footer
     - f2fs_mark_inode_dirty_sync
     - ...
     - f2fs_unlock_op
                                              - f2fs_inode_synced
                                           - f2fs_lock_all
                                           - do_checkpoint
    
    In this checkpoint, we can get an inode page which contains zeros having valid
    node footer only.
    Signed-off-by: default avatarJaegeuk Kim <jaegeuk@kernel.org>
    Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
    e71f0996
namei.c 26.4 KB