All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Darrick J. Wong" <djwong@kernel.org>
To: chandanbabu@kernel.org, djwong@kernel.org
Cc: hch@lst.de, linux-xfs@vger.kernel.org
Subject: [GIT PULL 06/16] xfs: set and validate dir/attr block owners
Date: Mon, 15 Apr 2024 17:28:56 -0700	[thread overview]
Message-ID: <171322716673.141687.7531023432046638316.stg-ugh@frogsfrogsfrogs> (raw)
In-Reply-To: <20240416002427.GB11972@frogsfrogsfrogs>

Hi Chandan,

Please pull this branch with changes for xfs for 6.10-rc1.

As usual, I did a test-merge with the main upstream branch as of a few
minutes ago, and didn't see any conflicts.  Please let me know if you
encounter any problems.

--D

The following changes since commit abf039e2e4afde98e448253f9a7ecc784a87924d:

xfs: online repair of realtime summaries (2024-04-15 14:58:49 -0700)

are available in the Git repository at:

https://git.kernel.org/pub/scm/linux/kernel/git/djwong/xfs-linux.git tags/dirattr-validate-owners-6.10_2024-04-15

for you to fetch changes up to fe6c9f8e48e0dcbfc3dba17edd88490c8579b34b:

xfs: validate explicit directory free block owners (2024-04-15 14:58:52 -0700)

----------------------------------------------------------------
xfs: set and validate dir/attr block owners [v30.3 06/16]

There are a couple of significant changes that need to be made to the
directory and xattr code before we can support online repairs of those
data structures.

The first change is because online repair is designed to use libxfs to
create a replacement dir/xattr structure in a temporary file, and use
atomic extent swapping to commit the corrected structure.  To avoid the
performance hit of walking every block of the new structure to rewrite
the owner number before the swap, we instead change libxfs to allow
callers of the dir and xattr code the ability to set an explicit owner
number to be written into the header fields of any new blocks that are
created.  For regular operation this will be the directory inode number.

The second change is to update the dir/xattr code to actually *check*
the owner number in each block that is read off the disk, since we don't
currently do that.

This has been running on the djcloud for months with no problems.  Enjoy!

Signed-off-by: Darrick J. Wong <djwong@kernel.org>

----------------------------------------------------------------
Darrick J. Wong (10):
xfs: add an explicit owner field to xfs_da_args
xfs: use the xfs_da_args owner field to set new dir/attr block owner
xfs: reduce indenting in xfs_attr_node_list
xfs: validate attr leaf buffer owners
xfs: validate attr remote value buffer owners
xfs: validate dabtree node buffer owners
xfs: validate directory leaf buffer owners
xfs: validate explicit directory data buffer owners
xfs: validate explicit directory block buffer owners
xfs: validate explicit directory free block owners

fs/xfs/libxfs/xfs_attr.c        |  14 ++--
fs/xfs/libxfs/xfs_attr_leaf.c   |  60 +++++++++++---
fs/xfs/libxfs/xfs_attr_leaf.h   |   4 +-
fs/xfs/libxfs/xfs_attr_remote.c |  13 ++--
fs/xfs/libxfs/xfs_bmap.c        |   1 +
fs/xfs/libxfs/xfs_da_btree.c    | 169 +++++++++++++++++++++++++++++++++++++++-
fs/xfs/libxfs/xfs_da_btree.h    |   3 +
fs/xfs/libxfs/xfs_dir2.c        |   5 ++
fs/xfs/libxfs/xfs_dir2.h        |   4 +
fs/xfs/libxfs/xfs_dir2_block.c  |  42 +++++-----
fs/xfs/libxfs/xfs_dir2_data.c   |  18 +++--
fs/xfs/libxfs/xfs_dir2_leaf.c   | 100 ++++++++++++++++++------
fs/xfs/libxfs/xfs_dir2_node.c   |  44 ++++++-----
fs/xfs/libxfs/xfs_dir2_priv.h   |  15 ++--
fs/xfs/libxfs/xfs_exchmaps.c    |   7 +-
fs/xfs/scrub/attr.c             |   1 +
fs/xfs/scrub/dabtree.c          |   8 ++
fs/xfs/scrub/dir.c              |  23 +++---
fs/xfs/scrub/readdir.c          |   6 +-
fs/xfs/xfs_attr_item.c          |   1 +
fs/xfs/xfs_attr_list.c          |  89 ++++++++++++++-------
fs/xfs/xfs_dir2_readdir.c       |   6 +-
fs/xfs/xfs_trace.h              |   7 +-
23 files changed, 492 insertions(+), 148 deletions(-)


  parent reply	other threads:[~2024-04-16  0:28 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-04-16  0:24 [GIT PULLBOMB v30.3] xfs: online repair, part 1 is done Darrick J. Wong
2024-04-16  0:27 ` [GIT PULL 01/16] xfs: improve log incompat feature handling Darrick J. Wong
2024-04-16  0:27 ` [GIT PULL 02/16] xfs: refactorings for atomic file content exchanges Darrick J. Wong
2024-04-16  0:28 ` [GIT PULL 03/16] xfs: " Darrick J. Wong
2024-04-16  0:28 ` [GIT PULL 04/16] xfs: create temporary files for online repair Darrick J. Wong
2024-04-16  0:28 ` [GIT PULL 05/16] xfs: online repair of realtime summaries Darrick J. Wong
2024-04-16  0:28 ` Darrick J. Wong [this message]
2024-04-16  0:29 ` [GIT PULL 07/16] xfs: online repair of extended attributes Darrick J. Wong
2024-04-16  0:29 ` [GIT PULL 08/16] xfs: online repair of inode unlinked state Darrick J. Wong
2024-04-16  0:29 ` [GIT PULL 09/16] xfs: online repair of directories Darrick J. Wong
2024-04-16  0:29 ` [GIT PULL 10/16] xfs: move orphan files to lost and found Darrick J. Wong
2024-04-16  0:30 ` [GIT PULL 11/16] xfs: online repair of symbolic links Darrick J. Wong
2024-04-16  0:30 ` [GIT PULL 12/16] xfs: online fsck of iunlink buckets Darrick J. Wong
2024-04-16  0:30 ` [GIT PULL 13/16] xfs: inode-related repair fixes Darrick J. Wong
2024-04-16  0:33 ` [GIT PULL 14/16] xfs: less heavy locks during fstrim Darrick J. Wong
2024-04-16  0:33 ` [GIT PULL 15/16] xfs: design documentation for online fsck, part 2 Darrick J. Wong
2024-04-16  0:33 ` [GIT PULL 16/16] xfs: retain ILOCK during directory updates Darrick J. Wong

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=171322716673.141687.7531023432046638316.stg-ugh@frogsfrogsfrogs \
    --to=djwong@kernel.org \
    --cc=chandanbabu@kernel.org \
    --cc=hch@lst.de \
    --cc=linux-xfs@vger.kernel.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.