mbox series

[GIT,PULL] xfs: new code for 5.11

Message ID 20201218171242.GH6918@magnolia (mailing list archive)
State New, archived
Headers show
Series [GIT,PULL] xfs: new code for 5.11 | expand

Pull-request

git://git.kernel.org/pub/scm/fs/xfs/xfs-linux.git tags/xfs-5.11-merge-4

Message

Darrick J. Wong Dec. 18, 2020, 5:12 p.m. UTC
Hi Linus,

Please pull the following branch containing all the new xfs code for
5.11.  In this release we add the ability to set a 'needsrepair' flag
indicating that we /know/ the filesystem requires xfs_repair, but other
than that, it's the usual strengthening of metadata validation and
miscellaneous cleanups.

The branch merges cleanly with your upstream head as of a few minutes
ago, so please let me know if anything strange happens.  Note also that
I will not be sending any iomap pull requests for this merge window as
there weren't any major iomap changes this cycle.

--D

The following changes since commit 418baf2c28f3473039f2f7377760bd8f6897ae18:

  Linux 5.10-rc5 (2020-11-22 15:36:08 -0800)

are available in the Git repository at:

  git://git.kernel.org/pub/scm/fs/xfs/xfs-linux.git tags/xfs-5.11-merge-4

for you to fetch changes up to e82226138b20d4f638426413e83c6b5db532c6a2:

  xfs: remove xfs_buf_t typedef (2020-12-16 16:07:34 -0800)

----------------------------------------------------------------
New code for 5.11:
- Introduce a "needsrepair" "feature" to flag a filesystem as needing a
  pass through xfs_repair.  This is key to enabling filesystem upgrades
  (in xfs_db) that require xfs_repair to make minor adjustments to metadata.
- Refactor parameter checking of recovered log intent items so that we
  actually use the same validation code as them that generate the intent
  items.
- Various fixes to online scrub not reacting correctly to directory
  entries pointing to inodes that cannot be igetted.
- Refactor validation helpers for data and rt volume extents.
- Refactor XFS_TRANS_DQ_DIRTY out of existence.
- Fix a longstanding bug where mounting with "uqnoenforce" would start
  user quotas in non-enforcing mode but /proc/mounts would display
  "usrquota", implying that they are being enforced.
- Don't flag dax+reflink inodes as corruption since that is a valid (but
  not fully functional) combination right now.
- Clean up raid stripe validation functions.
- Refactor the inode allocation code to be more straightforward.
- Small prep cleanup for idmapping support.
- Get rid of the xfs_buf_t typedef.

----------------------------------------------------------------
Christoph Hellwig (2):
      xfs: remove xfs_vn_setattr_nonsize
      xfs: open code updating i_mode in xfs_set_acl

Darrick J. Wong (21):
      xfs: move kernel-specific superblock validation out of libxfs
      xfs: define a new "needrepair" feature
      xfs: enable the needsrepair feature
      xfs: hoist recovered bmap intent checks out of xfs_bui_item_recover
      xfs: improve the code that checks recovered bmap intent items
      xfs: hoist recovered rmap intent checks out of xfs_rui_item_recover
      xfs: improve the code that checks recovered rmap intent items
      xfs: hoist recovered refcount intent checks out of xfs_cui_item_recover
      xfs: improve the code that checks recovered refcount intent items
      xfs: hoist recovered extent-free intent checks out of xfs_efi_item_recover
      xfs: improve the code that checks recovered extent-free intent items
      xfs: validate feature support when recovering rmap/refcount intents
      xfs: trace log intent item recovery failures
      xfs: detect overflows in bmbt records
      xfs: fix parent pointer scrubber bailing out on unallocated inodes
      xfs: scrub should mark a directory corrupt if any entries cannot be iget'd
      xfs: refactor data device extent validation
      xfs: refactor realtime volume extent validation
      xfs: refactor file range validation
      xfs: rename xfs_fc_* back to xfs_fs_*
      xfs: fix the forward progress assertion in xfs_iwalk_run_callbacks

Dave Chinner (5):
      xfs: introduce xfs_dialloc_roll()
      xfs: move on-disk inode allocation out of xfs_ialloc()
      xfs: move xfs_dialloc_roll() into xfs_dialloc()
      xfs: spilt xfs_dialloc() into 2 functions
      xfs: remove xfs_buf_t typedef

Eric Sandeen (1):
      xfs: don't catch dax+reflink inodes as corruption in verifier

Gao Xiang (3):
      xfs: introduce xfs_validate_stripe_geometry()
      xfs: convert noroom, okalloc in xfs_dialloc() to bool
      xfs: kill ialloced in xfs_dialloc()

Joseph Qi (1):
      xfs: remove unneeded return value check for *init_cursor()

Kaixu Xia (6):
      xfs: delete duplicated tp->t_dqinfo null check and allocation
      xfs: check tp->t_dqinfo value instead of the XFS_TRANS_DQ_DIRTY flag
      xfs: directly return if the delta equal to zero
      xfs: remove unnecessary null check in xfs_generic_create
      xfs: remove the unused XFS_B_FSB_OFFSET macro
      xfs: show the proper user quota options

Zheng Yongjun (1):
      fs/xfs: convert comma to semicolon

 fs/xfs/libxfs/xfs_alloc.c        |  16 +--
 fs/xfs/libxfs/xfs_bmap.c         |  28 ++---
 fs/xfs/libxfs/xfs_bmap_btree.c   |   2 -
 fs/xfs/libxfs/xfs_btree.c        |  12 +-
 fs/xfs/libxfs/xfs_format.h       |  11 +-
 fs/xfs/libxfs/xfs_ialloc.c       | 170 ++++++++++++++-------------
 fs/xfs/libxfs/xfs_ialloc.h       |  36 +++---
 fs/xfs/libxfs/xfs_ialloc_btree.c |   5 -
 fs/xfs/libxfs/xfs_inode_buf.c    |   4 -
 fs/xfs/libxfs/xfs_refcount.c     |   9 --
 fs/xfs/libxfs/xfs_rmap.c         |   9 --
 fs/xfs/libxfs/xfs_rtbitmap.c     |  22 ++--
 fs/xfs/libxfs/xfs_sb.c           | 104 +++++++++++------
 fs/xfs/libxfs/xfs_sb.h           |   3 +
 fs/xfs/libxfs/xfs_shared.h       |   1 -
 fs/xfs/libxfs/xfs_types.c        |  64 +++++++++++
 fs/xfs/libxfs/xfs_types.h        |   7 ++
 fs/xfs/scrub/agheader_repair.c   |   2 -
 fs/xfs/scrub/bmap.c              |  22 +---
 fs/xfs/scrub/common.c            |  14 ---
 fs/xfs/scrub/dir.c               |  21 +++-
 fs/xfs/scrub/inode.c             |   4 -
 fs/xfs/scrub/parent.c            |  10 +-
 fs/xfs/scrub/rtbitmap.c          |   4 +-
 fs/xfs/xfs_acl.c                 |  40 ++++---
 fs/xfs/xfs_bmap_item.c           |  65 ++++++-----
 fs/xfs/xfs_buf.c                 |  24 ++--
 fs/xfs/xfs_buf.h                 |  14 +--
 fs/xfs/xfs_buf_item.c            |   4 +-
 fs/xfs/xfs_extfree_item.c        |  23 ++--
 fs/xfs/xfs_fsops.c               |   2 +-
 fs/xfs/xfs_inode.c               | 243 +++++++++------------------------------
 fs/xfs/xfs_inode.h               |   6 +-
 fs/xfs/xfs_iops.c                |  41 +++----
 fs/xfs/xfs_iops.h                |   8 --
 fs/xfs/xfs_iwalk.c               |   2 +-
 fs/xfs/xfs_log_recover.c         |  13 ++-
 fs/xfs/xfs_qm.c                  |  26 ++---
 fs/xfs/xfs_refcount_item.c       |  52 +++++----
 fs/xfs/xfs_rmap_item.c           |  67 +++++++----
 fs/xfs/xfs_rtalloc.c             |  20 ++--
 fs/xfs/xfs_rtalloc.h             |   4 +-
 fs/xfs/xfs_super.c               |  77 ++++++++++---
 fs/xfs/xfs_symlink.c             |   4 +-
 fs/xfs/xfs_trace.h               |  18 +++
 fs/xfs/xfs_trans.c               |   2 +-
 fs/xfs/xfs_trans_buf.c           |  16 +--
 fs/xfs/xfs_trans_dquot.c         |  43 ++-----
 48 files changed, 692 insertions(+), 702 deletions(-)

Comments

pr-tracker-bot@kernel.org Dec. 18, 2020, 8:54 p.m. UTC | #1
The pull request you sent on Fri, 18 Dec 2020 09:12:42 -0800:

> git://git.kernel.org/pub/scm/fs/xfs/xfs-linux.git tags/xfs-5.11-merge-4

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

Thank you!
Dmitrii Tcvetkov Dec. 29, 2020, 7:49 a.m. UTC | #2
>Please pull the following branch containing all the new xfs code for
>5.11.  In this release we add the ability to set a 'needsrepair' flag
>indicating that we /know/ the filesystem requires xfs_repair, but other
>than that, it's the usual strengthening of metadata validation and
>miscellaneous cleanups.
>...
>New code for 5.11:
>- Introduce a "needsrepair" "feature" to flag a filesystem as needing a
>  pass through xfs_repair.  This is key to enabling filesystem upgrades
>  (in xfs_db) that require xfs_repair to make minor adjustments to
>metadata.

Hello.

Most likely I miss something obvious but according to xfs_repair(8):
BUGS:
The filesystem to be checked and repaired must have been unmounted
cleanly  using  normal  system  administration  procedures (the
umount(8)  command  or  system  shutdown),  not  as  a  result of a
crash or system reset.  If the filesystem has not been unmounted
cleanly, mount it and unmount it cleanly before running xfs_repair.

which is there since commit d321ceac "add libxlog directory"
Date:   Wed Oct 17 11:00:32 2001 +0000 in xfsprogs-dev[1]. 

So will be there situation of uncleanly unmounted filesystem with
"needsrepair" bit set? Will one be able to mount and umount it before
running xfs_repair in that case?

[1] git://git.kernel.org/pub/scm/fs/xfs/xfsprogs-dev.git
Darrick J. Wong Dec. 31, 2020, 10:52 p.m. UTC | #3
On Tue, Dec 29, 2020 at 10:49:55AM +0300, Dmitrii Tcvetkov wrote:
> >Please pull the following branch containing all the new xfs code for
> >5.11.  In this release we add the ability to set a 'needsrepair' flag
> >indicating that we /know/ the filesystem requires xfs_repair, but other
> >than that, it's the usual strengthening of metadata validation and
> >miscellaneous cleanups.
> >...
> >New code for 5.11:
> >- Introduce a "needsrepair" "feature" to flag a filesystem as needing a
> >  pass through xfs_repair.  This is key to enabling filesystem upgrades
> >  (in xfs_db) that require xfs_repair to make minor adjustments to
> >metadata.
> 
> Hello.
> 
> Most likely I miss something obvious but according to xfs_repair(8):
> BUGS:
> The filesystem to be checked and repaired must have been unmounted
> cleanly  using  normal  system  administration  procedures (the
> umount(8)  command  or  system  shutdown),  not  as  a  result of a
> crash or system reset.  If the filesystem has not been unmounted
> cleanly, mount it and unmount it cleanly before running xfs_repair.
> 
> which is there since commit d321ceac "add libxlog directory"
> Date:   Wed Oct 17 11:00:32 2001 +0000 in xfsprogs-dev[1]. 
> 
> So will be there situation of uncleanly unmounted filesystem with
> "needsrepair" bit set?

No.  If we detect metadata corruption we stop writing metadata
and take the fs offline immediately.  We would not set needsrepair, for
exactly the reasons you outline.

--D

> Will one be able to mount and umount it before running xfs_repair in
> that case?
> 
> [1] git://git.kernel.org/pub/scm/fs/xfs/xfsprogs-dev.git