V1->V2: Modify the patch 1 description and add the Fixes tag. Add the patch 2 as suggested by Jan Kara. V2->V3: Remove the redundant judgment of count in Patch [1]. Rename ext4_es_alloc_should_nofail to ext4_es_must_keep. Split Patch [2]. Make some functions return void to simplify the code. V3->V4: using nofail preallocation. This patch set consists of three parts: 1. Patch [1] fix WARNING in ext4_da_update_reserve_space. 2. Patch [2]-[8] fix extent tree inconsistencies that may be caused by memory allocation failures. 3. Patch [9]-[12] is cleanup. Baokun Li (12): ext4: only update i_reserved_data_blocks on successful block allocation ext4: add a new helper to check if es must be kept ext4: factor out __es_alloc_extent() and __es_free_extent() ext4: use pre-allocated es in __es_insert_extent() ext4: use pre-allocated es in __es_remove_extent() ext4: using nofail preallocation in ext4_es_remove_extent() ext4: using nofail preallocation in ext4_es_insert_delayed_block() ext4: using nofail preallocation in ext4_es_insert_extent() ext4: make ext4_es_remove_extent() return void ext4: make ext4_es_insert_delayed_block() return void ext4: make ext4_es_insert_extent() return void ext4: make ext4_zeroout_es() return void fs/ext4/extents.c | 49 +++------ fs/ext4/extents_status.c | 207 ++++++++++++++++++++++++--------------- fs/ext4/extents_status.h | 14 +-- fs/ext4/indirect.c | 8 ++ fs/ext4/inline.c | 12 +-- fs/ext4/inode.c | 49 ++------- 6 files changed, 169 insertions(+), 170 deletions(-) -- 2.31.1