From: "Theodore Ts'o" <tytso@mit.edu>
To: Linus Torvalds <torvalds@linux-foundation.org>
Cc: linux-ext4@vger.kernel.org, linux-kernel@vger.kernel.org,
linux-mm@kvack.org
Subject: [GIT PULL] ext4 changes for the 6.4 merge window
Date: Tue, 25 Apr 2023 00:18:38 -0400 [thread overview]
Message-ID: <20230425041838.GA150312@mit.edu> (raw)
The following changes since commit e8d018dd0257f744ca50a729e3d042cf2ec9da65:
Linux 6.3-rc3 (2023-03-19 13:27:55 -0700)
are available in the Git repository at:
https://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4.git tags/ext4_for_linus
for you to fetch changes up to 519fe1bae7e20fc4e7f179d50b6102b49980e85d:
ext4: Add a uapi header for ext4 userspace APIs (2023-04-19 23:39:42 -0400)
-------
Please note that after merging the mm and ext4 trees you will need to
apply the patch found here[1].
[1] https://lore.kernel.org/r/20230419120923.3152939-1-willy@infradead.org
This is due to a patch in the mm tree, "mm: return an ERR_PTR from
__filemap_get_folio" changing that function to returning an ERR_PTR
instead of returning NULL on an error. Because we have a lot of folio
changes flowing in various trees, this patch can't be applied to
either the ext4 or mm trees, but only *after* the two trees are merged
together. There are also some minor merge conflicts again caused by
other folio changes. Commit 5854356ab539 from linux-next's
next-20230424 has the merge conflicts resolved as well as the patch in
[1]. For more details/discussion, please see [2] and the prediction
in [3], "I'm sure Linus will love it". :-P
[2] https://lore.kernel.org/r/ZD6WNSKCjGGEFLB3@casper.infradead.org
[3] https://lore.kernel.org/r/ZD8F3qV6eLHZpagX@casper.infradead.org
----------------------------------------------------------------
There are a number of major cleanups in ext4 this cycle:
* The data=journal writepath has been significantly cleaned up and
simplified, and reduces a large number of data=journal special cases
by Jan Kara.
* Ojaswin Muhoo has replaced linked list used to track extents that
have been used for inode preallocation with a red-black tree in the
multi-block allocator. This improves performance for workloads
which do a large number of random allocating writes.
* Thanks to Kemeng Shi for a lot of cleanup and bug fixes in the
multi-block allocator.
* Matthew wilcox has converted the code paths for reading and writing
ext4 pages to use folios.
* Jason Yan has continued to factor out ext4_fill_super() into smaller
functions for improve ease of maintenance and comprehension.
* Josh Triplett has created an uapi header for ext4 userspace API's.
----------------------------------------------------------------
Jan Kara (21):
ext4: Update stale comment about write constraints
ext4: Use nr_to_write directly in mpage_prepare_extent_to_map()
ext4: Mark page for delayed dirtying only if it is pinned
ext4: Don't unlock page in ext4_bio_write_page()
ext4: Move page unlocking out of mpage_submit_page()
ext4: Move mpage_page_done() calls after error handling
ext4: Convert data=journal writeback to use ext4_writepages()
ext4: Fix warnings when freezing filesystem with journaled data
jdb2: Don't refuse invalidation of already invalidated buffers
ext4: Mark pages with journalled data dirty
ext4: Keep pages with journalled data dirty
ext4: Clear dirty bit from pages without data to write
ext4: Commit transaction before writing back pages in data=journal mode
ext4: Drop special handling of journalled data from ext4_sync_file()
ext4: Drop special handling of journalled data from extent shifting operations
ext4: Fix special handling of journalled data from extent zeroing
ext4: Drop special handling of journalled data from ext4_evict_inode()
ext4: Drop special handling of journalled data from ext4_quota_on()
ext4: Simplify handling of journalled data in ext4_bmap()
ext4: Update comment in mpage_prepare_extent_to_map()
Revert "ext4: Fix warnings when freezing filesystem with journaled data"
Jason Yan (8):
ext4: factor out ext4_hash_info_init()
ext4: factor out ext4_percpu_param_init() and ext4_percpu_param_destroy()
ext4: use ext4_group_desc_free() in ext4_put_super() to save some duplicated code
ext4: factor out ext4_flex_groups_free()
ext4: rename two functions with 'check'
ext4: move s_reserved_gdt_blocks and addressable checking into ext4_check_geometry()
ext4: factor out ext4_block_group_meta_init()
ext4: move dax and encrypt checking into ext4_check_feature_compatibility()
Josh Triplett (1):
ext4: Add a uapi header for ext4 userspace APIs
Kemeng Shi (33):
ext4: properly handle error of ext4_init_block_bitmap in ext4_read_block_bitmap_nowait
ext4: correct validation check of inode table in ext4_valid_block_bitmap
ext4: call ext4_bg_num_gdb_[no]meta directly in ext4_num_base_meta_clusters
ext4: remove unnecessary check in ext4_bg_num_gdb_nometa
ext4: remove stale comment in ext4_init_block_bitmap
ext4: stop trying to verify just initialized bitmap in ext4_read_block_bitmap_nowait
ext4: improve inode table blocks counting in ext4_num_overhead_clusters
ext4: remove unused group parameter in ext4_inode_bitmap_csum_verify
ext4: remove unused group parameter in ext4_inode_bitmap_csum_set
ext4: remove unused group parameter in ext4_block_bitmap_csum_verify
ext4: remove unused group parameter in ext4_block_bitmap_csum_set
ext4: set goal start correctly in ext4_mb_normalize_request
ext4: allow to find by goal if EXT4_MB_HINT_GOAL_ONLY is set
ext4: get correct ext4_group_info in ext4_mb_prefetch_fini
ext4: correct calculation of s_mb_preallocated
ext4: correct start of used group pa for debug in ext4_mb_use_group_pa
ext4: protect pa->pa_free in ext4_discard_allocated_blocks
ext4: add missed brelse in ext4_free_blocks_simple
ext4: remove unused return value of ext4_mb_try_best_found and ext4_mb_free_metadata
ext4: Remove unnecessary release when memory allocation failed in ext4_mb_init_cache
ext4: remove unnecessary e4b->bd_buddy_page check in ext4_mb_load_buddy_gfp
ext4: remove unnecessary check in ext4_mb_new_blocks
ext4: remove dead check in mb_buddy_mark_free
ext4: remove ac->ac_found > sbi->s_mb_min_to_scan dead check in ext4_mb_check_limits
ext4: use best found when complex scan of group finishs
ext4: remove unnecessary exit_meta_group_info tag
ext4: remove unnecessary count2 in ext4_free_data_in_buddy
ext4: remove unnecessary goto in ext4_mb_mark_diskspace_used
ext4: remove repeat assignment to ac_f_ex
ext4: remove comment code ext4_discard_preallocations
ext4: simplify calculation of blkoff in ext4_mb_new_blocks_simple
ext4: fix typos in mballoc
ext4: avoid unnecessary pointer dereference in ext4_mb_normalize_request
Matthew Wilcox (29):
fs: Add FGP_WRITEBEGIN
fscrypt: Add some folio helper functions
ext4: Convert ext4_bio_write_page() to use a folio
ext4: Convert ext4_finish_bio() to use folios
ext4: Turn mpage_process_page() into mpage_process_folio()
ext4: Convert mpage_submit_page() to mpage_submit_folio()
ext4: Convert mpage_page_done() to mpage_folio_done()
ext4: Convert ext4_bio_write_page() to ext4_bio_write_folio()
ext4: Convert ext4_readpage_inline() to take a folio
ext4: Convert ext4_convert_inline_data_to_extent() to use a folio
ext4: Convert ext4_try_to_write_inline_data() to use a folio
ext4: Convert ext4_da_convert_inline_data_to_extent() to use a folio
ext4: Convert ext4_da_write_inline_data_begin() to use a folio
ext4: Convert ext4_read_inline_page() to ext4_read_inline_folio()
ext4: Convert ext4_write_inline_data_end() to use a folio
ext4: Convert ext4_write_begin() to use a folio
ext4: Convert ext4_write_end() to use a folio
ext4: Use a folio in ext4_journalled_write_end()
ext4: Convert ext4_journalled_zero_new_buffers() to use a folio
ext4: Convert __ext4_block_zero_page_range() to use a folio
ext4: Convert ext4_page_nomap_can_writeout to ext4_folio_nomap_can_writeout
ext4: Use a folio in ext4_da_write_begin()
ext4: Convert ext4_mpage_readpages() to work on folios
ext4: Convert ext4_block_write_begin() to take a folio
ext4: Use a folio in ext4_page_mkwrite()
ext4: Use a folio iterator in __read_end_io()
ext4: Convert mext_page_mkuptodate() to take a folio
ext4: Convert pagecache_read() to use a folio
ext4: Use a folio in ext4_read_merkle_tree_page
Ojaswin Mujoo (9):
ext4: Stop searching if PA doesn't satisfy non-extent file
ext4: Refactor code related to freeing PAs
ext4: Refactor code in ext4_mb_normalize_request() and ext4_mb_use_preallocated()
ext4: Move overlap assert logic into a separate function
ext4: Abstract out overlap fix/check logic in ext4_mb_normalize_request()
ext4: Fix best extent lstart adjustment logic in ext4_mb_new_inode_pa()
ext4: Convert pa->pa_inode_list and pa->pa_obj_lock into a union
ext4: Use rbtrees to manage PAs instead of inode i_prealloc_list
ext4: Remove the logic to trim inode PAs
Theodore Ts'o (2):
ext4: fix comment: "start start" -> "start" in mpage_prepare_extent_to_map()
ext4: convert some BUG_ON's in mballoc to use WARN_RATELIMITED instead
Tom Rix (1):
ext4: remove unneeded check of nr_to_submit
wuchi (1):
ext4: remove useless conditional branch code
Documentation/admin-guide/ext4.rst | 3 -
MAINTAINERS | 1 +
block/bio.c | 1 +
fs/ext4/balloc.c | 124 ++++-----
fs/ext4/bitmap.c | 13 +-
fs/ext4/ext4.h | 114 +-------
fs/ext4/extents.c | 35 +--
fs/ext4/fsync.c | 11 -
fs/ext4/ialloc.c | 14 +-
fs/ext4/inline.c | 171 ++++++------
fs/ext4/inode.c | 810 +++++++++++++++++++++-----------------------------------
fs/ext4/mballoc.c | 691 +++++++++++++++++++++++++++++------------------
fs/ext4/mballoc.h | 17 +-
fs/ext4/move_extent.c | 33 +--
fs/ext4/page-io.c | 116 ++++----
fs/ext4/readpage.c | 72 +++--
fs/ext4/resize.c | 7 +-
fs/ext4/super.c | 413 +++++++++++++++--------------
fs/ext4/sysfs.c | 2 -
fs/ext4/verity.c | 30 +--
fs/iomap/buffered-io.c | 2 +-
fs/jbd2/transaction.c | 3 +
fs/netfs/buffered_read.c | 3 +-
fs/nfs/file.c | 12 +-
include/linux/fscrypt.h | 21 ++
include/linux/page-flags.h | 5 -
include/linux/pagemap.h | 2 +
include/trace/events/ext4.h | 7 -
include/uapi/linux/ext4.h | 117 ++++++++
mm/folio-compat.c | 4 +-
30 files changed, 1413 insertions(+), 1441 deletions(-)
create mode 100644 include/uapi/linux/ext4.h
next reply other threads:[~2023-04-25 4:19 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-04-25 4:18 Theodore Ts'o [this message]
2023-04-26 17:03 ` [GIT PULL] ext4 changes for the 6.4 merge window Linus Torvalds
2023-04-26 17:34 ` Nick Desaulniers
2023-04-26 17:36 ` Nick Desaulniers
2023-04-26 17:43 ` Nick Desaulniers
2023-04-26 18:11 ` Linus Torvalds
2023-04-26 18:22 ` Nick Desaulniers
2023-04-26 18:32 ` Linus Torvalds
2023-04-26 22:07 ` Nick Desaulniers
2023-04-26 22:31 ` Linus Torvalds
2023-04-28 21:02 ` Nick Desaulniers
2023-04-28 21:18 ` Linus Torvalds
2023-04-26 23:16 ` Theodore Ts'o
2023-04-26 19:10 ` Matthew Wilcox
2023-04-26 19:38 ` Linus Torvalds
2023-04-26 23:12 ` Theodore Ts'o
2023-05-03 8:03 ` Dan Carpenter
2023-04-26 17:06 ` pr-tracker-bot
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20230425041838.GA150312@mit.edu \
--to=tytso@mit.edu \
--cc=linux-ext4@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=torvalds@linux-foundation.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.