diff options
author | 2024-04-22 09:48:16 -0700 | |
---|---|---|
committer | 2024-04-23 16:55:15 -0700 | |
commit | a26dc21309af68623b82b4e366cbbeb5a85ce65b (patch) | |
tree | 3703a8518aa178121f79c5762e91354ff6703169 /fs/xfs/scrub/trace.h | |
parent | xfs: add a per-leaf block callback to xchk_xattr_walk (diff) | |
download | wireguard-linux-a26dc21309af68623b82b4e366cbbeb5a85ce65b.tar.xz wireguard-linux-a26dc21309af68623b82b4e366cbbeb5a85ce65b.zip |
xfs: actually rebuild the parent pointer xattrs
Once we've assembled all the parent pointers for a file, we need to
commit the new dataset atomically to that file. Parent pointer records
are embedded in the xattr structure, which means that we must write a
new extended attribute structure, again, atomically. Therefore, we must
copy the non-parent-pointer attributes from the file being repaired into
the temporary file's extended attributes and then call the atomic extent
swap mechanism to exchange the blocks.
Signed-off-by: Darrick J. Wong <djwong@kernel.org>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Diffstat (limited to '')
-rw-r--r-- | fs/xfs/scrub/trace.h | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/fs/xfs/scrub/trace.h b/fs/xfs/scrub/trace.h index 3e0cd482379c..ecfaa4b88910 100644 --- a/fs/xfs/scrub/trace.h +++ b/fs/xfs/scrub/trace.h @@ -2539,6 +2539,8 @@ DEFINE_EVENT(xrep_xattr_salvage_class, name, \ TP_ARGS(ip, flags, name, namelen, valuelen)) DEFINE_XREP_XATTR_SALVAGE_EVENT(xrep_xattr_salvage_rec); DEFINE_XREP_XATTR_SALVAGE_EVENT(xrep_xattr_insert_rec); +DEFINE_XREP_XATTR_SALVAGE_EVENT(xrep_parent_stash_xattr); +DEFINE_XREP_XATTR_SALVAGE_EVENT(xrep_parent_insert_xattr); DECLARE_EVENT_CLASS(xrep_pptr_salvage_class, TP_PROTO(struct xfs_inode *ip, unsigned int flags, const void *name, |