- Following is a list of dropped backported patches which are contained in the current rebase: xfsprogs-5.19.0-xfs-hoist-refcount-record-merge-predicates.patch (v6.2.0) xfsprogs-5.19.0-xfs_db-fix-dir3-block-magic-check.patch (v6.1.0) xfsprogs-5.19.0-xfs-estimate-post-merge-refcounts-correctly.patch (v6.2.0) xfsprogs-5.19.0-xfs-get-rid-of-assert-from-xfs_btree_islastblock.patch (v6.2.0) xfsprogs-5.19.0-xfs-fix-off-by-one-error-in-xfs_btree_space_to_heigh.patch (v6.2.0) xfsprogs-5.19.0-xfs-fix-sb-write-verify-for-lazysbcount.patch (v6.1.0) xfsprogs-5.19.0-xfs-removed-useless-condition-in-function-xfs_attr_n.patch (v6.0.0) xfsprogs-5.19.0-xfs_repair-retain-superblock-buffer-to-avoid-write-h.patch (v6.1.0) - Rename the remaining patches so the name contains upstream version in which they are implemented, or "rhelonly". - Drop Eric Sandeen's public key used to check tarball signature and replace it by Carlos Maiolino's (current upstream xfsprogs maintainer). - Following is a list of newly backported patches from versions released after 6.3 which are fixing patches present in version 6.3: xfsprogs-6.4.0-xfs_repair-don-t-add-junked-entries-to-the-rebuilt-d.patch xfsprogs-6.4.0-xfs_repair-don-t-spray-correcting-imap-all-by-itself.patch xfsprogs-6.4.0-xfs_repair-fix-messaging-when-fixing-imap-due-to-spa.patch xfsprogs-6.4.0-xfs_repair-fix-messaging-when-shortform_dir2_junk-is.patch - Backport: xfsprogs-6.4.0-xfs_db-move-obfuscate_name-assertion-to-callers.patch xfsprogs-6.4.0-xfs_db-fix-metadump-name-obfuscation-for-ascii-ci-fi.patch xfsprogs-6.4.0-xfs-stabilize-the-dirent-name-transformation-functio.patch to implement RHEL-RHEL-8284 - Backport xfsprogs-rhelonly-xfs_quota-fix-missing-mount-point-warning.patch to implement RHEL-7900 - Resolves: RHEL-15399 Resolves: RHEL-8284 Resolves: RHEL-7900 Signed-off-by: Pavel Reichl <preichl@redhat.com>
97 lines
3.7 KiB
Diff
97 lines
3.7 KiB
Diff
From d159552bbb05de6998388b960f50e5e0012828ea Mon Sep 17 00:00:00 2001
|
|
From: "Darrick J. Wong" <djwong@kernel.org>
|
|
Date: Mon, 5 Jun 2023 08:37:50 -0700
|
|
Subject: [PATCH] xfs_repair: fix messaging when shortform_dir2_junk is called
|
|
|
|
This function is called when we've decide to junk a shortform directory
|
|
entry. This is obviously corruption of some kind, so we should always
|
|
say something, particularly if we're in !verbose repair mode.
|
|
Otherwise, if we're in non-verbose repair mode, we print things like:
|
|
|
|
entry "FOO" in shortform directory XXX references non-existent inode YYY
|
|
|
|
Without telling the sysadmin that we're removing the dirent.
|
|
|
|
Fixes: aaca101b1ae ("xfs_repair: add support for validating dirent ftype field")
|
|
Signed-off-by: Darrick J. Wong <djwong@kernel.org>
|
|
Reviewed-by: Carlos Maiolino <cmaiolino@redhat.com>
|
|
Signed-off-by: Carlos Maiolino <cem@kernel.org>
|
|
Signed-off-by: Pavel Reichl <preichl@redhat.com>
|
|
---
|
|
repair/phase6.c | 17 +++++++----------
|
|
1 file changed, 7 insertions(+), 10 deletions(-)
|
|
|
|
diff --git a/repair/phase6.c b/repair/phase6.c
|
|
index c6418534..be10d9b7 100644
|
|
--- a/repair/phase6.c
|
|
+++ b/repair/phase6.c
|
|
@@ -2440,10 +2440,7 @@ shortform_dir2_junk(
|
|
*/
|
|
(*index)--;
|
|
|
|
- if (verbose)
|
|
- do_warn(_("junking entry\n"));
|
|
- else
|
|
- do_warn("\n");
|
|
+ do_warn(_("junking entry\n"));
|
|
return sfep;
|
|
}
|
|
|
|
@@ -2592,7 +2589,7 @@ shortform_dir2_entry_check(
|
|
|
|
if (irec == NULL) {
|
|
do_warn(
|
|
- _("entry \"%s\" in shortform directory %" PRIu64 " references non-existent inode %" PRIu64 "\n"),
|
|
+ _("entry \"%s\" in shortform directory %" PRIu64 " references non-existent inode %" PRIu64 ", "),
|
|
fname, ino, lino);
|
|
next_sfep = shortform_dir2_junk(mp, sfp, sfep, lino,
|
|
&max_size, &i, &bytes_deleted,
|
|
@@ -2609,7 +2606,7 @@ shortform_dir2_entry_check(
|
|
*/
|
|
if (is_inode_free(irec, ino_offset)) {
|
|
do_warn(
|
|
- _("entry \"%s\" in shortform directory inode %" PRIu64 " points to free inode %" PRIu64 "\n"),
|
|
+ _("entry \"%s\" in shortform directory inode %" PRIu64 " points to free inode %" PRIu64 ", "),
|
|
fname, ino, lino);
|
|
next_sfep = shortform_dir2_junk(mp, sfp, sfep, lino,
|
|
&max_size, &i, &bytes_deleted,
|
|
@@ -2625,7 +2622,7 @@ shortform_dir2_entry_check(
|
|
*/
|
|
if (!inode_isadir(irec, ino_offset)) {
|
|
do_warn(
|
|
- _("%s (ino %" PRIu64 ") in root (%" PRIu64 ") is not a directory"),
|
|
+ _("%s (ino %" PRIu64 ") in root (%" PRIu64 ") is not a directory, "),
|
|
ORPHANAGE, lino, ino);
|
|
next_sfep = shortform_dir2_junk(mp, sfp, sfep,
|
|
lino, &max_size, &i,
|
|
@@ -2647,7 +2644,7 @@ shortform_dir2_entry_check(
|
|
lino, sfep->namelen, sfep->name,
|
|
libxfs_dir2_sf_get_ftype(mp, sfep))) {
|
|
do_warn(
|
|
-_("entry \"%s\" (ino %" PRIu64 ") in dir %" PRIu64 " is a duplicate name"),
|
|
+_("entry \"%s\" (ino %" PRIu64 ") in dir %" PRIu64 " is a duplicate name, "),
|
|
fname, lino, ino);
|
|
next_sfep = shortform_dir2_junk(mp, sfp, sfep, lino,
|
|
&max_size, &i, &bytes_deleted,
|
|
@@ -2672,7 +2669,7 @@ _("entry \"%s\" (ino %" PRIu64 ") in dir %" PRIu64 " is a duplicate name"),
|
|
if (is_inode_reached(irec, ino_offset)) {
|
|
do_warn(
|
|
_("entry \"%s\" in directory inode %" PRIu64
|
|
- " references already connected inode %" PRIu64 ".\n"),
|
|
+ " references already connected inode %" PRIu64 ", "),
|
|
fname, ino, lino);
|
|
next_sfep = shortform_dir2_junk(mp, sfp, sfep,
|
|
lino, &max_size, &i,
|
|
@@ -2696,7 +2693,7 @@ _("entry \"%s\" (ino %" PRIu64 ") in dir %" PRIu64 " is a duplicate name"),
|
|
do_warn(
|
|
_("entry \"%s\" in directory inode %" PRIu64
|
|
" not consistent with .. value (%" PRIu64
|
|
- ") in inode %" PRIu64 ",\n"),
|
|
+ ") in inode %" PRIu64 ", "),
|
|
fname, ino, parent, lino);
|
|
next_sfep = shortform_dir2_junk(mp, sfp, sfep,
|
|
lino, &max_size, &i,
|
|
--
|
|
2.41.0
|
|
|