On Tue, Jun 17, 2025 at 08:51:19AM +0300, Otto Kekäläinen wrote:
> 
> After a `git fetch` or a `git pull` it is very easy to review what
> the change is or diff it against the current main branch. There are
> a bunch of tolls, including of course the usual gitk and `git
> difftool --dir-diff` + Meld.

The problem is that it's also very easy *not* to do a very careful
review.  And this is where I really object to the pressure campaign to
tell package maintainers that they have some obligation to review pull
requests from new contributors post-haste, or they are a bad, bad
person.

> Indeed, Forge's don't work offline, but you could git pull/fetch the
> branch before you board an airplane? And then after review git merge
> locally? And once you are off the flight run git push and all modern
> Forges will automatically detect that the commit landed on main and
> close all related pull requests and issues.

Reviewing all of the changes via a "git diff FETCH_HEAD" is far more
difficult and much easier to miss things than reviewing each patch
separately.  That way you can see what the logical change of a small
change makes, and if there's something suspicious, it's much easier to
spot.

If someone sends me a gargantuan commits with dozens of logical
changes, whether it's in a pull request or a singleton message, I
*will* just reject the change outright or just ignore the change until
I have a huge amount of time.

This is why e-mail review of dozens of patches is just far more
convenient, and more secure, than doing a git pull and then trying to
review the damage using "git diff FETCH_HEAD"

Pulling all of the changes and then going on an airplane also doesn't
scale if you have a huge number of changes to review.  See below for
an example.  Granted, this represents about two months worth of
changes and I didn't do them all while off-line, but this should give
you an idea of the scale that I'm working at --- and a merge request
workflow Just Doesn't Scale.

This is why in general for the kernel, only Pull requests are done by
trusted maintainers who have PGP keys so they can sign their git
pulls, and then Linus will do a cursory review, but *all* changes from
new contributors get done via e-mail review, and they get reviewed
very carefully, especially after the hijinks of some Univeristy of
Minnesota researchers and the attack by Jia Tan.

Can we say that the Debian package maintainers are reviewing their
pull requests at *least* as rigorously as kernel maintainers?  We had
better hope so, because Debian package scripts get run as root, and
most Debian might not appreciate it if their e-mails, private keys or
other data gets exfiltrated.

Maybe it's just me, but if I had to trade off the security of Debian
versus keeping newbie contributors happy, I know which I would
consider higher priority.

        `                                       - Ted

----------

New ext4 features and performance improvements:
   * Fast commit performance improvements
   * Multi-fsblock atomic write support for bigalloc file systems
   * Large folio support for regular files

This last can result in really stupendous performance for the right
workloads.  For example, see [1] where the Kernel Test Robot reported
over 37% improvement on a large sequential I/O workload.

[1] https://lore.kernel.org/all/202505161418.ec0d753f-...@intel.com/

There are also the usual bug fixes and cleanups.  Of note are cleanups
of the extent status tree to fix potential races that could result in
the extent status tree getting corrupted under heavy siulatneous
allocation and deallocation to a single file.

----------------------------------------------------------------
Arnd Bergmann (1):
      ext4: avoid -Wformat-security warning

Brian Foster (1):
      ext4: only dirty folios when data journaling regular files

Christoph Hellwig (1):
      ext4: use writeback_iter in ext4_journalled_submit_inode_data_buffers

Eric Biggers (4):
      ext4: remove sbi argument from ext4_chksum()
      ext4: remove sb argument from ext4_superblock_csum()
      jbd2: remove journal_t argument from jbd2_chksum()
      jbd2: remove journal_t argument from jbd2_superblock_csum()

Harshad Shirwadkar (9):
      ext4: convert i_fc_lock to spinlock
      ext4: for committing inode, make ext4_fc_track_inode wait
      ext4: mark inode dirty before grabbing i_data_sem in ext4_setattr
      ext4: rework fast commit commit path
      ext4: drop i_fc_updates from inode fc info
      ext4: update code documentation
      ext4: temporarily elevate commit thread priority
      ext4: convert s_fc_lock to mutex type
      ext4: hold s_fc_lock while during fast commit

Jan Kara (1):
      ext4: fix calculation of credits for extent tree modification

Jeongjun Park (1):
      jbd2: fix data-race and null-ptr-deref in jbd2_journal_dirty_metadata()

Ritesh Harjani (IBM) (12):
      ext4: Document an edge case for overwrites
      ext4: Check if inode uses extents in ext4_inode_can_atomic_write()
      ext4: Make ext4_meta_trans_blocks() non-static for later use
      ext4: Add support for EXT4_GET_BLOCKS_QUERY_LEAF_BLOCKS
      ext4: Add multi-fsblock atomic write support with bigalloc
      ext4: Enable support for ext4 multi-fsblock atomic write using bigalloc
      ext4: Add atomic block write documentation
      ext4: Unwritten to written conversion requires EXT4_EX_NOCACHE
      ext4: Simplify last in leaf check in ext4_map_query_blocks
      ext4: Rename and document EXT4_EX_FILTER to EXT4_EX_QUERY_FILTER
      ext4: Simplify flags in ext4_map_query_blocks()
      ext4: Add a WARN_ON_ONCE for querying LAST_IN_LEAF instead

Thadeu Lima de Souza Cascardo (1):
      ext4: inline: fix len overflow in ext4_prepare_inline_data

Zhang Yi (21):
      ext4: ext4: unify EXT4_EX_NOCACHE|NOFAIL flags in ext4_ext_remove_space()
      ext4: generalize EXT4_GET_BLOCKS_IO_SUBMIT flag usage
      ext4: prevent stale extent cache entries caused by concurrent I/O 
writeback
      ext4: prevent stale extent cache entries caused by concurrent fiemap
      ext4: prevent stale extent cache entries caused by concurrent get es_cache
      ext4: factor out is_special_ino()
      ext4: introduce ext4_check_map_extents_env() debug helper
      ext4: check env when mapping and modifying extents
      ext4: clairfy the rules for modifying extents
      ext4: fix out of bounds punch offset
      ext4: fix incorrect punch max_end
      ext4: factor out ext4_get_maxbytes()
      ext4: ensure i_size is smaller than maxbytes
      ext4: make ext4_mpage_readpages() support large folios
      ext4: make regular file's buffered write path support large folios
      ext4: make __ext4_block_zero_page_range() support large folio
      ext4/jbd2: convert jbd2_journal_blocks_per_page() to support large folio
      ext4: correct the journal credits calculations of allocating blocks
      ext4: make the writeback path support large folios
      ext4: make online defragmentation support large folios
      ext4: enable large folio for regular file

 Documentation/filesystems/ext4/atomic_writes.rst | 225 ++++++++
 Documentation/filesystems/ext4/overview.rst      |   1 +
 fs/ext4/bitmap.c                                 |   8 +-
 fs/ext4/ext4.h                                   |  91 +++-
 fs/ext4/ext4_jbd2.c                              |   3 +-
 fs/ext4/ext4_jbd2.h                              |   4 +-
 fs/ext4/extents.c                                | 177 +++++--
 fs/ext4/extents_status.c                         |  35 +-
 fs/ext4/fast_commit.c                            | 460 +++++++++--------
 fs/ext4/file.c                                   |  14 +-
 fs/ext4/ialloc.c                                 |   8 +-
 fs/ext4/inline.c                                 |   3 +-
 fs/ext4/inode.c                                  | 510 ++++++++++++++++---
 fs/ext4/ioctl.c                                  |  16 +-
 fs/ext4/mmp.c                                    |   2 +-
 fs/ext4/move_extent.c                            |  11 +-
 fs/ext4/namei.c                                  |  10 +-
 fs/ext4/orphan.c                                 |  13 +-
 fs/ext4/readpage.c                               |  28 +-
 fs/ext4/resize.c                                 |   2 +-
 fs/ext4/super.c                                  |  84 ++-
 fs/ext4/xattr.c                                  |  10 +-
 fs/jbd2/commit.c                                 |   6 +-
 fs/jbd2/journal.c                                |  23 +-
 fs/jbd2/recovery.c                               |  10 +-
 fs/jbd2/transaction.c                            |   5 +-
 include/linux/jbd2.h                             |   5 +-
 27 files changed, 1290 insertions(+), 474 deletions(-)
 create mode 100644 Documentation/filesystems/ext4/atomic_writes.rst

Reply via email to