All of lore.kernel.org
 help / color / mirror / Atom feed
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

             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.