Re: [GIT PULL] xfs: new code for 5.8 (now with fixed To line)

2020-06-12 Thread Darrick J. Wong
On Tue, Jun 02, 2020 at 07:40:35PM -0700, Linus Torvalds wrote:
> On Tue, Jun 2, 2020 at 9:26 AM Darrick J. Wong  wrote:
> >
> > fs/xfs/xfs_log_recover.c   | 2561 
> > ++--
> >  102 files changed, 4244 insertions(+), 4817 deletions(-)
> 
> Interestingly, the changes to that xfs_log_recover.c file really seem
> to break the default git diff algorithm (the linear-space Myers'
> algorithm)
> 
> The default settings give me
> 
>  fs/xfs/xfs_log_recover.c   | 2801 
> ++--
>  102 files changed, 4366 insertions(+), 4939 deletions(-)
> 
> which is not very close to yours. With the extra effort "--minimal" I get
> 
>  fs/xfs/xfs_log_recover.c   | 2561 
> ++--
>  102 files changed, 4246 insertions(+), 4819 deletions(-)
> 
> but based on your output, I suspect you used "--patience", which gives that
> 
>  fs/xfs/xfs_log_recover.c   | 2561 
> ++--
>  102 files changed, 4244 insertions(+), 4817 deletions(-)
> 
> output (the difference there wrt minimal came from
> fs/xfs/libxfs/xfs_symlink_remote.c).
> 
> I'm used to seeing small differences in the line counts due to
> different diff heuristics, but that 250 line difference for
> "--patience" is more than you usually get.
> 
> None of this matters, and I'm not at all suggesting you change any of
> your workflow.

 One of the XFS developers suggested I experiment with --patience
to see if it would make the diff output a little less eager to minimize
the changed lines even at the expense of reviewability.  The outcome is
mostly identical, but there were a few places where using it really did
help to try to keep basic code blocks together.

--D

> I'm just commenting because I was going "why am I not getting a
> matching diffstat", and while I'm used to seeing small differences
> from diff algorithms, that 240 line-count change was really a lot more
> than I normally encounter.
> 
>   Linus
> 


Re: [GIT PULL] xfs: new code for 5.8

2020-06-02 Thread pr-tracker-bot
The pull request you sent on Tue, 2 Jun 2020 09:09:08 -0700:

> git://git.kernel.org/pub/scm/fs/xfs/xfs-linux.git tags/xfs-5.8-merge-8

has been merged into torvalds/linux.git:
https://git.kernel.org/torvalds/c/16d91548d1057691979de4686693f0ff92f46000

Thank you!

-- 
Deet-doot-dot, I am a bot.
https://korg.wiki.kernel.org/userdoc/prtracker


Re: [GIT PULL] xfs: new code for 5.8 (now with fixed To line)

2020-06-02 Thread Linus Torvalds
On Tue, Jun 2, 2020 at 9:26 AM Darrick J. Wong  wrote:
>
> fs/xfs/xfs_log_recover.c   | 2561 ++--
>  102 files changed, 4244 insertions(+), 4817 deletions(-)

Interestingly, the changes to that xfs_log_recover.c file really seem
to break the default git diff algorithm (the linear-space Myers'
algorithm)

The default settings give me

 fs/xfs/xfs_log_recover.c   | 2801 ++--
 102 files changed, 4366 insertions(+), 4939 deletions(-)

which is not very close to yours. With the extra effort "--minimal" I get

 fs/xfs/xfs_log_recover.c   | 2561 ++--
 102 files changed, 4246 insertions(+), 4819 deletions(-)

but based on your output, I suspect you used "--patience", which gives that

 fs/xfs/xfs_log_recover.c   | 2561 ++--
 102 files changed, 4244 insertions(+), 4817 deletions(-)

output (the difference there wrt minimal came from
fs/xfs/libxfs/xfs_symlink_remote.c).

I'm used to seeing small differences in the line counts due to
different diff heuristics, but that 250 line difference for
"--patience" is more than you usually get.

None of this matters, and I'm not at all suggesting you change any of
your workflow.

I'm just commenting because I was going "why am I not getting a
matching diffstat", and while I'm used to seeing small differences
from diff algorithms, that 240 line-count change was really a lot more
than I normally encounter.

  Linus


[GIT PULL] xfs: new code for 5.8 (now with fixed To line)

2020-06-02 Thread Darrick J. Wong
Sorry Linus, I totally FUBARed the addressing on the pull request.
Resending directly to you so that it doesn't get lost in the spam
folder.

--D

---

Hi Linus,

Please pull the new XFS code for 5.8.  Most of the changes this cycle
are refactoring of existing code in preparation for things landing in
the future.  We also fixed various problems and deficiencies in the
quota implementation, and (I hope) the last of the stale read vectors by
forcing write allocations to go through the unwritten state until the
write completes.

This branch merges cleanly with master as of a few minutes ago, so
please let me know if anything strange happens.  I anticipate a second
pull request next week for a DAX-related restructuring that requires the
DAX branch (sent separately).

--D

The following changes since commit 0e698dfa282211e414076f9dc7e83c1c288314fd:

  Linux 5.7-rc4 (2020-05-03 14:56:04 -0700)

are available in the Git repository at:

  git://git.kernel.org/pub/scm/fs/xfs/xfs-linux.git tags/xfs-5.8-merge-8

for you to fetch changes up to 6dcde60efd946e38fac8d276a6ca47492103e856:

  xfs: more lockdep whackamole with kmem_alloc* (2020-05-27 08:49:28 -0700)


New code for 5.8:
- Various cleanups to remove dead code, unnecessary conditionals,
  asserts, etc.
- Fix a linker warning caused by xfs stuffing '-g' into CFLAGS
  redundantly.
- Tighten up our dmesg logging to ensure that everything is prefixed
  with 'XFS' for easier grepping.
- Kill a bunch of typedefs.
- Refactor the deferred ops code to reduce indirect function calls.
- Increase type-safety with the deferred ops code.
- Make the DAX mount options a tri-state.
- Fix some error handling problems in the inode flush code and clean up
  other inode flush warts.
- Refactor log recovery so that each log item recovery functions now live
  with the other log item processing code.
- Fix some SPDX forms.
- Fix quota counter corruption if the fs crashes after running
  quotacheck but before any dquots get logged.
- Don't fail metadata verification on zero-entry attr leaf blocks, since
  they're just part of the disk format now due to a historic lack of log
  atomicity.
- Don't allow SWAPEXT between files with different [ugp]id when quotas
  are enabled.
- Refactor inode fork reading and verification to run directly from the
  inode-from-disk function.  This means that we now actually guarantee
  that _iget'ted inodes are totally verified and ready to go.
- Move the incore inode fork format and extent counts to the ifork
  structure.
- Scalability improvements by reducing cacheline pingponging in
  struct xfs_mount.
- More scalability improvements by removing m_active_trans from the
  hot path.
- Fix inode counter update sanity checking to run /only/ on debug
  kernels.
- Fix longstanding inconsistency in what error code we return when a
  program hits project quota limits (ENOSPC).
- Fix group quota returning the wrong error code when a program hits
  group quota limits.
- Fix per-type quota limits and grace periods for group and project
  quotas so that they actually work.
- Allow extension of individual grace periods.
- Refactor the non-reclaim inode radix tree walking code to remove a
  bunch of stupid little functions and straighten out the
  inconsistent naming schemes.
- Fix a bug in speculative preallocation where we measured a new
  allocation based on the last extent mapping in the file instead of
  looking farther for the last contiguous space allocation.
- Force delalloc writes to unwritten extents.  This closes a
  stale disk contents exposure vector if the system goes down before
  the write completes.
- More lockdep whackamole.


Arnd Bergmann (1):
  xfs: stop CONFIG_XFS_DEBUG from changing compiler flags

Brian Foster (19):
  xfs: refactor failed buffer resubmission into xfsaild
  xfs: factor out buffer I/O failure code
  xfs: simplify inode flush error handling
  xfs: remove unnecessary shutdown check from xfs_iflush()
  xfs: reset buffer write failure state on successful completion
  xfs: refactor ratelimited buffer error messages into helper
  xfs: ratelimit unmount time per-buffer I/O error alert
  xfs: fix duplicate verification from xfs_qm_dqflush()
  xfs: abort consistently on dquot flush failure
  xfs: acquire ->ail_lock from xfs_trans_ail_delete()
  xfs: use delete helper for items expected to be in AIL
  xfs: drop unused shutdown parameter from xfs_trans_ail_remove()
  xfs: combine xfs_trans_ail_[remove|delete]()
  xfs: remove unused iflush stale parameter
  xfs: random buffer write failure errortag
  xfs: remove unused shutdown types
  xfs: remove 

[GIT PULL] xfs: new code for 5.8

2020-06-02 Thread Darrick J. Wong
Hi Linus,

Please pull the new XFS code for 5.8.  Most of the changes this cycle
are refactoring of existing code in preparation for things landing in
the future.  We also fixed various problems and deficiencies in the
quota implementation, and (I hope) the last of the stale read vectors by
forcing write allocations to go through the unwritten state until the
write completes.

This branch merges cleanly with master as of a few minutes ago, so
please let me know if anything strange happens.  I anticipate a second
pull request next week for a DAX-related restructuring that requires the
DAX branch (sent separately).

--D

The following changes since commit 0e698dfa282211e414076f9dc7e83c1c288314fd:

  Linux 5.7-rc4 (2020-05-03 14:56:04 -0700)

are available in the Git repository at:

  git://git.kernel.org/pub/scm/fs/xfs/xfs-linux.git tags/xfs-5.8-merge-8

for you to fetch changes up to 6dcde60efd946e38fac8d276a6ca47492103e856:

  xfs: more lockdep whackamole with kmem_alloc* (2020-05-27 08:49:28 -0700)


New code for 5.8:
- Various cleanups to remove dead code, unnecessary conditionals,
  asserts, etc.
- Fix a linker warning caused by xfs stuffing '-g' into CFLAGS
  redundantly.
- Tighten up our dmesg logging to ensure that everything is prefixed
  with 'XFS' for easier grepping.
- Kill a bunch of typedefs.
- Refactor the deferred ops code to reduce indirect function calls.
- Increase type-safety with the deferred ops code.
- Make the DAX mount options a tri-state.
- Fix some error handling problems in the inode flush code and clean up
  other inode flush warts.
- Refactor log recovery so that each log item recovery functions now live
  with the other log item processing code.
- Fix some SPDX forms.
- Fix quota counter corruption if the fs crashes after running
  quotacheck but before any dquots get logged.
- Don't fail metadata verification on zero-entry attr leaf blocks, since
  they're just part of the disk format now due to a historic lack of log
  atomicity.
- Don't allow SWAPEXT between files with different [ugp]id when quotas
  are enabled.
- Refactor inode fork reading and verification to run directly from the
  inode-from-disk function.  This means that we now actually guarantee
  that _iget'ted inodes are totally verified and ready to go.
- Move the incore inode fork format and extent counts to the ifork
  structure.
- Scalability improvements by reducing cacheline pingponging in
  struct xfs_mount.
- More scalability improvements by removing m_active_trans from the
  hot path.
- Fix inode counter update sanity checking to run /only/ on debug
  kernels.
- Fix longstanding inconsistency in what error code we return when a
  program hits project quota limits (ENOSPC).
- Fix group quota returning the wrong error code when a program hits
  group quota limits.
- Fix per-type quota limits and grace periods for group and project
  quotas so that they actually work.
- Allow extension of individual grace periods.
- Refactor the non-reclaim inode radix tree walking code to remove a
  bunch of stupid little functions and straighten out the
  inconsistent naming schemes.
- Fix a bug in speculative preallocation where we measured a new
  allocation based on the last extent mapping in the file instead of
  looking farther for the last contiguous space allocation.
- Force delalloc writes to unwritten extents.  This closes a
  stale disk contents exposure vector if the system goes down before
  the write completes.
- More lockdep whackamole.


Arnd Bergmann (1):
  xfs: stop CONFIG_XFS_DEBUG from changing compiler flags

Brian Foster (19):
  xfs: refactor failed buffer resubmission into xfsaild
  xfs: factor out buffer I/O failure code
  xfs: simplify inode flush error handling
  xfs: remove unnecessary shutdown check from xfs_iflush()
  xfs: reset buffer write failure state on successful completion
  xfs: refactor ratelimited buffer error messages into helper
  xfs: ratelimit unmount time per-buffer I/O error alert
  xfs: fix duplicate verification from xfs_qm_dqflush()
  xfs: abort consistently on dquot flush failure
  xfs: acquire ->ail_lock from xfs_trans_ail_delete()
  xfs: use delete helper for items expected to be in AIL
  xfs: drop unused shutdown parameter from xfs_trans_ail_remove()
  xfs: combine xfs_trans_ail_[remove|delete]()
  xfs: remove unused iflush stale parameter
  xfs: random buffer write failure errortag
  xfs: remove unused shutdown types
  xfs: remove unused iget_flags param from xfs_imap_to_bp()
  xfs: fix unused variable warning in buffer completion on !DEBUG
  xfs: don't fail verifier on