• Jan Kara's avatar
    ext4: avoid unnecessary transaction starts during writeback · 6b8ed620
    Jan Kara authored
    ext4_writepages() currently works in a loop like:
      start a transaction
      scan inode for pages to write
      map and submit these pages
      stop the transaction
    
    This loop results in starting transaction once more than is needed
    because in the last iteration we start a transaction only to scan the
    inode and find there are no pages to write. This can be significant
    increase in number of transaction starts for single-extent files or
    files that have all blocks already mapped. Furthermore we already know
    from previous iteration whether there are more pages to write or not. So
    propagate the information from mpage_prepare_extent_to_map() and avoid
    unnecessary looping in case there are no more pages to write.
    Signed-off-by: default avatarJan Kara <jack@suse.cz>
    Link: https://lore.kernel.org/r/20200525081215.29451-1-jack@suse.czSigned-off-by: default avatarTheodore Ts'o <tytso@mit.edu>
    6b8ed620
inode.c 174 KB