Compare commits
No commits in common. "c10s" and "c8" have entirely different histories.
@ -1 +0,0 @@
|
|||||||
1
|
|
20
.gitignore
vendored
20
.gitignore
vendored
@ -1,19 +1 @@
|
|||||||
xfsdump-3.0.4.tar.gz
|
SOURCES/xfsdump-3.1.8.tar.xz
|
||||||
/xfsdump-3.0.5.tar.gz
|
|
||||||
/xfsdump-3.0.6.tar.gz
|
|
||||||
/xfsdump-3.1.0.tar.gz
|
|
||||||
/xfsdump-3.1.1.tar.gz
|
|
||||||
/xfsdump-3.1.2.tar.gz
|
|
||||||
/xfsdump-3.1.3.tar.gz
|
|
||||||
/xfsdump-3.1.4.tar.gz
|
|
||||||
/xfsdump-3.1.6.tar.gz
|
|
||||||
/xfsdump-3.1.8.tar.xz
|
|
||||||
/xfsdump-3.1.9.tar.xz
|
|
||||||
/xfsdump-3.1.10.tar.sign
|
|
||||||
/xfsdump-3.1.10.tar.xz
|
|
||||||
/xfsdump-3.1.11-1.fc38.src.rpm
|
|
||||||
/xfsdump-3.1.11.tar.sign
|
|
||||||
/xfsdump-3.1.11.tar.xz
|
|
||||||
/13F703E6C11CF6F0.asc
|
|
||||||
/xfsdump-3.1.12.tar.sign
|
|
||||||
/xfsdump-3.1.12.tar.xz
|
|
||||||
|
1
.xfsdump.metadata
Normal file
1
.xfsdump.metadata
Normal file
@ -0,0 +1 @@
|
|||||||
|
34fd97ecd92ced92e9c51c8c0ff37dabf627aefb SOURCES/xfsdump-3.1.8.tar.xz
|
@ -1,185 +0,0 @@
|
|||||||
pub rsa4096 2011-11-03 [SC]
|
|
||||||
2B8185919E8D248981869DED20AE1692E13DDEE0
|
|
||||||
uid Eric R. Sandeen <sandeen@sandeen.net>
|
|
||||||
uid Eric R. Sandeen <sandeen@redhat.com>
|
|
||||||
sub rsa4096 2011-11-03 [E]
|
|
||||||
048CA40C8F5B5507E3A6CD6BE2C297037B26BEB4
|
|
||||||
|
|
||||||
-----BEGIN PGP PUBLIC KEY BLOCK-----
|
|
||||||
|
|
||||||
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
|
|
||||||
4NMMCC8gkONe4tek
|
|
||||||
=EFoy
|
|
||||||
-----END PGP PUBLIC KEY BLOCK-----
|
|
@ -0,0 +1,66 @@
|
|||||||
|
From 3b71c7f1f5a1dd45712d7de1139290d0a8cf03c4 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Gao Xiang <hsiangkao@redhat.com>
|
||||||
|
Date: Thu, 3 Feb 2022 12:42:30 -0500
|
||||||
|
Subject: [PATCH 1/2] xfsdump: Revert "xfsdump: handle bind mount targets"
|
||||||
|
|
||||||
|
Bind mount mntpnts will be forbided in the next commits
|
||||||
|
instead since it's not the real rootdir.
|
||||||
|
|
||||||
|
This cannot be reverted cleanly due to several cleanup
|
||||||
|
patches, but the logic is reverted equivalently.
|
||||||
|
|
||||||
|
This reverts commit 25195ebf107dc81b1b7cea1476764950e1d6cc9d.
|
||||||
|
|
||||||
|
Fixes: 25195ebf107d ("xfsdump: handle bind mount targets")
|
||||||
|
Cc: Eric Sandeen <sandeen@redhat.com>
|
||||||
|
Signed-off-by: Gao Xiang <hsiangkao@redhat.com>
|
||||||
|
Reviewed-by: Eric Sandeen <sandeen@redhat.com>
|
||||||
|
Signed-off-by: Eric Sandeen <sandeen@sandeen.net>
|
||||||
|
---
|
||||||
|
|
||||||
|
Index: xfsdump-3.1.8/dump/content.c
|
||||||
|
===================================================================
|
||||||
|
--- xfsdump-3.1.8.orig/dump/content.c
|
||||||
|
+++ xfsdump-3.1.8/dump/content.c
|
||||||
|
@@ -1382,17 +1382,11 @@ baseuuidbypass:
|
||||||
|
}
|
||||||
|
|
||||||
|
/* figure out the ino for the root directory of the fs
|
||||||
|
- * and get its xfs_bstat_t for inomap_build(). This could
|
||||||
|
- * be a bind mount; don't ask for the mount point inode,
|
||||||
|
- * find the actual lowest inode number in the filesystem.
|
||||||
|
+ * and get its xfs_bstat_t for inomap_build()
|
||||||
|
*/
|
||||||
|
{
|
||||||
|
stat64_t rootstat;
|
||||||
|
- xfs_ino_t lastino = 0;
|
||||||
|
- int ocount = 0;
|
||||||
|
- xfs_fsop_bulkreq_t bulkreq;
|
||||||
|
|
||||||
|
- /* Get the inode of the mount point */
|
||||||
|
rval = fstat64( sc_fsfd, &rootstat );
|
||||||
|
if ( rval ) {
|
||||||
|
mlog( MLOG_NORMAL, _(
|
||||||
|
@@ -1404,21 +1398,11 @@ baseuuidbypass:
|
||||||
|
( xfs_bstat_t * )calloc( 1, sizeof( xfs_bstat_t ));
|
||||||
|
assert( sc_rootxfsstatp );
|
||||||
|
|
||||||
|
- /* Get the first valid (i.e. root) inode in this fs */
|
||||||
|
- bulkreq.lastip = (__u64 *)&lastino;
|
||||||
|
- bulkreq.icount = 1;
|
||||||
|
- bulkreq.ubuffer = sc_rootxfsstatp;
|
||||||
|
- bulkreq.ocount = &ocount;
|
||||||
|
- if (ioctl(sc_fsfd, XFS_IOC_FSBULKSTAT, &bulkreq) < 0) {
|
||||||
|
+ if (bigstat_one(sc_fsfd, rootstat.st_ino, sc_rootxfsstatp) < 0) {
|
||||||
|
mlog( MLOG_ERROR,
|
||||||
|
_("failed to get bulkstat information for root inode\n"));
|
||||||
|
return BOOL_FALSE;
|
||||||
|
}
|
||||||
|
-
|
||||||
|
- if (sc_rootxfsstatp->bs_ino != rootstat.st_ino)
|
||||||
|
- mlog ( MLOG_NORMAL | MLOG_NOTE,
|
||||||
|
- _("root ino %lld differs from mount dir ino %lld, bind mount?\n"),
|
||||||
|
- sc_rootxfsstatp->bs_ino, rootstat.st_ino);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* alloc a file system handle, to be used with the jdm_open()
|
100
SOURCES/0002-xfsdump-intercept-bind-mount-targets.patch
Normal file
100
SOURCES/0002-xfsdump-intercept-bind-mount-targets.patch
Normal file
@ -0,0 +1,100 @@
|
|||||||
|
From 0717c1cdfeaedc98df8af97b5ab110830e176a5b Mon Sep 17 00:00:00 2001
|
||||||
|
From: Gao Xiang <hsiangkao@redhat.com>
|
||||||
|
Date: Thu, 3 Feb 2022 12:42:30 -0500
|
||||||
|
Subject: [PATCH 2/2] xfsdump: intercept bind mount targets
|
||||||
|
|
||||||
|
It's a bit strange pointing at some non-root bind mount target and
|
||||||
|
then actually dumping from the actual root dir instead.
|
||||||
|
|
||||||
|
Therefore, instead of searching for the root dir of the filesystem,
|
||||||
|
just intercept all bind mount targets by checking whose ino # of
|
||||||
|
".." is itself with getdents.
|
||||||
|
|
||||||
|
Fixes: 25195ebf107d ("xfsdump: handle bind mount targets")
|
||||||
|
Cc: Eric Sandeen <sandeen@redhat.com>
|
||||||
|
Signed-off-by: Gao Xiang <hsiangkao@redhat.com>
|
||||||
|
[sandeen: add explanatory comment to new function]
|
||||||
|
Reviewed-by: Eric Sandeen <sandeen@redhat.com>
|
||||||
|
Signed-off-by: Eric Sandeen <sandeen@sandeen.net>
|
||||||
|
---
|
||||||
|
|
||||||
|
Index: xfsdump-3.1.8/dump/content.c
|
||||||
|
===================================================================
|
||||||
|
--- xfsdump-3.1.8.orig/dump/content.c
|
||||||
|
+++ xfsdump-3.1.8/dump/content.c
|
||||||
|
@@ -511,6 +511,60 @@ static bool_t create_inv_session(
|
||||||
|
ix_t subtreecnt,
|
||||||
|
size_t strmix);
|
||||||
|
|
||||||
|
+/*
|
||||||
|
+ * Verify that we are asked to dump from the root of the filesystem;
|
||||||
|
+ * test this by checking whether the inode number we've been given matches
|
||||||
|
+ * the inode number for this directory's ".."
|
||||||
|
+ */
|
||||||
|
+static bool_t
|
||||||
|
+check_rootdir(int fd,
|
||||||
|
+ xfs_ino_t ino)
|
||||||
|
+{
|
||||||
|
+ struct dirent *gdp;
|
||||||
|
+ size_t gdsz;
|
||||||
|
+ bool_t found = BOOL_FALSE;
|
||||||
|
+
|
||||||
|
+ gdsz = sizeof(struct dirent) + NAME_MAX + 1;
|
||||||
|
+ if (gdsz < GETDENTSBUF_SZ_MIN)
|
||||||
|
+ gdsz = GETDENTSBUF_SZ_MIN;
|
||||||
|
+ gdp = (struct dirent *)calloc(1, gdsz);
|
||||||
|
+ assert(gdp);
|
||||||
|
+
|
||||||
|
+ while (1) {
|
||||||
|
+ struct dirent *p;
|
||||||
|
+ int nread;
|
||||||
|
+
|
||||||
|
+ nread = getdents_wrap(fd, (char *)gdp, gdsz);
|
||||||
|
+ /*
|
||||||
|
+ * negative count indicates something very bad happened;
|
||||||
|
+ * try to gracefully end this dir.
|
||||||
|
+ */
|
||||||
|
+ if (nread < 0) {
|
||||||
|
+ mlog(MLOG_NORMAL | MLOG_WARNING,
|
||||||
|
+_("unable to read dirents for directory ino %llu: %s\n"),
|
||||||
|
+ ino, strerror(errno));
|
||||||
|
+ break;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ /* no more directory entries: break; */
|
||||||
|
+ if (!nread)
|
||||||
|
+ break;
|
||||||
|
+
|
||||||
|
+ for (p = gdp; nread > 0;
|
||||||
|
+ nread -= (int)p->d_reclen,
|
||||||
|
+ assert(nread >= 0),
|
||||||
|
+ p = (struct dirent *)((char *)p + p->d_reclen)) {
|
||||||
|
+ if (!strcmp(p->d_name, "..")) {
|
||||||
|
+ if (p->d_ino == ino)
|
||||||
|
+ found = BOOL_TRUE;
|
||||||
|
+ break;
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
+ free(gdp);
|
||||||
|
+ return found;
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
bool_t
|
||||||
|
content_init( int argc,
|
||||||
|
char *argv[ ],
|
||||||
|
@@ -1394,6 +1448,14 @@ baseuuidbypass:
|
||||||
|
mntpnt );
|
||||||
|
return BOOL_FALSE;
|
||||||
|
}
|
||||||
|
+
|
||||||
|
+ if (!check_rootdir(sc_fsfd, rootstat.st_ino)) {
|
||||||
|
+ mlog(MLOG_ERROR,
|
||||||
|
+_("%s is not the root of the filesystem (bind mount?) - use primary mountpoint\n"),
|
||||||
|
+ mntpnt);
|
||||||
|
+ return BOOL_FALSE;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
sc_rootxfsstatp =
|
||||||
|
( xfs_bstat_t * )calloc( 1, sizeof( xfs_bstat_t ));
|
||||||
|
assert( sc_rootxfsstatp );
|
@ -0,0 +1,286 @@
|
|||||||
|
From d7cba7410710cd3ec2c2d9fafd4d93437097f473 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Gao Xiang <hsiangkao@redhat.com>
|
||||||
|
Date: Wed, 28 Sep 2022 15:10:52 -0400
|
||||||
|
Subject: [PATCH] xfsrestore: fix rootdir due to xfsdump bulkstat misuse
|
||||||
|
|
||||||
|
If rootino is wrong and misspecified to a subdir inode #,
|
||||||
|
the following assertion could be triggered:
|
||||||
|
assert(ino != persp->p_rootino || hardh == persp->p_rooth);
|
||||||
|
|
||||||
|
This patch adds a '-x' option (another awkward thing is that
|
||||||
|
the codebase doesn't support long options) to address
|
||||||
|
problamatic images by searching for the real dir, the reason
|
||||||
|
that I don't enable it by default is that I'm not very confident
|
||||||
|
with the xfsrestore codebase and xfsdump bulkstat issue will
|
||||||
|
also be fixed immediately as well, so this function might be
|
||||||
|
optional and only useful for pre-exist corrupted dumps.
|
||||||
|
|
||||||
|
In details, my understanding of the original logic is
|
||||||
|
1) xfsrestore will create a rootdir node_t (p_rooth);
|
||||||
|
2) it will build the tree hierarchy from inomap and adopt
|
||||||
|
the parent if needed (so inodes whose parent ino hasn't
|
||||||
|
detected will be in the orphan dir, p_orphh);
|
||||||
|
3) during this period, if ino == rootino and
|
||||||
|
hardh != persp->p_rooth (IOWs, another node_t with
|
||||||
|
the same ino # is created), that'd be definitely wrong.
|
||||||
|
|
||||||
|
So the proposal fix is that
|
||||||
|
- considering the xfsdump root ino # is a subdir inode, it'll
|
||||||
|
trigger ino == rootino && hardh != persp->p_rooth condition;
|
||||||
|
- so we log this node_t as persp->p_rooth rather than the
|
||||||
|
initial rootdir node_t created in 1);
|
||||||
|
- we also know that this node is actually a subdir, and after
|
||||||
|
the whole inomap is scanned (IOWs, the tree is built),
|
||||||
|
the real root dir will have the orphan dir parent p_orphh;
|
||||||
|
- therefore, we walk up by the parent until some node_t has
|
||||||
|
the p_orphh, so that's it.
|
||||||
|
|
||||||
|
Cc: Donald Douwsma <ddouwsma@redhat.com>
|
||||||
|
Signed-off-by: Gao Xiang <hsiangkao@redhat.com>
|
||||||
|
Signed-off-by: Hironori Shiina <shiina.hironori@fujitsu.com>
|
||||||
|
Reviwed-by: Eric Sandeen <sandeen@redhat.com>
|
||||||
|
Signed-off-by: Carlos Maiolino <cem@kernel.org>
|
||||||
|
Signed-off-by: Pavel Reichl <preichl@redhat.com>
|
||||||
|
---
|
||||||
|
common/main.c | 1 +
|
||||||
|
man/man8/xfsrestore.8 | 14 +++++++++
|
||||||
|
restore/content.c | 7 +++++
|
||||||
|
restore/getopt.h | 4 +--
|
||||||
|
restore/tree.c | 72 ++++++++++++++++++++++++++++++++++++++++---
|
||||||
|
restore/tree.h | 2 ++
|
||||||
|
6 files changed, 94 insertions(+), 6 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/common/main.c b/common/main.c
|
||||||
|
index 1db07d4..6141ffb 100644
|
||||||
|
--- a/common/main.c
|
||||||
|
+++ b/common/main.c
|
||||||
|
@@ -984,6 +984,7 @@
|
||||||
|
ULO(_("(contents only)"), GETOPT_TOC );
|
||||||
|
ULO(_("<verbosity {silent, verbose, trace}>"), GETOPT_VERBOSITY );
|
||||||
|
ULO(_("(use small tree window)"), GETOPT_SMALLWINDOW );
|
||||||
|
+ ULO(_("(try to fix rootdir due to xfsdump issue)"),GETOPT_FIXROOTDIR);
|
||||||
|
ULO(_("(don't restore extended file attributes)"),GETOPT_NOEXTATTR );
|
||||||
|
ULO(_("(restore root dir owner/permissions)"), GETOPT_ROOTPERM );
|
||||||
|
ULO(_("(restore DMAPI event settings)"), GETOPT_SETDM );
|
||||||
|
diff --git a/man/man8/xfsrestore.8 b/man/man8/xfsrestore.8
|
||||||
|
index 60e4309..df7dde0 100644
|
||||||
|
--- a/man/man8/xfsrestore.8
|
||||||
|
+++ b/man/man8/xfsrestore.8
|
||||||
|
@@ -240,6 +240,20 @@ but does not create or modify any files or directories.
|
||||||
|
It may be desirable to set the verbosity level to \f3silent\f1
|
||||||
|
when using this option.
|
||||||
|
.TP 5
|
||||||
|
+.B \-x
|
||||||
|
+This option may be useful to fix an issue which the files are restored
|
||||||
|
+to orphanage directory because of xfsdump (v3.1.7 - v3.1.9) problem.
|
||||||
|
+A normal dump cannot be restored with this option. This option works
|
||||||
|
+only for a corrupted dump.
|
||||||
|
+If a dump is created by problematic xfsdump (v3.1.7 - v3.1.9), you
|
||||||
|
+should see the contents of the dump with \f3\-t\f1 option before
|
||||||
|
+restoring. Then, if a file is placed to the orphanage directory, you need to
|
||||||
|
+use this \f3\-x\f1 option to restore the dump. Otherwise, you can restore
|
||||||
|
+the dump without this option.
|
||||||
|
+
|
||||||
|
+In the cumulative mode, this option is required only for a base (level 0)
|
||||||
|
+dump. You no longer need this option for level 1+ dumps.
|
||||||
|
+.TP 5
|
||||||
|
\f3\-v\f1 \f2verbosity\f1
|
||||||
|
.\" set inter-paragraph distance to 0
|
||||||
|
.PD 0
|
||||||
|
diff --git a/restore/content.c b/restore/content.c
|
||||||
|
index 8bb5fa4..488ae20 100644
|
||||||
|
--- a/restore/content.c
|
||||||
|
+++ b/restore/content.c
|
||||||
|
@@ -861,6 +861,7 @@ static int quotafilecheck(char *type, char *dstdir, char *quotafile);
|
||||||
|
|
||||||
|
bool_t content_media_change_needed;
|
||||||
|
bool_t restore_rootdir_permissions;
|
||||||
|
+bool_t need_fixrootdir;
|
||||||
|
char *media_change_alert_program = NULL;
|
||||||
|
size_t perssz;
|
||||||
|
|
||||||
|
@@ -964,6 +964,7 @@
|
||||||
|
firststsensepr = firststsenseprvalpr = BOOL_FALSE;
|
||||||
|
stsz = 0;
|
||||||
|
interpr = BOOL_FALSE;
|
||||||
|
+ need_fixrootdir = BOOL_FALSE;
|
||||||
|
restore_rootdir_permissions = BOOL_FALSE;
|
||||||
|
optind = 1;
|
||||||
|
opterr = 0;
|
||||||
|
@@ -1186,6 +1188,9 @@ content_init(int argc, char *argv[], size64_t vmsz)
|
||||||
|
case GETOPT_FMT2COMPAT:
|
||||||
|
tranp->t_truncategenpr = BOOL_TRUE;
|
||||||
|
break;
|
||||||
|
+ case GETOPT_FIXROOTDIR:
|
||||||
|
+ need_fixrootdir = BOOL_TRUE;
|
||||||
|
+ break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@@ -3129,6 +3134,8 @@ applydirdump(drive_t *drivep,
|
||||||
|
return rv;
|
||||||
|
}
|
||||||
|
|
||||||
|
+ if (need_fixrootdir)
|
||||||
|
+ tree_fixroot();
|
||||||
|
persp->s.dirdonepr = BOOL_TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
diff --git a/restore/getopt.h b/restore/getopt.h
|
||||||
|
index b5bc004..b0c0c7d 100644
|
||||||
|
--- a/restore/getopt.h
|
||||||
|
+++ b/restore/getopt.h
|
||||||
|
@@ -26,7 +26,7 @@
|
||||||
|
* purpose is to contain that command string.
|
||||||
|
*/
|
||||||
|
|
||||||
|
-#define GETOPT_CMDSTRING "a:b:c:def:himn:op:qrs:tv:wABCDEFG:H:I:JKL:M:NO:PQRS:TUVWX:Y:"
|
||||||
|
+#define GETOPT_CMDSTRING "a:b:c:def:himn:op:qrs:tv:wxABCDEFG:H:I:JKL:M:NO:PQRS:TUVWX:Y:"
|
||||||
|
|
||||||
|
#define GETOPT_WORKSPACE 'a' /* workspace dir (content.c) */
|
||||||
|
#define GETOPT_BLOCKSIZE 'b' /* blocksize for rmt */
|
||||||
|
@@ -51,7 +51,7 @@
|
||||||
|
/* 'u' */
|
||||||
|
#define GETOPT_VERBOSITY 'v' /* verbosity level (0 to 4 ) */
|
||||||
|
#define GETOPT_SMALLWINDOW 'w' /* use a small window for dir entries */
|
||||||
|
-/* 'x' */
|
||||||
|
+#define GETOPT_FIXROOTDIR 'x' /* try to fix rootdir due to bulkstat misuse */
|
||||||
|
/* 'y' */
|
||||||
|
/* 'z' */
|
||||||
|
#define GETOPT_NOEXTATTR 'A' /* do not restore ext. file attr. */
|
||||||
|
diff --git a/restore/tree.c b/restore/tree.c
|
||||||
|
index 5429b74..bfa07fe 100644
|
||||||
|
--- a/restore/tree.c
|
||||||
|
+++ b/restore/tree.c
|
||||||
|
@@ -15,7 +15,6 @@
|
||||||
|
* along with this program; if not, write the Free Software Foundation,
|
||||||
|
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||||
|
*/
|
||||||
|
-
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <unistd.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
@@ -262,6 +261,7 @@ extern void usage(void);
|
||||||
|
extern size_t pgsz;
|
||||||
|
extern size_t pgmask;
|
||||||
|
extern bool_t restore_rootdir_permissions;
|
||||||
|
+extern bool_t need_fixrootdir;
|
||||||
|
|
||||||
|
/* forward declarations of locally defined static functions ******************/
|
||||||
|
|
||||||
|
@@ -331,9 +331,45 @@
|
||||||
|
static char *persname = PERS_NAME;
|
||||||
|
static char *orphname = ORPH_NAME;
|
||||||
|
static xfs_ino_t orphino = ORPH_INO;
|
||||||
|
-
|
||||||
|
+static nh_t orig_rooth = NH_NULL;
|
||||||
|
|
||||||
|
/* definition of locally defined global functions ****************************/
|
||||||
|
+
|
||||||
|
+void
|
||||||
|
+tree_fixroot(void)
|
||||||
|
+{
|
||||||
|
+ nh_t rooth = persp->p_rooth;
|
||||||
|
+ xfs_ino_t rootino;
|
||||||
|
+
|
||||||
|
+ while (1) {
|
||||||
|
+ nh_t parh;
|
||||||
|
+ node_t *rootp = Node_map(rooth);
|
||||||
|
+
|
||||||
|
+ rootino = rootp->n_ino;
|
||||||
|
+ parh = rootp->n_parh;
|
||||||
|
+ Node_unmap(rooth, &rootp);
|
||||||
|
+
|
||||||
|
+ if (parh == rooth ||
|
||||||
|
+ /*
|
||||||
|
+ * since all new node (including non-parent)
|
||||||
|
+ * would be adopted into orphh
|
||||||
|
+ */
|
||||||
|
+ parh == persp->p_orphh ||
|
||||||
|
+ parh == NH_NULL)
|
||||||
|
+ break;
|
||||||
|
+ rooth = parh;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ if (rooth != persp->p_rooth) {
|
||||||
|
+ persp->p_rooth = rooth;
|
||||||
|
+ persp->p_rootino = rootino;
|
||||||
|
+ disown(rooth);
|
||||||
|
+ adopt(persp->p_rooth, persp->p_orphh, NH_NULL);
|
||||||
|
+
|
||||||
|
+ mlog(MLOG_NORMAL, _("fix root # to %llu (bind mount?)\n"),
|
||||||
|
+ rootino);
|
||||||
|
+ }
|
||||||
|
+}
|
||||||
|
|
||||||
|
/* ARGSUSED */
|
||||||
|
bool_t
|
||||||
|
@@ -754,7 +790,8 @@
|
||||||
|
/* lookup head of hardlink list
|
||||||
|
*/
|
||||||
|
hardh = link_hardh( ino, gen );
|
||||||
|
- assert( ino != persp->p_rootino || hardh == persp->p_rooth );
|
||||||
|
+ if (need_fixrootdir == BOOL_FALSE)
|
||||||
|
+ assert( ino != persp->p_rootino || hardh == persp->p_rooth );
|
||||||
|
|
||||||
|
/* already present
|
||||||
|
*/
|
||||||
|
@@ -1156,6 +1156,13 @@
|
||||||
|
ino,
|
||||||
|
gen );
|
||||||
|
}
|
||||||
|
+ /* found the fake rootino from subdir, need fix p_rooth. */
|
||||||
|
+ if (need_fixrootdir == BOOL_TRUE &&
|
||||||
|
+ persp->p_rootino == ino && hardh != persp->p_rooth) {
|
||||||
|
+ mlog(MLOG_NORMAL,
|
||||||
|
+ _("found fake rootino #%llu, will fix.\n"), ino);
|
||||||
|
+ persp->p_rooth = hardh;
|
||||||
|
+ }
|
||||||
|
return RV_OK;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@@ -3841,7 +3885,26 @@
|
||||||
|
static nh_t
|
||||||
|
link_hardh( xfs_ino_t ino, gen_t gen )
|
||||||
|
{
|
||||||
|
- return hash_find( ino, gen );
|
||||||
|
+ nh_t tmp = hash_find(ino, gen);
|
||||||
|
+
|
||||||
|
+ /*
|
||||||
|
+ * XXX (another workaround): the simply way is that don't reuse node_t
|
||||||
|
+ * with gen = 0 created in tree_init(). Otherwise, it could cause
|
||||||
|
+ * xfsrestore: tree.c:1003: tree_addent: Assertion
|
||||||
|
+ * `hardp->n_nrh != NRH_NULL' failed.
|
||||||
|
+ * and that node_t is a dir node but the fake rootino could be a non-dir
|
||||||
|
+ * plus reusing it could cause potential loop in tree hierarchy.
|
||||||
|
+ */
|
||||||
|
+ if (need_fixrootdir == BOOL_TRUE &&
|
||||||
|
+ ino == persp->p_rootino && gen == 0 &&
|
||||||
|
+ orig_rooth == NH_NULL) {
|
||||||
|
+ mlog(MLOG_NORMAL,
|
||||||
|
+_("link out fake rootino %llu with gen=0 created in tree_init()\n"), ino);
|
||||||
|
+ link_out(tmp);
|
||||||
|
+ orig_rooth = tmp;
|
||||||
|
+ return NH_NULL;
|
||||||
|
+ }
|
||||||
|
+ return tmp;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* returns following node in hard link list
|
||||||
|
diff --git a/restore/tree.h b/restore/tree.h
|
||||||
|
index bf66e3d..f5bd4ff 100644
|
||||||
|
--- a/restore/tree.h
|
||||||
|
+++ b/restore/tree.h
|
||||||
|
@@ -18,6 +18,8 @@
|
||||||
|
#ifndef TREE_H
|
||||||
|
#define TREE_H
|
||||||
|
|
||||||
|
+void tree_fixroot(void);
|
||||||
|
+
|
||||||
|
/* tree_init - creates a new tree abstraction.
|
||||||
|
*/
|
||||||
|
extern bool_t tree_init( char *hkdir,
|
||||||
|
--
|
||||||
|
2.41.0
|
||||||
|
|
@ -0,0 +1,38 @@
|
|||||||
|
From 6ff49bf7951e5951bd8f938fc3662c896a1bf9e8 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Jan Tulak <jtulak@redhat.com>
|
||||||
|
Date: Thu, 6 Dec 2018 17:10:00 -0600
|
||||||
|
Subject: [PATCH] common/types.h: Wrap #define UUID_STR_LEN 36 in #ifndef
|
||||||
|
|
||||||
|
Current Fedora 28 has the constant it in uuid/uuid.h where it belongs (per
|
||||||
|
comment next to the define), so we should treat the define as a
|
||||||
|
backward-compatibility workaround, rather than enforcing it for all.
|
||||||
|
|
||||||
|
Signed-off-by: Jan Tulak <jtulak@redhat.com>
|
||||||
|
[sandeen: tweak comment to match]
|
||||||
|
Reviewed-by: Eric Sandeen <sandeen@redhat.com>
|
||||||
|
Signed-off-by: Eric Sandeen <sandeen@sandeen.net>
|
||||||
|
Signed-off-by: Pavel Reichl <preichl@redhat.com>
|
||||||
|
---
|
||||||
|
common/types.h | 4 +++-
|
||||||
|
1 file changed, 3 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/common/types.h b/common/types.h
|
||||||
|
index 50c841e..b619667 100644
|
||||||
|
--- a/common/types.h
|
||||||
|
+++ b/common/types.h
|
||||||
|
@@ -33,9 +33,11 @@
|
||||||
|
#define XFSDUMP_DIRPATH inv_basepath()
|
||||||
|
|
||||||
|
/*
|
||||||
|
- * Should be, but isn't, defined in uuid/uuid.h
|
||||||
|
+ * If not defined in uuid/uuid.h
|
||||||
|
*/
|
||||||
|
+#ifndef UUID_STR_LEN
|
||||||
|
#define UUID_STR_LEN 36
|
||||||
|
+#endif
|
||||||
|
|
||||||
|
/* fundamental page size - probably should not be hardwired, but
|
||||||
|
* for now we will
|
||||||
|
--
|
||||||
|
2.41.0
|
||||||
|
|
@ -0,0 +1,149 @@
|
|||||||
|
From 06dd184d3a689dcb33a50b6e3576e48055e48133 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Donald Douwsma <ddouwsma@redhat.com>
|
||||||
|
Date: Fri, 14 Oct 2022 18:58:44 +1100
|
||||||
|
Subject: [PATCH 1/4] xfsrestore: fix on-media inventory media unpacking
|
||||||
|
|
||||||
|
When xfsrestore reads the inventory from tape media it fails to convert
|
||||||
|
media file records from bigendian. If the xfsdump inventory is not
|
||||||
|
available xfsrestore will write this invalid record to the on-line
|
||||||
|
inventory.
|
||||||
|
|
||||||
|
[root@rhel8 ~]# xfsdump -L Test1 -M "" -f /dev/st0 /boot > /dev/null
|
||||||
|
[root@rhel8 ~]# xfsdump -L Test2 -M "" -f /dev/st0 /boot > /dev/null
|
||||||
|
[root@rhel8 ~]# rm -rf /var/lib/xfsdump/inventory/
|
||||||
|
[root@rhel8 ~]# mt -f /dev/nst0 asf 2
|
||||||
|
[root@rhel8 ~]# xfsrestore -f /dev/nst0 -L Test2 /tmp/test2
|
||||||
|
xfsrestore: using scsi tape (drive_scsitape) strategy
|
||||||
|
xfsrestore: version 3.1.8 (dump format 3.0) - type ^C for status and control
|
||||||
|
xfsrestore: searching media for dump
|
||||||
|
xfsrestore: preparing drive
|
||||||
|
xfsrestore: examining media file 3
|
||||||
|
xfsrestore: found dump matching specified label:
|
||||||
|
xfsrestore: hostname: rhel8
|
||||||
|
xfsrestore: mount point: /boot
|
||||||
|
xfsrestore: volume: /dev/sda1
|
||||||
|
xfsrestore: session time: Tue Sep 27 16:05:28 2022
|
||||||
|
xfsrestore: level: 0
|
||||||
|
xfsrestore: session label: "Test2"
|
||||||
|
xfsrestore: media label: ""
|
||||||
|
xfsrestore: file system id: 26dd5aa0-b901-4cf5-9b68-0c5753cb3ab8
|
||||||
|
xfsrestore: session id: 62402423-7ae0-49ed-8ecb-9e5bc7642b91
|
||||||
|
xfsrestore: media id: 47ba45ca-3417-4006-ab10-3dc6419b83e2
|
||||||
|
xfsrestore: incorporating on-media session inventory into online inventory
|
||||||
|
xfsrestore: /var/lib/xfsdump/inventory created
|
||||||
|
xfsrestore: using on-media session inventory
|
||||||
|
xfsrestore: searching media for directory dump
|
||||||
|
xfsrestore: rewinding
|
||||||
|
xfsrestore: examining media file 0
|
||||||
|
xfsrestore: inventory session uuid (62402423-7ae0-49ed-8ecb-9e5bc7642b91) does not match the media header's session uuid (1771d9e8-a1ba-4e87-a61e-f6be97e41b45)
|
||||||
|
xfsrestore: examining media file 1
|
||||||
|
xfsrestore: inventory session uuid (62402423-7ae0-49ed-8ecb-9e5bc7642b91) does not match the media header's session uuid (1771d9e8-a1ba-4e87-a61e-f6be97e41b45)
|
||||||
|
xfsrestore: examining media file 2
|
||||||
|
xfsrestore: reading directories
|
||||||
|
xfsrestore: 9 directories and 320 entries processed
|
||||||
|
xfsrestore: directory post-processing
|
||||||
|
xfsrestore: restore complete: 0 seconds elapsed
|
||||||
|
xfsrestore: Restore Summary:
|
||||||
|
xfsrestore: stream 0 /dev/nst0 OK (success)
|
||||||
|
xfsrestore: Restore Status: SUCCESS
|
||||||
|
[root@rhel8 ~]# xfsdump -I
|
||||||
|
file system 0:
|
||||||
|
fs id: 26dd5aa0-b901-4cf5-9b68-0c5753cb3ab8
|
||||||
|
session 0:
|
||||||
|
mount point: rhel8:/boot
|
||||||
|
device: rhel8:/dev/sda1
|
||||||
|
time: Tue Sep 27 16:05:28 2022
|
||||||
|
session label: "Test2"
|
||||||
|
session id: 62402423-7ae0-49ed-8ecb-9e5bc7642b91
|
||||||
|
level: 0
|
||||||
|
resumed: NO
|
||||||
|
subtree: NO
|
||||||
|
streams: 1
|
||||||
|
stream 0:
|
||||||
|
pathname: /dev/st0
|
||||||
|
start: ino 133 offset 0
|
||||||
|
end: ino 1572997 offset 0
|
||||||
|
interrupted: YES
|
||||||
|
media files: 1
|
||||||
|
media file 0:
|
||||||
|
mfile index: 33554432
|
||||||
|
mfile type: data
|
||||||
|
mfile size: 211187836911616
|
||||||
|
mfile start: ino 9583660007044415488 offset 0
|
||||||
|
mfile end: ino 9583686395323482112 offset 0
|
||||||
|
media label: ""
|
||||||
|
media id: 47ba45ca-3417-4006-ab10-3dc6419b83e2
|
||||||
|
xfsdump: Dump Status: SUCCESS
|
||||||
|
[root@rhel8 ~]#
|
||||||
|
[root@rhel8 ~]# ls /tmp/test2
|
||||||
|
efi grub2 loader
|
||||||
|
|
||||||
|
The invalid start and end inode information cause xfsrestore to consider
|
||||||
|
that non-directory files do not reside in the current media and will
|
||||||
|
fail to restore them.
|
||||||
|
|
||||||
|
The behaviour of an initial restore may succeed if the position of the
|
||||||
|
tape is such that the data file is encountered before the inventory
|
||||||
|
file, or if there is only one dump session on tape, xfsrestore is
|
||||||
|
somewhat inconsistent in this regard. Subsequent restores will use the
|
||||||
|
invalid on-line inventory and fail to restore files.
|
||||||
|
|
||||||
|
Fix this by correctly unpacking the inventory data.
|
||||||
|
|
||||||
|
Signed-off-by: Donald Douwsma <ddouwsma@redhat.com>
|
||||||
|
Reviewed-by: Darrick J. Wong <djwong@kernel.org>
|
||||||
|
Signed-off-by: Carlos Maiolino <cem@kernel.org>
|
||||||
|
Signed-off-by: Pavel Reichl <preichl@redhat.com>
|
||||||
|
---
|
||||||
|
inventory/inv_stobj.c | 27 +++++++--------------------
|
||||||
|
1 file changed, 7 insertions(+), 20 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/inventory/inv_stobj.c b/inventory/inv_stobj.c
|
||||||
|
index e2e8767..cdf3300 100644
|
||||||
|
--- a/inventory/inv_stobj.c
|
||||||
|
+++ b/inventory/inv_stobj.c
|
||||||
|
@@ -1008,7 +1008,7 @@
|
||||||
|
size_t bufsz,
|
||||||
|
invt_sessinfo_t *s )
|
||||||
|
{
|
||||||
|
- uint i;
|
||||||
|
+ uint i, j;
|
||||||
|
char *tmpbuf;
|
||||||
|
char *p = (char *)bufp;
|
||||||
|
|
||||||
|
@@ -1087,26 +1087,13 @@
|
||||||
|
|
||||||
|
/* all the media files */
|
||||||
|
s->mfiles = (invt_mediafile_t *)p;
|
||||||
|
-
|
||||||
|
-#ifdef INVT_DELETION
|
||||||
|
- {
|
||||||
|
- int tmpfd = open( "moids", O_RDWR | O_CREAT, S_IRUSR|S_IWUSR );
|
||||||
|
- uint j;
|
||||||
|
- invt_mediafile_t *mmf = s->mfiles;
|
||||||
|
- for (i=0; i< s->ses->s_cur_nstreams; i++ ) {
|
||||||
|
- for (j=0; j< s->strms[ i ].st_nmediafiles;
|
||||||
|
- j++, mmf++ )
|
||||||
|
- xlate_invt_mediafile((invt_mediafile_t *)mmf, (invt_mediafile_t *)tmpbuf, 1);
|
||||||
|
- bcopy(tmpbuf, mmf, sizeof(invt_mediafile_t));
|
||||||
|
- put_invtrecord( tmpfd, &mmf->mf_moid,
|
||||||
|
- sizeof( uuid_t ), 0, SEEK_END, 0 );
|
||||||
|
- }
|
||||||
|
- close( tmpfd );
|
||||||
|
- }
|
||||||
|
-#endif
|
||||||
|
for ( i = 0; i < s->ses->s_cur_nstreams; i++ ) {
|
||||||
|
- p += (size_t) ( s->strms[ i ].st_nmediafiles )
|
||||||
|
- * sizeof( invt_mediafile_t );
|
||||||
|
+ for(j = 0; j < s->strms[i].st_nmediafiles; j++) {
|
||||||
|
+ xlate_invt_mediafile((invt_mediafile_t *)p,
|
||||||
|
+ (invt_mediafile_t *)tmpbuf, 1);
|
||||||
|
+ bcopy(tmpbuf, p, sizeof(invt_mediafile_t));
|
||||||
|
+ p += sizeof(invt_mediafile_t);
|
||||||
|
+ }
|
||||||
|
}
|
||||||
|
|
||||||
|
/* sanity check the size of the buffer given to us vs. the size it
|
||||||
|
--
|
||||||
|
2.41.0
|
||||||
|
|
@ -0,0 +1,204 @@
|
|||||||
|
From 65034077ef03c434c09c88d38c4c58ec442cf3c1 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Donald Douwsma <ddouwsma@redhat.com>
|
||||||
|
Date: Fri, 14 Oct 2022 18:58:45 +1100
|
||||||
|
Subject: [PATCH 2/4] xfsrestore: fix on-media inventory stream unpacking
|
||||||
|
|
||||||
|
xfsdump can create multiple streams, when restoring the online inventory
|
||||||
|
with multiple streams we fail to process these and assert when the
|
||||||
|
inventory buffer is not fully decoded.
|
||||||
|
|
||||||
|
[root@rhel8 ~]# xfsdump -L "Test1" -f /dev/nst0 -M tape1 -f /dev/nst1 -M tape2 /boot
|
||||||
|
xfsdump: using scsi tape (drive_scsitape) strategy
|
||||||
|
xfsdump: using scsi tape (drive_scsitape) strategy
|
||||||
|
xfsdump: version 3.1.8 (dump format 3.0) - type ^C for status and control
|
||||||
|
xfsdump: level 0 dump of rhel8:/boot
|
||||||
|
xfsdump: dump date: Thu Oct 6 13:50:45 2022
|
||||||
|
xfsdump: session id: aa25fa48-4493-45c7-9027-61e53e486445
|
||||||
|
xfsdump: session label: "Test1"
|
||||||
|
xfsdump: ino map phase 1: constructing initial dump list
|
||||||
|
xfsdump: ino map phase 2: skipping (no pruning necessary)
|
||||||
|
xfsdump: ino map phase 3: identifying stream starting points
|
||||||
|
xfsdump: stream 0: ino 133 offset 0 to ino 28839 offset 0
|
||||||
|
xfsdump: stream 1: ino 28839 offset 0 to end
|
||||||
|
xfsdump: ino map construction complete
|
||||||
|
xfsdump: estimated dump size: 328720704 bytes
|
||||||
|
xfsdump: estimated dump size per stream: 164375728 bytes
|
||||||
|
xfsdump: /var/lib/xfsdump/inventory created
|
||||||
|
xfsdump: drive 0: preparing drive
|
||||||
|
xfsdump: drive 1: preparing drive
|
||||||
|
xfsdump: drive 1: creating dump session media file 0 (media 0, file 0)
|
||||||
|
xfsdump: drive 1: dumping ino map
|
||||||
|
xfsdump: drive 1: dumping non-directory files
|
||||||
|
xfsdump: drive 0: creating dump session media file 0 (media 0, file 0)
|
||||||
|
xfsdump: drive 0: dumping ino map
|
||||||
|
xfsdump: drive 0: dumping directories
|
||||||
|
xfsdump: drive 0: dumping non-directory files
|
||||||
|
xfsdump: drive 1: ending media file
|
||||||
|
xfsdump: drive 1: media file size 166723584 bytes
|
||||||
|
xfsdump: drive 1: waiting for synchronized session inventory dump
|
||||||
|
xfsdump: drive 0: ending media file
|
||||||
|
xfsdump: drive 0: media file size 165675008 bytes
|
||||||
|
xfsdump: drive 0: waiting for synchronized session inventory dump
|
||||||
|
xfsdump: drive 0: dumping session inventory
|
||||||
|
xfsdump: drive 0: beginning inventory media file
|
||||||
|
xfsdump: drive 0: media file 1 (media 0, file 1)
|
||||||
|
xfsdump: drive 0: ending inventory media file
|
||||||
|
xfsdump: drive 0: inventory media file size 2097152 bytes
|
||||||
|
xfsdump: drive 0: writing stream terminator
|
||||||
|
xfsdump: drive 0: beginning media stream terminator
|
||||||
|
xfsdump: drive 0: media file 2 (media 0, file 2)
|
||||||
|
xfsdump: drive 0: ending media stream terminator
|
||||||
|
xfsdump: drive 0: media stream terminator size 1048576 bytes
|
||||||
|
xfsdump: drive 1: dumping session inventory
|
||||||
|
xfsdump: drive 1: beginning inventory media file
|
||||||
|
xfsdump: drive 1: media file 1 (media 0, file 1)
|
||||||
|
xfsdump: drive 1: ending inventory media file
|
||||||
|
xfsdump: drive 1: inventory media file size 2097152 bytes
|
||||||
|
xfsdump: drive 1: writing stream terminator
|
||||||
|
xfsdump: drive 1: beginning media stream terminator
|
||||||
|
xfsdump: drive 1: media file 2 (media 0, file 2)
|
||||||
|
xfsdump: drive 1: ending media stream terminator
|
||||||
|
xfsdump: drive 1: media stream terminator size 1048576 bytes
|
||||||
|
xfsdump: dump size (non-dir files) : 328189016 bytes
|
||||||
|
xfsdump: dump complete: 4 seconds elapsed
|
||||||
|
xfsdump: Dump Summary:
|
||||||
|
xfsdump: stream 0 /dev/nst0 OK (success)
|
||||||
|
xfsdump: stream 1 /dev/nst1 OK (success)
|
||||||
|
xfsdump: Dump Status: SUCCESS
|
||||||
|
[root@rhel8 ~]# xfsdump -I
|
||||||
|
file system 0:
|
||||||
|
fs id: 26dd5aa0-b901-4cf5-9b68-0c5753cb3ab8
|
||||||
|
session 0:
|
||||||
|
mount point: rhel8:/boot
|
||||||
|
device: rhel8:/dev/sda1
|
||||||
|
time: Thu Oct 6 13:50:45 2022
|
||||||
|
session label: "Test1"
|
||||||
|
session id: aa25fa48-4493-45c7-9027-61e53e486445
|
||||||
|
level: 0
|
||||||
|
resumed: NO
|
||||||
|
subtree: NO
|
||||||
|
streams: 2
|
||||||
|
stream 0:
|
||||||
|
pathname: /dev/nst0
|
||||||
|
start: ino 133 offset 0
|
||||||
|
end: ino 28839 offset 0
|
||||||
|
interrupted: NO
|
||||||
|
media files: 2
|
||||||
|
media file 0:
|
||||||
|
mfile index: 0
|
||||||
|
mfile type: data
|
||||||
|
mfile size: 165675008
|
||||||
|
mfile start: ino 133 offset 0
|
||||||
|
mfile end: ino 28839 offset 0
|
||||||
|
media label: "tape1"
|
||||||
|
media id: adb31f2a-f026-4597-a20a-326f28ecbaf1
|
||||||
|
media file 1:
|
||||||
|
mfile index: 1
|
||||||
|
mfile type: inventory
|
||||||
|
mfile size: 2097152
|
||||||
|
media label: "tape1"
|
||||||
|
media id: adb31f2a-f026-4597-a20a-326f28ecbaf1
|
||||||
|
stream 1:
|
||||||
|
pathname: /dev/nst1
|
||||||
|
start: ino 28839 offset 0
|
||||||
|
end: ino 1572997 offset 0
|
||||||
|
interrupted: NO
|
||||||
|
media files: 2
|
||||||
|
media file 0:
|
||||||
|
mfile index: 0
|
||||||
|
mfile type: data
|
||||||
|
mfile size: 166723584
|
||||||
|
mfile start: ino 28839 offset 0
|
||||||
|
mfile end: ino 1572997 offset 0
|
||||||
|
media label: "tape2"
|
||||||
|
media id: 22224f02-b6c7-47d5-ad61-a61ba071c8a8
|
||||||
|
media file 1:
|
||||||
|
mfile index: 1
|
||||||
|
mfile type: inventory
|
||||||
|
mfile size: 2097152
|
||||||
|
media label: "tape2"
|
||||||
|
media id: 22224f02-b6c7-47d5-ad61-a61ba071c8a8
|
||||||
|
xfsdump: Dump Status: SUCCESS
|
||||||
|
[root@rhel8 ~]# mv /var/lib/xfsdump/inventory /var/lib/xfsdump/inventory_two_sessions
|
||||||
|
[root@rhel8 ~]# xfsdump -I
|
||||||
|
xfsdump: Dump Status: SUCCESS
|
||||||
|
|
||||||
|
[root@rhel8 ~]# xfsrestore -L Test1 -f /dev/nst0 /tmp/test1/
|
||||||
|
xfsrestore: using scsi tape (drive_scsitape) strategy
|
||||||
|
xfsrestore: version 3.1.8 (dump format 3.0) - type ^C for status and control
|
||||||
|
xfsrestore: searching media for dump
|
||||||
|
xfsrestore: preparing drive
|
||||||
|
xfsrestore: examining media file 2
|
||||||
|
xfsrestore: found dump matching specified label:
|
||||||
|
xfsrestore: hostname: rhel8
|
||||||
|
xfsrestore: mount point: /boot
|
||||||
|
xfsrestore: volume: /dev/sda1
|
||||||
|
xfsrestore: session time: Thu Oct 6 13:50:45 2022
|
||||||
|
xfsrestore: level: 0
|
||||||
|
xfsrestore: session label: "Test1"
|
||||||
|
xfsrestore: media label: "tape1"
|
||||||
|
xfsrestore: file system id: 26dd5aa0-b901-4cf5-9b68-0c5753cb3ab8
|
||||||
|
xfsrestore: session id: aa25fa48-4493-45c7-9027-61e53e486445
|
||||||
|
xfsrestore: media id: adb31f2a-f026-4597-a20a-326f28ecbaf1
|
||||||
|
xfsrestore: searching media for directory dump
|
||||||
|
xfsrestore: rewinding
|
||||||
|
xfsrestore: examining media file 0
|
||||||
|
xfsrestore: reading directories
|
||||||
|
xfsrestore: 9 directories and 320 entries processed
|
||||||
|
xfsrestore: directory post-processing
|
||||||
|
xfsrestore: restoring non-directory files
|
||||||
|
xfsrestore: examining media file 1
|
||||||
|
xfsrestore: inv_stobj.c:1119: stobj_unpack_sessinfo: Assertion `(size_t) ( p - (char *) bufp ) == bufsz' failed.
|
||||||
|
Aborted (core dumped)
|
||||||
|
|
||||||
|
Make sure we unpack multiple streams when restoring the online
|
||||||
|
inventory from media.
|
||||||
|
|
||||||
|
Signed-off-by: Donald Douwsma <ddouwsma@redhat.com>
|
||||||
|
Reviewed-by: Darrick J. Wong <djwong@kernel.org>
|
||||||
|
Signed-off-by: Carlos Maiolino <cem@kernel.org>
|
||||||
|
Signed-off-by: Pavel Reichl <preichl@redhat.com>
|
||||||
|
---
|
||||||
|
inventory/inv_stobj.c | 13 +++++++------
|
||||||
|
1 file changed, 7 insertions(+), 6 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/inventory/inv_stobj.c b/inventory/inv_stobj.c
|
||||||
|
index cdf3300..42b86dc 100644
|
||||||
|
--- a/inventory/inv_stobj.c
|
||||||
|
+++ b/inventory/inv_stobj.c
|
||||||
|
@@ -1065,25 +1065,26 @@
|
||||||
|
return BOOL_FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
+ /* get the seshdr and then, the remainder of the session */
|
||||||
|
xlate_invt_seshdr((invt_seshdr_t *)p, (invt_seshdr_t *)tmpbuf, 1);
|
||||||
|
bcopy(tmpbuf, p, sizeof(invt_seshdr_t));
|
||||||
|
-
|
||||||
|
- /* get the seshdr and then, the remainder of the session */
|
||||||
|
s->seshdr = (invt_seshdr_t *)p;
|
||||||
|
s->seshdr->sh_sess_off = -1;
|
||||||
|
p += sizeof( invt_seshdr_t );
|
||||||
|
|
||||||
|
-
|
||||||
|
xlate_invt_session((invt_session_t *)p, (invt_session_t *)tmpbuf, 1);
|
||||||
|
bcopy (tmpbuf, p, sizeof(invt_session_t));
|
||||||
|
s->ses = (invt_session_t *)p;
|
||||||
|
p += sizeof( invt_session_t );
|
||||||
|
|
||||||
|
/* the array of all the streams belonging to this session */
|
||||||
|
- xlate_invt_stream((invt_stream_t *)p, (invt_stream_t *)tmpbuf, 1);
|
||||||
|
- bcopy(tmpbuf, p, sizeof(invt_stream_t));
|
||||||
|
s->strms = (invt_stream_t *)p;
|
||||||
|
- p += s->ses->s_cur_nstreams * sizeof( invt_stream_t );
|
||||||
|
+ for (i = 0; i < s->ses->s_cur_nstreams; i++) {
|
||||||
|
+ xlate_invt_stream((invt_stream_t *)p,
|
||||||
|
+ (invt_stream_t *)tmpbuf, 1);
|
||||||
|
+ bcopy(tmpbuf, p, sizeof(invt_stream_t));
|
||||||
|
+ p += sizeof(invt_stream_t);
|
||||||
|
+ }
|
||||||
|
|
||||||
|
/* all the media files */
|
||||||
|
s->mfiles = (invt_mediafile_t *)p;
|
||||||
|
--
|
||||||
|
2.41.0
|
||||||
|
|
@ -0,0 +1,91 @@
|
|||||||
|
From 7b843fdbbe47ed36117fc0e1fb95e4288f3a9c83 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Donald Douwsma <ddouwsma@redhat.com>
|
||||||
|
Date: Fri, 14 Oct 2022 18:58:46 +1100
|
||||||
|
Subject: [PATCH 3/4] xfsdump: fix on-media inventory stream packing
|
||||||
|
|
||||||
|
With the on-media inventory now being restored for multiple streams we
|
||||||
|
can see that the restored streams both claim to be for /dev/nst0.
|
||||||
|
|
||||||
|
[root@rhel8 xfsdump-dev]# xfsdump -L "Test" -f /dev/nst0 -M tape1 -f /dev/nst1 -M tape2 /boot
|
||||||
|
...
|
||||||
|
[root@rhel8 ~]# rm -rf /var/lib/xfsdump/inventory
|
||||||
|
[root@rhel8 xfsdump-dev]# restore/xfsrestore -L Test -f /dev/nst0 -f /dev/nst1 /tmp/test
|
||||||
|
restore/xfsrestore: using scsi tape (drive_scsitape) strategy
|
||||||
|
restore/xfsrestore: using scsi tape (drive_scsitape) strategy
|
||||||
|
restore/xfsrestore: version 3.1.10 (dump format 3.0) - type ^C for status and control
|
||||||
|
...
|
||||||
|
restore/xfsrestore: Restore Summary:
|
||||||
|
restore/xfsrestore: stream 0 /dev/nst0 OK (success)
|
||||||
|
restore/xfsrestore: stream 1 /dev/nst1 ALREADY_DONE (another stream completed the operation)
|
||||||
|
restore/xfsrestore: Restore Status: SUCCESS
|
||||||
|
[root@rhel8 xfsdump-dev]# xfsdump -I
|
||||||
|
file system 0:
|
||||||
|
fs id: 26dd5aa0-b901-4cf5-9b68-0c5753cb3ab8
|
||||||
|
session 0:
|
||||||
|
mount point: rhel8:/boot
|
||||||
|
device: rhel8:/dev/sda1
|
||||||
|
time: Fri Oct 14 18:31:40 2022
|
||||||
|
session label: "Test"
|
||||||
|
session id: 96538a3d-2af8-4a79-8865-afec6e3e55f4
|
||||||
|
level: 0
|
||||||
|
resumed: NO
|
||||||
|
subtree: NO
|
||||||
|
streams: 2
|
||||||
|
stream 0:
|
||||||
|
pathname: /dev/nst0
|
||||||
|
start: ino 133 offset 0
|
||||||
|
end: ino 28839 offset 0
|
||||||
|
interrupted: YES
|
||||||
|
media files: 1
|
||||||
|
media file 0:
|
||||||
|
mfile index: 0
|
||||||
|
mfile type: data
|
||||||
|
mfile size: 165675008
|
||||||
|
mfile start: ino 133 offset 0
|
||||||
|
mfile end: ino 28839 offset 0
|
||||||
|
media label: "tape1"
|
||||||
|
media id: 8a9d0ced-61f6-4332-a0c1-f1e38641c4e6
|
||||||
|
stream 1:
|
||||||
|
pathname: /dev/nst0
|
||||||
|
start: ino 133 offset 0
|
||||||
|
end: ino 28839 offset 0
|
||||||
|
interrupted: YES
|
||||||
|
media files: 1
|
||||||
|
media file 0:
|
||||||
|
mfile index: 0
|
||||||
|
mfile type: data
|
||||||
|
mfile size: 166723584
|
||||||
|
mfile start: ino 28839 offset 0
|
||||||
|
mfile end: ino 1572997 offset 0
|
||||||
|
media label: "tape2"
|
||||||
|
media id: 7d569377-6bfb-4c02-b299-4dbe753bb048
|
||||||
|
xfsdump: Dump Status: SUCCESS
|
||||||
|
[root@rhel8 xfsdump-dev]#
|
||||||
|
|
||||||
|
Fix this by indexing the stream being packed for the on-media inventory.
|
||||||
|
|
||||||
|
Signed-off-by: Donald Douwsma <ddouwsma@redhat.com>
|
||||||
|
Suggested-by: Darrick J. Wong <djwong@kernel.org>
|
||||||
|
Reviewed-by: Darrick J. Wong <djwong@kernel.org>
|
||||||
|
Signed-off-by: Carlos Maiolino <cem@kernel.org>
|
||||||
|
Signed-off-by: Pavel Reichl <preichl@redhat.com>
|
||||||
|
---
|
||||||
|
inventory/inv_stobj.c | 2 +-
|
||||||
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/inventory/inv_stobj.c b/inventory/inv_stobj.c
|
||||||
|
index 42b86dc..d6aedf2 100644
|
||||||
|
--- a/inventory/inv_stobj.c
|
||||||
|
+++ b/inventory/inv_stobj.c
|
||||||
|
@@ -798,7 +798,7 @@
|
||||||
|
sesbuf += sizeof( invt_session_t );
|
||||||
|
|
||||||
|
for ( i = 0; i < ses->s_cur_nstreams; i++ ) {
|
||||||
|
- xlate_invt_stream( strms, (invt_stream_t *)sesbuf, 1 );
|
||||||
|
+ xlate_invt_stream(&strms[i], (invt_stream_t *)sesbuf, 1);
|
||||||
|
sesbuf += sizeof( invt_stream_t );
|
||||||
|
}
|
||||||
|
|
||||||
|
--
|
||||||
|
2.41.0
|
||||||
|
|
@ -0,0 +1,47 @@
|
|||||||
|
From aaaa57f32a605e4ebd2e4230fe036afc009ae0a0 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Donald Douwsma <ddouwsma@redhat.com>
|
||||||
|
Date: Fri, 14 Oct 2022 18:58:47 +1100
|
||||||
|
Subject: [PATCH 4/4] xfsrestore: untangle inventory unpacking logic
|
||||||
|
|
||||||
|
stobj_unpack_sessinfo returns bool_t, fix logic in pi_addfile so errors
|
||||||
|
can be properly reported.
|
||||||
|
|
||||||
|
Signed-off-by: Donald Douwsma <ddouwsma@redhat.com>
|
||||||
|
Reviewed-by: Darrick J. Wong <djwong@kernel.org>
|
||||||
|
Signed-off-by: Carlos Maiolino <cem@kernel.org>
|
||||||
|
Signed-off-by: Pavel Reichl <preichl@redhat.com>
|
||||||
|
---
|
||||||
|
restore/content.c | 13 +++++--------
|
||||||
|
1 file changed, 5 insertions(+), 8 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/restore/content.c b/restore/content.c
|
||||||
|
index b19bb90..8bb5fa4 100644
|
||||||
|
--- a/restore/content.c
|
||||||
|
+++ b/restore/content.c
|
||||||
|
@@ -5467,18 +5467,14 @@
|
||||||
|
/* ask inventory to convert buffer into session
|
||||||
|
* desc.
|
||||||
|
*/
|
||||||
|
- sessp = 0;
|
||||||
|
- if ( ! buflen ) {
|
||||||
|
- ok = BOOL_FALSE;
|
||||||
|
- } else {
|
||||||
|
- /* extract the session information from the buffer */
|
||||||
|
- if ( stobj_unpack_sessinfo( bufp, buflen, &sessinfo )<0 ) {
|
||||||
|
- ok = BOOL_FALSE;
|
||||||
|
- } else {
|
||||||
|
+ ok = BOOL_FALSE;
|
||||||
|
+ /* extract the session information from the buffer */
|
||||||
|
+ if (buflen &&
|
||||||
|
+ stobj_unpack_sessinfo(bufp, buflen, &sessinfo)) {
|
||||||
|
stobj_convert_sessinfo(&sessp, &sessinfo);
|
||||||
|
ok = BOOL_TRUE;
|
||||||
|
- }
|
||||||
|
}
|
||||||
|
+
|
||||||
|
if ( ! ok || ! sessp ) {
|
||||||
|
mlog( MLOG_DEBUG | MLOG_WARNING | MLOG_MEDIA, _(
|
||||||
|
"on-media session "
|
||||||
|
--
|
||||||
|
2.41.0
|
||||||
|
|
@ -0,0 +1,57 @@
|
|||||||
|
From 8e97f9c2b3c362fa6dd872d72594713c713479bc Mon Sep 17 00:00:00 2001
|
||||||
|
From: Donald Douwsma <ddouwsma@redhat.com>
|
||||||
|
Date: Thu, 24 Aug 2023 12:07:04 +1000
|
||||||
|
Subject: [PATCH] xfsrestore: suggest -x rather than assert for false roots
|
||||||
|
|
||||||
|
If we're going to have a fix for false root problems its a good idea to
|
||||||
|
let people know that there's a way to recover, error out with a useful
|
||||||
|
message that mentions the `-x` option rather than just assert.
|
||||||
|
|
||||||
|
Before
|
||||||
|
|
||||||
|
xfsrestore: searching media for directory dump
|
||||||
|
xfsrestore: reading directories
|
||||||
|
xfsrestore: tree.c:757: tree_begindir: Assertion `ino != persp->p_rootino || hardh == persp->p_rooth' failed.
|
||||||
|
Aborted
|
||||||
|
|
||||||
|
After
|
||||||
|
|
||||||
|
xfsrestore: ERROR: tree.c:791: tree_begindir: Assertion `ino != persp->p_rootino || hardh == persp->p_rooth` failed.
|
||||||
|
xfsrestore: ERROR: False root detected. Recovery may be possible using the `-x` option
|
||||||
|
Aborted
|
||||||
|
|
||||||
|
Fixes: d7cba7410710 ("xfsrestore: fix rootdir due to xfsdump bulkstat misuse")
|
||||||
|
Signed-off-by: Donald Douwsma <ddouwsma@redhat.com>
|
||||||
|
Reviewed-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>
|
||||||
|
---
|
||||||
|
restore/tree.c | 11 +++++++++--
|
||||||
|
1 file changed, 9 insertions(+), 2 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/restore/tree.c b/restore/tree.c
|
||||||
|
index bfa07fe..6f3180f 100644
|
||||||
|
--- a/restore/tree.c
|
||||||
|
+++ b/restore/tree.c
|
||||||
|
@@ -783,8 +783,15 @@ tree_begindir( filehdr_t *fhdrp, dah_t *dahp )
|
||||||
|
/* lookup head of hardlink list
|
||||||
|
*/
|
||||||
|
hardh = link_hardh( ino, gen );
|
||||||
|
- if (need_fixrootdir == BOOL_FALSE)
|
||||||
|
- assert( ino != persp->p_rootino || hardh == persp->p_rooth );
|
||||||
|
+ if (need_fixrootdir == BOOL_FALSE &&
|
||||||
|
+ !(ino != persp->p_rootino || hardh == persp->p_rooth)) {
|
||||||
|
+ mlog(MLOG_ERROR | MLOG_TREE,
|
||||||
|
+"%s:%d: %s: Assertion `ino != persp->p_rootino || hardh == persp->p_rooth` failed.\n",
|
||||||
|
+ __FILE__, __LINE__, __func__);
|
||||||
|
+ mlog(MLOG_ERROR | MLOG_TREE, _(
|
||||||
|
+"False root detected. Recovery may be possible using the `-x` option\n"));
|
||||||
|
+ return NH_NULL;
|
||||||
|
+ }
|
||||||
|
|
||||||
|
/* already present
|
||||||
|
*/
|
||||||
|
--
|
||||||
|
2.41.0
|
||||||
|
|
@ -1,19 +1,26 @@
|
|||||||
Summary: Backup and restore utilities for the XFS filesystem
|
Summary: Administrative utilities for the XFS filesystem
|
||||||
Name: xfsdump
|
Name: xfsdump
|
||||||
Version: 3.1.12
|
Version: 3.1.8
|
||||||
Release: 6%{?dist}
|
Release: 7%{?dist}
|
||||||
# Licensing based on generic "GNU GENERAL PUBLIC LICENSE"
|
# Licensing based on generic "GNU GENERAL PUBLIC LICENSE"
|
||||||
# in source, with no mention of version.
|
# in source, with no mention of version.
|
||||||
License: GPL-1.0-or-later
|
License: GPL+
|
||||||
Source0: http://kernel.org/pub/linux/utils/fs/xfs/%{name}/%{name}-%{version}.tar.xz
|
Group: System Environment/Base
|
||||||
Source1: http://kernel.org/pub/linux/utils/fs/xfs/%{name}/%{name}-%{version}.tar.sign
|
URL: http://oss.sgi.com/projects/xfs/
|
||||||
Source2: https://git.kernel.org/pub/scm/docs/kernel/pgpkeys.git/plain/keys/13F703E6C11CF6F0.asc
|
Source0: http://kernel.org/pub/linux/utils/fs/xfs/%{name}/%{name}-%{version}.tar.xz
|
||||||
BuildRequires: make
|
Patch0: 0001-xfsdump-Revert-xfsdump-handle-bind-mount-targets.patch
|
||||||
BuildRequires: gcc
|
Patch1: 0002-xfsdump-intercept-bind-mount-targets.patch
|
||||||
BuildRequires: libtool, gettext, gawk
|
Patch2: 0003-for-next-xfsrestore-fix-rootdir-due-to-xfsdump-bulkstat-misus.patch
|
||||||
BuildRequires: xfsprogs-devel, libuuid-devel, libattr-devel ncurses-devel
|
Patch3: 0004-v3.1.9-common-types.h-Wrap-define-UUID_STR_LEN-36-in-ifndef.patch
|
||||||
BuildRequires: gnupg2, xz
|
Patch4: 0005-v3.1.12-xfsrestore-fix-on-media-inventory-media-unpacking.patch
|
||||||
Requires: xfsprogs >= 2.6.30, attr >= 2.0.0
|
Patch5: 0006-v3.1.12-xfsrestore-fix-on-media-inventory-stream-unpacking.patch
|
||||||
|
Patch6: 0007-v3.1.12-xfsdump-fix-on-media-inventory-stream-packing.patch
|
||||||
|
Patch7: 0008-v3.1.12-xfsrestore-untangle-inventory-unpacking-logic.patch
|
||||||
|
Patch8: 0009-v3.1.13-xfsrestore-suggest-x-rather-than-assert-for-false-ro.patch
|
||||||
|
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
|
||||||
|
BuildRequires: libtool, gettext, gawk
|
||||||
|
BuildRequires: xfsprogs-devel, libuuid-devel, libattr-devel ncurses-devel
|
||||||
|
Requires: xfsprogs >= 2.6.30, attr >= 2.0.0
|
||||||
|
|
||||||
%description
|
%description
|
||||||
The xfsdump package contains xfsdump, xfsrestore and a number of
|
The xfsdump package contains xfsdump, xfsrestore and a number of
|
||||||
@ -33,8 +40,16 @@ be layered on top of the full backup. Single files and directory
|
|||||||
subtrees may be restored from full or partial backups.
|
subtrees may be restored from full or partial backups.
|
||||||
|
|
||||||
%prep
|
%prep
|
||||||
xzcat '%{SOURCE0}' | %{gpgverify} --keyring='%{SOURCE2}' --signature='%{SOURCE1}' --data=-
|
|
||||||
%setup -q
|
%setup -q
|
||||||
|
%patch0 -p1
|
||||||
|
%patch1 -p1
|
||||||
|
%patch2 -p1
|
||||||
|
%patch3 -p1
|
||||||
|
%patch4 -p1
|
||||||
|
%patch5 -p1
|
||||||
|
%patch6 -p1
|
||||||
|
%patch7 -p1
|
||||||
|
%patch8 -p1
|
||||||
|
|
||||||
%build
|
%build
|
||||||
%configure
|
%configure
|
||||||
@ -48,6 +63,7 @@ make DIST_ROOT=$RPM_BUILD_ROOT install
|
|||||||
rm -rf $RPM_BUILD_ROOT/%{_datadir}/doc/xfsdump/
|
rm -rf $RPM_BUILD_ROOT/%{_datadir}/doc/xfsdump/
|
||||||
|
|
||||||
# Bit of a hack to move files from /sbin to /usr/sbin
|
# Bit of a hack to move files from /sbin to /usr/sbin
|
||||||
|
(cd $RPM_BUILD_ROOT/%{_sbindir}; rm xfsdump xfsrestore)
|
||||||
(cd $RPM_BUILD_ROOT/%{_sbindir}; mv ../../sbin/xfsdump .)
|
(cd $RPM_BUILD_ROOT/%{_sbindir}; mv ../../sbin/xfsdump .)
|
||||||
(cd $RPM_BUILD_ROOT/%{_sbindir}; mv ../../sbin/xfsrestore .)
|
(cd $RPM_BUILD_ROOT/%{_sbindir}; mv ../../sbin/xfsrestore .)
|
||||||
|
|
||||||
@ -56,83 +72,39 @@ mkdir -p $RPM_BUILD_ROOT/%{_sharedstatedir}/xfsdump/inventory
|
|||||||
|
|
||||||
%find_lang %{name}
|
%find_lang %{name}
|
||||||
|
|
||||||
|
%clean
|
||||||
|
rm -rf $RPM_BUILD_ROOT
|
||||||
|
|
||||||
%files -f %{name}.lang
|
%files -f %{name}.lang
|
||||||
|
%defattr(-,root,root)
|
||||||
%doc README doc/COPYING doc/CHANGES doc/README.xfsdump doc/xfsdump_ts.txt
|
%doc README doc/COPYING doc/CHANGES doc/README.xfsdump doc/xfsdump_ts.txt
|
||||||
%{_mandir}/man8/*
|
%{_mandir}/man8/*
|
||||||
%{_sbindir}/*
|
%{_sbindir}/*
|
||||||
%{_sharedstatedir}/xfsdump/inventory
|
%{_sharedstatedir}/xfsdump/inventory
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
* Tue Oct 29 2024 Troy Dawson <tdawson@redhat.com> - 3.1.12-6
|
* Thu Oct 05 2023 Pavel Reichl <preichl@redhat.com> - 3.1.8-7
|
||||||
- Bump release for October 2024 mass rebuild:
|
- xfsdump/xfsrestore: suggest recovery for false roots may be possible using -x
|
||||||
Resolves: RHEL-64018
|
- Related: RHEL-11883
|
||||||
|
|
||||||
* Mon Jun 24 2024 Troy Dawson <tdawson@redhat.com> - 3.1.12-5
|
* Tue Jun 20 2023 Pavel Reichl <preichl@redhat.com> - 3.1.8-6
|
||||||
- Bump release for June 2024 mass rebuild
|
- xfsdump: restoring inventory prevents non-directory files being restored from tape
|
||||||
|
- related: bz#2166554
|
||||||
|
|
||||||
* Sat Jan 27 2024 Fedora Release Engineering <releng@fedoraproject.org> - 3.1.12-4
|
* Mon Jun 19 2023 Pavel Reichl <preichl@redhat.com> - 3.1.8-5
|
||||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
|
- xfsrestore: Files from the backup go to orphanage dir because of xfsdump issue
|
||||||
|
- related: bz#2055289
|
||||||
|
|
||||||
* Tue Oct 03 2023 Pavel Reichl <preichl@redhat.com> - 3.1.12-3
|
* Fri Feb 11 2022 Eric Sandeen <sandeen@redhat.com> 3.1.8-4
|
||||||
- Convert License tag to SPDX format
|
- Fix bind mount vs root inode problems (#2020494)
|
||||||
|
|
||||||
* Sat Jul 22 2023 Fedora Release Engineering <releng@fedoraproject.org> - 3.1.12-2
|
* Wed May 15 2019 Eric Sandeen <sandeen@redhat.com> 3.1.8-3
|
||||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
|
- Bump revision for test infrastructure (#1681970)
|
||||||
|
|
||||||
* Wed May 17 2023 Pavel Reichl <preichl@redhat.com> - 3.1.12-1
|
|
||||||
- New upstream release (#2154255)
|
|
||||||
|
|
||||||
* Sat Jan 21 2023 Fedora Release Engineering <releng@fedoraproject.org> - 3.1.11-2
|
|
||||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
|
|
||||||
|
|
||||||
* Fri Aug 26 2022 Eric Sandeen <sandeen@redhat.com> - 3.1.11-1
|
|
||||||
- New upstream release
|
|
||||||
- Fix FTBFS with newer xfsprogs (#2113765)
|
|
||||||
|
|
||||||
* Sat Jul 23 2022 Fedora Release Engineering <releng@fedoraproject.org> - 3.1.10-2
|
|
||||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
|
|
||||||
|
|
||||||
* Fri Feb 11 2022 Eric Sandeen <sandeen@redhat.com> - 3.1.10-1
|
|
||||||
- New upstream release
|
|
||||||
|
|
||||||
* Sat Jan 22 2022 Fedora Release Engineering <releng@fedoraproject.org> - 3.1.9-6
|
|
||||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
|
|
||||||
|
|
||||||
* Fri Jul 23 2021 Fedora Release Engineering <releng@fedoraproject.org> - 3.1.9-5
|
|
||||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
|
|
||||||
|
|
||||||
* Thu Jan 28 2021 Fedora Release Engineering <releng@fedoraproject.org> - 3.1.9-4
|
|
||||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
|
|
||||||
|
|
||||||
* Sat Aug 01 2020 Fedora Release Engineering <releng@fedoraproject.org> - 3.1.9-3
|
|
||||||
- Second attempt - Rebuilt for
|
|
||||||
https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
|
|
||||||
|
|
||||||
* Wed Jul 29 2020 Fedora Release Engineering <releng@fedoraproject.org> - 3.1.9-2
|
|
||||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
|
|
||||||
|
|
||||||
* Fri Jan 31 2020 Eric Sandeen <sandeen@redhat.com> - 3.1.9-1
|
|
||||||
- New upstream release
|
|
||||||
|
|
||||||
* Fri Jan 31 2020 Fedora Release Engineering <releng@fedoraproject.org> - 3.1.8-7
|
|
||||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
|
|
||||||
|
|
||||||
* Sat Jul 27 2019 Fedora Release Engineering <releng@fedoraproject.org> - 3.1.8-6
|
|
||||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
|
|
||||||
|
|
||||||
* Sun Feb 03 2019 Fedora Release Engineering <releng@fedoraproject.org> - 3.1.8-5
|
|
||||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
|
|
||||||
|
|
||||||
* Sat Jul 14 2018 Fedora Release Engineering <releng@fedoraproject.org> - 3.1.8-4
|
|
||||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
|
|
||||||
|
|
||||||
* Mon Feb 26 2018 Eric Sandeen <sandeen@redhat.com> - 3.1.8-3
|
|
||||||
- BuildRequires: gcc
|
|
||||||
|
|
||||||
* Fri Feb 09 2018 Fedora Release Engineering <releng@fedoraproject.org> - 3.1.8-2
|
* Fri Feb 09 2018 Fedora Release Engineering <releng@fedoraproject.org> - 3.1.8-2
|
||||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
|
||||||
|
|
||||||
* Thu Sep 21 2017 Eric Sandeen <sandeen@redhat.com> - 3.1.8-1
|
* Thu Sep 21 2017 Eric Sandeen <sandeen@redhat.com> 3.1.8-1
|
||||||
- New upstream release
|
- New upstream release
|
||||||
|
|
||||||
* Thu Aug 03 2017 Fedora Release Engineering <releng@fedoraproject.org> - 3.1.6-6
|
* Thu Aug 03 2017 Fedora Release Engineering <releng@fedoraproject.org> - 3.1.6-6
|
||||||
@ -141,7 +113,7 @@ mkdir -p $RPM_BUILD_ROOT/%{_sharedstatedir}/xfsdump/inventory
|
|||||||
* Thu Jul 27 2017 Fedora Release Engineering <releng@fedoraproject.org> - 3.1.6-5
|
* Thu Jul 27 2017 Fedora Release Engineering <releng@fedoraproject.org> - 3.1.6-5
|
||||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild
|
||||||
|
|
||||||
* Thu Jun 08 2017 Eric Sandeen <sandeen@redhat.com> - 3.1.6-4
|
* Thu Jun 08 2017 Eric Sandeen <sandeen@redhat.com> 3.1.6-4
|
||||||
- Build with largefile support on 32-bit platforms
|
- Build with largefile support on 32-bit platforms
|
||||||
|
|
||||||
* Sat Feb 11 2017 Fedora Release Engineering <releng@fedoraproject.org> - 3.1.6-3
|
* Sat Feb 11 2017 Fedora Release Engineering <releng@fedoraproject.org> - 3.1.6-3
|
||||||
@ -150,7 +122,7 @@ mkdir -p $RPM_BUILD_ROOT/%{_sharedstatedir}/xfsdump/inventory
|
|||||||
* Fri Feb 05 2016 Fedora Release Engineering <releng@fedoraproject.org> - 3.1.6-2
|
* Fri Feb 05 2016 Fedora Release Engineering <releng@fedoraproject.org> - 3.1.6-2
|
||||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild
|
||||||
|
|
||||||
* Tue Nov 10 2015 Eric Sandeen <sandeen@redhat.com> - 3.1.6-1
|
* Tue Nov 10 2015 Eric Sandeen <sandeen@redhat.com> 3.1.6-1
|
||||||
- New upstream release
|
- New upstream release
|
||||||
|
|
||||||
* Fri Jun 19 2015 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 3.1.4-3
|
* Fri Jun 19 2015 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 3.1.4-3
|
||||||
@ -159,55 +131,55 @@ mkdir -p $RPM_BUILD_ROOT/%{_sharedstatedir}/xfsdump/inventory
|
|||||||
* Mon Aug 18 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 3.1.4-2
|
* Mon Aug 18 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 3.1.4-2
|
||||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild
|
||||||
|
|
||||||
* Thu Jul 17 2014 Eric Sandeen <sandeen@redhat.com> - 3.1.4-1
|
* Thu Jul 17 2014 Eric Sandeen <sandeen@redhat.com> 3.1.4-1
|
||||||
- New upstream release
|
- New upstream release
|
||||||
|
|
||||||
* Mon Jun 16 2014 Eric Sandeen <sandeen@redhat.com> - 3.1.3-5
|
* Mon Jun 16 2014 Eric Sandeen <sandeen@redhat.com> 3.1.3-5
|
||||||
- Fix aarch64 build (#926800)
|
- Fix aarch64 build (#926800)
|
||||||
|
|
||||||
* Sun Jun 08 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 3.1.3-4
|
* Sun Jun 08 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 3.1.3-4
|
||||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild
|
||||||
|
|
||||||
* Mon Jan 20 2014 Eric Sandeen <sandeen@redhat.com> - 3.1.3-3
|
* Mon Jan 20 2014 Eric Sandeen <sandeen@redhat.com> 3.1.3-3
|
||||||
- Add /var/lib/xfsdump/inventory to file list (was created runtime)
|
- Add /var/lib/xfsdump/inventory to file list (was created runtime)
|
||||||
|
|
||||||
* Sun Aug 04 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 3.1.3-2
|
* Sun Aug 04 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 3.1.3-2
|
||||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild
|
||||||
|
|
||||||
* Wed May 08 2013 Eric Sandeen <sandeen@redhat.com> - 3.1.3-1
|
* Wed May 08 2013 Eric Sandeen <sandeen@redhat.com> 3.1.3-1
|
||||||
- New upstream release
|
- New upstream release
|
||||||
|
|
||||||
* Fri Feb 15 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 3.1.2-2
|
* Fri Feb 15 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 3.1.2-2
|
||||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild
|
||||||
|
|
||||||
* Thu Dec 13 2012 Eric Sandeen <sandeen@redhat.com> - 3.1.2-1
|
* Thu Dec 13 2012 Eric Sandeen <sandeen@redhat.com> 3.1.2-1
|
||||||
- New upstream release, with non-broken tarball
|
- New upstream release, with non-broken tarball
|
||||||
|
|
||||||
* Thu Dec 13 2012 Eric Sandeen <sandeen@redhat.com> - 3.1.1-1
|
* Thu Dec 13 2012 Eric Sandeen <sandeen@redhat.com> 3.1.1-1
|
||||||
- New upstream release
|
- New upstream release
|
||||||
|
|
||||||
* Sun Jul 22 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 3.1.0-3
|
* Sun Jul 22 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 3.1.0-3
|
||||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild
|
||||||
|
|
||||||
* Wed Mar 28 2012 Eric Sandeen <sandeen@redhat.com> - 3.1.0-2
|
* Wed Mar 28 2012 Eric Sandeen <sandeen@redhat.com> 3.1.0-2
|
||||||
- Move files out of /sbin to /usr/sbin
|
- Move files out of /sbin to /usr/sbin
|
||||||
|
|
||||||
* Fri Mar 23 2012 Eric Sandeen <sandeen@redhat.com> - 3.1.0-1
|
* Fri Mar 23 2012 Eric Sandeen <sandeen@redhat.com> 3.1.0-1
|
||||||
- New upstream release
|
- New upstream release
|
||||||
|
|
||||||
* Sat Jan 14 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 3.0.6-2
|
* Sat Jan 14 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 3.0.6-2
|
||||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild
|
||||||
|
|
||||||
* Mon Oct 17 2011 Eric Sandeen <sandeen@redhat.com> - 3.0.6-1
|
* Mon Oct 17 2011 Eric Sandeen <sandeen@redhat.com> 3.0.6-1
|
||||||
- New upstream release
|
- New upstream release
|
||||||
|
|
||||||
* Thu Mar 31 2011 Eric Sandeen <sandeen@redhat.com> - 3.0.5-1
|
* Thu Mar 31 2011 Eric Sandeen <sandeen@redhat.com> 3.0.5-1
|
||||||
- New upstream release
|
- New upstream release
|
||||||
|
|
||||||
* Mon Feb 07 2011 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 3.0.4-2
|
* Mon Feb 07 2011 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 3.0.4-2
|
||||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild
|
||||||
|
|
||||||
* Wed Jan 13 2010 Eric Sandeen <sandeen@redhat.com> - 3.0.4-1
|
* Wed Jan 13 2010 Eric Sandeen <sandeen@redhat.com> 3.0.4-1
|
||||||
- New upstream release
|
- New upstream release
|
||||||
|
|
||||||
* Mon Nov 30 2009 Dennis Gregorovic <dgregor@redhat.com> - 3.0.1-3.1
|
* Mon Nov 30 2009 Dennis Gregorovic <dgregor@redhat.com> - 3.0.1-3.1
|
||||||
@ -216,19 +188,19 @@ mkdir -p $RPM_BUILD_ROOT/%{_sharedstatedir}/xfsdump/inventory
|
|||||||
* Mon Jul 27 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 3.0.1-3
|
* Mon Jul 27 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 3.0.1-3
|
||||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild
|
||||||
|
|
||||||
* Tue Jun 30 2009 Eric Sandeen <sandeen@redhat.com> - 3.0.1-2
|
* Tue Jun 30 2009 Eric Sandeen <sandeen@redhat.com> 3.0.1-2
|
||||||
- Fix up build-requires after e2fsprogs splitup
|
- Fix up build-requires after e2fsprogs splitup
|
||||||
|
|
||||||
* Tue May 05 2009 Eric Sandeen <sandeen@redhat.com> - 3.0.1-1
|
* Tue May 05 2009 Eric Sandeen <sandeen@redhat.com> 3.0.1-1
|
||||||
- New upstream release
|
- New upstream release
|
||||||
|
|
||||||
* Thu Feb 26 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 3.0.0-2
|
* Thu Feb 26 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 3.0.0-2
|
||||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild
|
||||||
|
|
||||||
* Wed Feb 04 2009 Eric Sandeen <sandeen@redhat.com> - 3.0.0-1
|
* Wed Feb 04 2009 Eric Sandeen <sandeen@redhat.com> 3.0.0-1
|
||||||
- New upstream release
|
- New upstream release
|
||||||
|
|
||||||
* Wed Nov 12 2008 Eric Sandeen <sandeen@redhat.com> - 2.2.48-2
|
* Wed Nov 12 2008 Eric Sandeen <sandeen@redhat.com> 2.2.48-2
|
||||||
- Enable parallel builds
|
- Enable parallel builds
|
||||||
|
|
||||||
* Sun Feb 10 2008 Eric Sandeen <sandeen@redhat.com> - 2.2.48-1
|
* Sun Feb 10 2008 Eric Sandeen <sandeen@redhat.com> - 2.2.48-1
|
@ -1,6 +0,0 @@
|
|||||||
--- !Policy
|
|
||||||
product_versions:
|
|
||||||
- rhel-10
|
|
||||||
decision_context: osci_compose_gate
|
|
||||||
rules:
|
|
||||||
- !PassingTestCaseRule {test_case_name: osci.brew-build.tier0.functional}
|
|
@ -1,13 +0,0 @@
|
|||||||
summary: xfsdump gating test
|
|
||||||
discover:
|
|
||||||
how: fmf
|
|
||||||
url: https://gitlab.cee.redhat.com/kernel-qe/kernel.git
|
|
||||||
test: [
|
|
||||||
"filesystems/xfs/fstests-slim",
|
|
||||||
]
|
|
||||||
environment:
|
|
||||||
FSTYP: xfs
|
|
||||||
TEST_GROUP: xfsdump
|
|
||||||
AVC_ERROR: +no_avc_check
|
|
||||||
execute:
|
|
||||||
how: tmt
|
|
3
sources
3
sources
@ -1,3 +0,0 @@
|
|||||||
SHA512 (xfsdump-3.1.12.tar.sign) = aff1648d852da284d814883ef1ce84afd0c423a57b52cf398375dea1db0a6335736f3a9e0ce389b2d96308fece54d1eb1b30319e54b1e1b1dc6b9b3338d4c909
|
|
||||||
SHA512 (xfsdump-3.1.12.tar.xz) = 803a3b639aef35ec882f40faeaabf381973ba2636ce0c9d06568361f5398c3c6842ffe184fc01441bf51bb1ed1b9e40b012715c09c8cc942484cc031a8eb1757
|
|
||||||
SHA512 (13F703E6C11CF6F0.asc) = 4165bde21233c5a3636dd0038273e84703c2a83106daebb7dc9c280b3fe1c71eb3cbb55782e48e08978194e1f9533b43c7f5346bec66f58a6431f3551dd1ab8a
|
|
Loading…
Reference in New Issue
Block a user