/* SPDX-License-Identifier: GPL-2.0 */ #ifndef __FAST_COMMIT_H__ #define __FAST_COMMIT_H__ /* * Note this file is present in e2fsprogs/lib/ext2fs/fast_commit.h and * linux/fs/ext4/fast_commit.h. These file should always be byte identical. */ /* Fast commit tags */ #define EXT4_FC_TAG_ADD_RANGE … #define EXT4_FC_TAG_DEL_RANGE … #define EXT4_FC_TAG_CREAT … #define EXT4_FC_TAG_LINK … #define EXT4_FC_TAG_UNLINK … #define EXT4_FC_TAG_INODE … #define EXT4_FC_TAG_PAD … #define EXT4_FC_TAG_TAIL … #define EXT4_FC_TAG_HEAD … #define EXT4_FC_SUPPORTED_FEATURES … /* On disk fast commit tlv value structures */ /* Fast commit on disk tag length structure */ struct ext4_fc_tl { … }; /* Value structure for tag EXT4_FC_TAG_HEAD. */ struct ext4_fc_head { … }; /* Value structure for EXT4_FC_TAG_ADD_RANGE. */ struct ext4_fc_add_range { … }; /* Value structure for tag EXT4_FC_TAG_DEL_RANGE. */ struct ext4_fc_del_range { … }; /* * This is the value structure for tags EXT4_FC_TAG_CREAT, EXT4_FC_TAG_LINK * and EXT4_FC_TAG_UNLINK. */ struct ext4_fc_dentry_info { … }; /* Value structure for EXT4_FC_TAG_INODE. */ struct ext4_fc_inode { … }; /* Value structure for tag EXT4_FC_TAG_TAIL. */ struct ext4_fc_tail { … }; /* Tag base length */ #define EXT4_FC_TAG_BASE_LEN … /* * Fast commit status codes */ enum { … }; /* * Fast commit ineligiblity reasons: */ enum { … }; #ifdef __KERNEL__ /* * In memory list of dentry updates that are performed on the file * system used by fast commit code. */ struct ext4_fc_dentry_update { … }; struct ext4_fc_stats { … }; #define EXT4_FC_REPLAY_REALLOC_INCREMENT … /* * Physical block regions added to different inodes due to fast commit * recovery. These are set during the SCAN phase. During the replay phase, * our allocator excludes these from its allocation. This ensures that * we don't accidentally allocating a block that is going to be used by * another inode. */ struct ext4_fc_alloc_region { … }; /* * Fast commit replay state. */ struct ext4_fc_replay_state { … }; #define region_last(__region) … #endif static inline const char *tag2str(__u16 tag) { … } #endif /* __FAST_COMMIT_H__ */