On Fri, 20 Dec 2024 09:16:27 +0800, Zhang Yi wrote: > Changes since v4: > - In patch 1, call ext4_truncate_folio() only if truncating range is > PAGE_SIZE unaligned, and rename the variable start_boundary to > page_boundary. > Changes since v3: > - In patch 1, rename ext4_truncate_folios_range() and move journalled > mode specified handles and truncate_pagecache_range() into this > helper. > - In patch 3, switch to use ext4_truncate_page_cache_block_range(). > - In patch 4, use IS_ALIGNED macro to check offset alignments and > introduce EXT4_B_TO_LBLK to do the lblk conversion. > - In patch 5, keep the first ext4_alloc_file_blocks() call before > truncating pagecache. > - In patch 9, rename 'out' label to 'out_inode_lock'. > Changes since v2: > - Add Patch 1 to address a newly discovered data loss issue that occurs > when using mmap to write after zeroing out a partial page on a > filesystem with the block size smaller than the page size. > - Do not write all data before punching hole, zeroing out and > collapsing range as Jan suggested, also drop current data writeback > in ext4_punch_hole(). > - Since we don't write back all data in these 4 operations, we only > writeback data during inserting range,so do not factor out new > helpers in the last two patches, just move common components of > sub-operations into ext4_fallocate(). > - Only keep Jan's review tag on patch 2 and 8, other patches contain > many code adaptations, so please review them again. > Changes since v1: > - Fix an using uninitialized variable problem in the error out path in > ext4_do_fallocate() in patch 08. > > [...] Applied, thanks! [01/10] ext4: remove writable userspace mappings before truncating page cache commit: 17207d0bb209e8b40f27d7f3f96e82a78af0bf2c [02/10] ext4: don't explicit update times in ext4_fallocate() commit: 73ae756ecdfa9684446134590eef32b0f067249c [03/10] ext4: don't write back data before punch hole in nojournal mode commit: 43d0105e2c7523cc6b14cad65e2044e829c0a07a [04/10] ext4: refactor ext4_punch_hole() commit: 982bf37da09d078570650b691d9084f43805a5de [05/10] ext4: refactor ext4_zero_range() commit: 53471e0bedad5891b860d02233819dc0e28189e2 [06/10] ext4: refactor ext4_collapse_range() commit: 162e3c5ad1672ef41dccfb28ad198c704b8aa9e7 [07/10] ext4: refactor ext4_insert_range() commit: 49425504376c335c68f7be54ae7c32312afd9475 [08/10] ext4: factor out ext4_do_fallocate() commit: fd2f764826df5489b849a8937b5a093aae5b1816 [09/10] ext4: move out inode_lock into ext4_fallocate() commit: ea3f17efd36b56c5839289716ba83eaa85893590 [10/10] ext4: move out common parts into ext4_fallocate() commit: 2890e5e0f49e10f3dadc5f7b7ea434e3e77e12a6 Best regards, -- Theodore Ts'o <tytso@xxxxxxx>