diff --git a/xfsdump-3.1.10.tar.sign b/xfsdump-3.1.10.tar.sign new file mode 100644 index 0000000..245f3c3 --- /dev/null +++ b/xfsdump-3.1.10.tar.sign @@ -0,0 +1,17 @@ +-----BEGIN PGP SIGNATURE----- +Version: GnuPG v2.0.22 (GNU/Linux) + +iQIcBAABAgAGBQJiBsdSAAoJECCuFpLhPd7grYwP/j2l1c4T54xcH5Ts2G9DnHOh +GwCSgRfn79+9rKzjy+L86x1noxAbjwyXLrrWWIbEX02zgYOWY3nVdhUL338pcz6w +mQWer3EcVV5DQkeSPtgoYtXqr/5VANArVpBPZJWEflEpOYnptF8lQfIQZy3t2vRh +YgkIc77ksqUoy9YKXdqehIHs5w96F+iQXR5voaTXh47DtR0sD1KTMeII30NF4bjE +V33/e0WPmJ3xKYNQZypsiS12Ia5SOe5q4GlJSjfK3wwMkfaO7Yiy3Jm/uYxoe4bK +fUVNipDHJRtVa6iAsenDvII5wLIKYske6k+Gi68QgaSpbJdCeCl8Q3/ISxm/noY9 +pHz35fQXfLfcOuSP3IiUjEuHtqAjO1NPEtpjbpcge523OnnCDC+OruxJbThcIeW/ +2cgRPdSaky3MFK4E8zHdhbpIN8weQj0wgGVe+heFSiD83cN6VhzPKUy6IBHwAUPs +QlwlF+WSN/7tmpud5ZUlHg7Dn7g4K2ohmFpklnShmmGjjc5vHYwmNHYNsHvlygAj +rD7ShtFJayF8IeDhfcdrzOkXAgUm0+FGGsw/9NG+hFM3bEJY8OijojOL2fLwk6+p +OsrbOEi8K09syVlF8kvgXWatjv8Eqetd2MLJTV47clMMcniFioeUyYPe9gsDRjXO +IwHnjMKUos5+uUcVxBWG +=tdeD +-----END PGP SIGNATURE----- diff --git a/xfsdump-3.1.10.tar.xz b/xfsdump-3.1.10.tar.xz new file mode 100644 index 0000000..200adbd --- /dev/null +++ b/xfsdump-3.1.10.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9aab7a53aa05cd46edc97269ebf1456aab2b60ab8c1fffaaf8aa492f0b5f6517 +size 609424 diff --git a/xfsdump-3.1.9.tar.sign b/xfsdump-3.1.9.tar.sign deleted file mode 100644 index 65e27de..0000000 --- a/xfsdump-3.1.9.tar.sign +++ /dev/null @@ -1,17 +0,0 @@ ------BEGIN PGP SIGNATURE----- -Version: GnuPG v2.0.22 (GNU/Linux) - -iQIcBAABAgAGBQJeNGXlAAoJECCuFpLhPd7gcNMP/imzHm0IYqlvUrBkZL1CkIkS -tMvEHT+sI66KX2jp30FP1Ds9Hex0my7MUB/mPEUVAsqtILFN/zEQ730Msj9SWQbZ -wfyE5Mjc40vu+ceR2FWadtFkHnzKtgz5WpKDof6y61W7KlyLTsLeqh8klp/9MTEH -je66Ke2gwYe/v4SdNqZZjLnVPxQdMXJIWVZZRxqOI22arwEweRMLk1YdOUn7zofR -io34vlmJu5XsWtw/593pYZCqmFNO7ovSrCpSF3sUxerM447Q6mplVXc62VdFcIrS -3K/nZuSG5yYQhMlrJH0sySgPilpw4ARPG5s6BT4miy1wuZGwEeHIvKisXtHPpF+4 -APEptFqTnBxm4yHu0Dr/ZAtnSF+fjpO+NoYklNi+IWP7fW9jJhGgaq4MkV3h2KYk -XOXnt1zgSZoau+spow4zaoRglebTI03KEhr04wW0SenULNcHxGoeb763ebslUC3M -oN44rGe1juoFoQ7k1FF4zsfGhjhecQJu/bA6yoMm4wWLnJa/1RzEPPufgTsa5SJJ -Cm7sLgK0azbImj3PGFS10EUyXM7QI7C3V2Nk6nJvJmNhBKSRKbLunOUcCMzB0Hb6 -GAJp4CO5/cUXueNOyELbgSYoviCV0SrwUWjq9dCHrd6+R6Y/iMzyarQ5ajlK+pk5 -jgmeUDgJU/HEXf7RNyAe -=Xpta ------END PGP SIGNATURE----- diff --git a/xfsdump-3.1.9.tar.xz b/xfsdump-3.1.9.tar.xz deleted file mode 100644 index 3eaffaa..0000000 --- a/xfsdump-3.1.9.tar.xz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:55aeede6232ddce6c9e79e2af88d6f808534df1552eb2bfaf7fb85b92add6dd1 -size 600348 diff --git a/xfsdump-xfs_restore-remove-DMAPI-support.patch b/xfsdump-xfs_restore-remove-DMAPI-support.patch new file mode 100644 index 0000000..5c7bdd2 --- /dev/null +++ b/xfsdump-xfs_restore-remove-DMAPI-support.patch @@ -0,0 +1,345 @@ +From 853ed6bdedc6dcfc1c1e178aff8fc09cbdd685af Mon Sep 17 00:00:00 2001 +From: "Darrick J. Wong" +Date: Thu, 3 Feb 2022 09:45:40 -0800 +Subject: [PATCH] xfs_restore: remove DMAPI support + +The last of the DMAPI stubs were removed from Linux 5.17, so drop this +functionality altogether. + +Signed-off-by: Darrick J. Wong +Reviewed-by: Carlos Maiolino +Tested-by: Carlos Maiolino +--- + doc/xfsdump.html | 1 - + po/de.po | 5 --- + po/pl.po | 5 --- + restore/content.c | 99 +++-------------------------------------------- + restore/tree.c | 33 ---------------- + restore/tree.h | 1 - + 6 files changed, 6 insertions(+), 138 deletions(-) + +diff --git a/doc/xfsdump.html b/doc/xfsdump.html +index 958bc8055bef..db59cdac2110 100644 +--- a/doc/xfsdump.html ++++ b/doc/xfsdump.html +@@ -1090,7 +1090,6 @@ the size of the hash table. + bool_t p_ownerpr - whether to restore directory owner/group attributes + bool_t p_fullpr - whether restoring a full level 0 non-resumed dump + bool_t p_ignoreorphpr - set if positive subtree or interactive +- bool_t p_restoredmpr - restore DMI event settings + +

+ The hash table maps the inode number to the tree node. It is a +diff --git a/po/de.po b/po/de.po +index 62face890ad3..bdf47d10a246 100644 +--- a/po/de.po ++++ b/po/de.po +@@ -3972,11 +3972,6 @@ msgstr "" + msgid "no additional media objects needed\n" + msgstr "keine zusätzlichen Mediendateien benötigt\n" + +-#: .././restore/content.c:9547 +-#, c-format +-msgid "fssetdm_by_handle of %s failed %s\n" +-msgstr "fssetdm_by_handle von %s fehlgeschlagen %s\n" +- + #: .././restore/content.c:9566 + #, c-format + msgid "%s quota information written to '%s'\n" +diff --git a/po/pl.po b/po/pl.po +index 3cba8d6be4ba..ba2542043503 100644 +--- a/po/pl.po ++++ b/po/pl.po +@@ -3455,11 +3455,6 @@ msgstr "nie są potrzebne dodatkowe obiekty nośnika\n" + msgid "path_to_handle of %s failed:%s\n" + msgstr "path_to_handle na %s nie powiodło się: %s\n" + +-#: .././restore/content.c:9723 +-#, c-format +-msgid "fssetdm_by_handle of %s failed %s\n" +-msgstr "fssetdm_by_handle na %s nie powiodło się: %s\n" +- + #: .././restore/content.c:9742 + #, c-format + msgid "%s quota information written to '%s'\n" +diff --git a/restore/content.c b/restore/content.c +index 97f821322960..b19bb90edeb3 100644 +--- a/restore/content.c ++++ b/restore/content.c +@@ -477,9 +477,6 @@ struct pers { + /* how many pages following the header page are reserved + * for the subtree descriptors + */ +- bool_t restoredmpr; +- /* restore DMAPI event settings +- */ + bool_t restoreextattrpr; + /* restore extended attributes + */ +@@ -858,7 +855,6 @@ static void partial_reg(ix_t d_index, xfs_ino_t ino, off64_t fsize, + off64_t offset, off64_t sz); + static bool_t partial_check (xfs_ino_t ino, off64_t fsize); + static bool_t partial_check2 (partial_rest_t *isptr, off64_t fsize); +-static int do_fssetdm_by_handle(char *path, fsdmidata_t *fdmp); + static int quotafilecheck(char *type, char *dstdir, char *quotafile); + + /* definition of locally defined global variables ****************************/ +@@ -894,7 +890,6 @@ content_init(int argc, char *argv[], size64_t vmsz) + bool_t changepr;/* cmd line overwrite inhibit specification */ + bool_t interpr; /* cmd line interactive mode requested */ + bool_t ownerpr; /* cmd line chown/chmod requested */ +- bool_t restoredmpr; /* cmd line restore dm api attrs specification */ + bool_t restoreextattrpr; /* cmd line restore extended attr spec */ + bool_t sesscpltpr; /* force completion of prev interrupted session */ + ix_t stcnt; /* cmd line number of subtrees requested */ +@@ -956,7 +951,6 @@ content_init(int argc, char *argv[], size64_t vmsz) + newerpr = BOOL_FALSE; + changepr = BOOL_FALSE; + ownerpr = BOOL_FALSE; +- restoredmpr = BOOL_FALSE; + restoreextattrpr = BOOL_TRUE; + sesscpltpr = BOOL_FALSE; + stcnt = 0; +@@ -1162,8 +1156,11 @@ content_init(int argc, char *argv[], size64_t vmsz) + tranp->t_noinvupdatepr = BOOL_TRUE; + break; + case GETOPT_SETDM: +- restoredmpr = BOOL_TRUE; +- break; ++ mlog(MLOG_NORMAL | MLOG_ERROR, _( ++ "-%c option no longer supported\n"), ++ GETOPT_SETDM); ++ usage(); ++ return BOOL_FALSE; + case GETOPT_ALERTPROG: + if (!optarg || optarg[0] == '-') { + mlog(MLOG_NORMAL | MLOG_ERROR, _( +@@ -1574,12 +1571,6 @@ content_init(int argc, char *argv[], size64_t vmsz) + } + + if (persp->a.valpr) { +- if (restoredmpr && persp->a.restoredmpr != restoredmpr) { +- mlog(MLOG_NORMAL | MLOG_ERROR, _( +- "-%c cannot reset flag from previous restore\n"), +- GETOPT_SETDM); +- return BOOL_FALSE; +- } + if (!restoreextattrpr && + persp->a.restoreextattrpr != restoreextattrpr) { + mlog(MLOG_NORMAL | MLOG_ERROR, _( +@@ -1734,7 +1725,6 @@ content_init(int argc, char *argv[], size64_t vmsz) + persp->a.newerpr = newerpr; + persp->a.newertime = newertime; + } +- persp->a.restoredmpr = restoredmpr; + if (!persp->a.dstdirisxfspr) { + restoreextattrpr = BOOL_FALSE; + } +@@ -2365,7 +2355,6 @@ content_stream_restore(ix_t thrdix) + scrhdrp->cih_inomap_nondircnt, + tranp->t_vmsz, + fullpr, +- persp->a.restoredmpr, + persp->a.dstdirisxfspr, + grhdrp->gh_version, + tranp->t_truncategenpr); +@@ -7546,12 +7535,6 @@ restore_reg(drive_t *drivep, + } + } + +- if (persp->a.dstdirisxfspr && persp->a.restoredmpr) { +- HsmBeginRestoreFile(bstatp, +- *fdp, +- &strctxp->sc_hsmflags); +- } +- + return BOOL_TRUE; + } + +@@ -7723,26 +7706,6 @@ restore_complete_reg(stream_context_t *strcxtp) + strerror(errno)); + } + +- if (persp->a.dstdirisxfspr && persp->a.restoredmpr) { +- fsdmidata_t fssetdm; +- +- /* Set the DMAPI Fields. */ +- fssetdm.fsd_dmevmask = bstatp->bs_dmevmask; +- fssetdm.fsd_padding = 0; +- fssetdm.fsd_dmstate = bstatp->bs_dmstate; +- +- rval = ioctl(fd, XFS_IOC_FSSETDM, (void *)&fssetdm); +- if (rval) { +- mlog(MLOG_NORMAL | MLOG_WARNING, +- _("attempt to set DMI attributes of %s " +- "failed: %s\n"), +- path, +- strerror(errno)); +- } +- +- HsmEndRestoreFile(path, fd, &strcxtp->sc_hsmflags); +- } +- + /* set any extended inode flags that couldn't be set + * prior to restoring the data. + */ +@@ -8056,17 +8019,6 @@ restore_symlink(drive_t *drivep, + strerror(errno)); + } + } +- +- if (persp->a.restoredmpr) { +- fsdmidata_t fssetdm; +- +- /* Restore DMAPI fields. */ +- +- fssetdm.fsd_dmevmask = bstatp->bs_dmevmask; +- fssetdm.fsd_padding = 0; +- fssetdm.fsd_dmstate = bstatp->bs_dmstate; +- rval = do_fssetdm_by_handle(path, &fssetdm); +- } + } + + return BOOL_TRUE; +@@ -8769,7 +8721,7 @@ restore_extattr(drive_t *drivep, + } + assert(nread == (int)(recsz - EXTATTRHDR_SZ)); + +- if (!persp->a.restoreextattrpr && !persp->a.restoredmpr) { ++ if (!persp->a.restoreextattrpr) { + continue; + } + +@@ -8788,19 +8740,6 @@ restore_extattr(drive_t *drivep, + } + } else if (isfilerestored && path[0] != '\0') { + setextattr(path, ahdrp); +- +- if (persp->a.dstdirisxfspr && persp->a.restoredmpr) { +- int flag = 0; +- char *attrname = (char *)&ahdrp[1]; +- if (ahdrp->ah_flags & EXTATTRHDR_FLAGS_ROOT) +- flag = ATTR_ROOT; +- else if (ahdrp->ah_flags & EXTATTRHDR_FLAGS_SECURE) +- flag = ATTR_SECURE; +- +- HsmRestoreAttribute(flag, +- attrname, +- &strctxp->sc_hsmflags); +- } + } + } + /* NOTREACHED */ +@@ -9701,32 +9640,6 @@ display_needed_objects(purp_t purp, + } + } + +-static int +-do_fssetdm_by_handle( +- char *path, +- fsdmidata_t *fdmp) +-{ +- void *hanp; +- size_t hlen=0; +- int rc; +- +- if (path_to_handle(path, &hanp, &hlen)) { +- mlog(MLOG_NORMAL | MLOG_WARNING, _( +- "path_to_handle of %s failed:%s\n"), +- path, strerror(errno)); +- return -1; +- } +- +- rc = fssetdm_by_handle(hanp, hlen, fdmp); +- free_handle(hanp, hlen); +- if (rc) { +- mlog(MLOG_NORMAL | MLOG_WARNING, _( +- "fssetdm_by_handle of %s failed %s\n"), +- path, strerror(errno)); +- } +- return rc; +-} +- + static int + quotafilecheck(char *type, char *dstdir, char *quotafile) + { +diff --git a/restore/tree.c b/restore/tree.c +index 06703187a5fd..5429b744f1de 100644 +--- a/restore/tree.c ++++ b/restore/tree.c +@@ -108,9 +108,6 @@ struct treePersStorage { + bool_t p_ignoreorphpr; + /* set if positive subtree or interactive + */ +- bool_t p_restoredmpr; +- /* restore DMI event settings +- */ + bool_t p_truncategenpr; + /* truncate inode generation number (for compatibility + * with xfsdump format 2 and earlier) +@@ -348,7 +345,6 @@ tree_init(char *hkdir, + size64_t nondircnt, + size64_t vmsz, + bool_t fullpr, +- bool_t restoredmpr, + bool_t dstdirisxfspr, + uint32_t dumpformat, + bool_t truncategenpr) +@@ -508,10 +504,6 @@ tree_init(char *hkdir, + */ + persp->p_fullpr = fullpr; + +- /* record if DMI event settings should be restored +- */ +- persp->p_restoredmpr = restoredmpr; +- + /* record if truncated generation numbers are required + */ + if (dumpformat < GLOBAL_HDR_VERSION_3) { +@@ -2550,31 +2542,6 @@ setdirattr(dah_t dah, char *path) + } + } + +- if (tranp->t_dstdirisxfspr && persp->p_restoredmpr) { +- fsdmidata_t fssetdm; +- +- fssetdm.fsd_dmevmask = dirattr_get_dmevmask(dah); +- fssetdm.fsd_padding = 0; /* not used */ +- fssetdm.fsd_dmstate = (uint16_t)dirattr_get_dmstate(dah); +- +- /* restore DMAPI event settings etc. +- */ +- rval = ioctl(fd, +- XFS_IOC_FSSETDM, +- (void *)&fssetdm); +- if (rval) { +- mlog(errno == EINVAL +- ? +- (MLOG_NITTY + 1) | MLOG_TREE +- : +- MLOG_NITTY | MLOG_TREE, +- "set DMI attributes" +- " of %s failed: %s\n", +- path, +- strerror(errno)); +- } +- } +- + utimbuf.actime = dirattr_get_atime(dah); + utimbuf.modtime = dirattr_get_mtime(dah); + rval = utime(path, &utimbuf); +diff --git a/restore/tree.h b/restore/tree.h +index 4f9ffe80192f..bf66e3dd5969 100644 +--- a/restore/tree.h ++++ b/restore/tree.h +@@ -31,7 +31,6 @@ extern bool_t tree_init(char *hkdir, + size64_t nondircnt, + size64_t vmsz, + bool_t fullpr, +- bool_t restoredmpr, + bool_t dstdirisxfspr, + uint32_t dumpformat, + bool_t truncategenpr); +-- +2.37.1 + diff --git a/xfsdump.changes b/xfsdump.changes index 5032112..4002a8b 100644 --- a/xfsdump.changes +++ b/xfsdump.changes @@ -1,3 +1,15 @@ +------------------------------------------------------------------- +Sun Aug 14 12:29:06 UTC 2022 - Anthony Iliopoulos + +- Update to version 3.1.10 + - Fix bind mount handling which was corrupting dumps + - Remove some dead code + - Inclusive language updates + +- Fix building with xfsprogs-5.19.0 + - xfs_restore: remove DMAPI support + - Added xfsdump-xfs_restore-remove-DMAPI-support.patch + ------------------------------------------------------------------- Thu Nov 26 13:42:57 UTC 2020 - Ludwig Nussel diff --git a/xfsdump.spec b/xfsdump.spec index 1095b65..39a41b1 100644 --- a/xfsdump.spec +++ b/xfsdump.spec @@ -1,7 +1,7 @@ # # spec file for package xfsdump # -# Copyright (c) 2020 SUSE LLC +# Copyright (c) 2022 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -17,7 +17,7 @@ Name: xfsdump -Version: 3.1.9 +Version: 3.1.10 Release: 0 Summary: Administrative Utilities for the XFS File System License: GPL-2.0-or-later @@ -28,6 +28,7 @@ Source1: https://www.kernel.org/pub/linux/utils/fs/xfs/xfsdump/xfsdump-%{ Source2: %{name}.keyring Patch0: xfsdump-docdir.diff Patch1: xfsdump-rename-READ-WRITE-macros-in-rmtlib.patch +Patch2: xfsdump-xfs_restore-remove-DMAPI-support.patch BuildRequires: autoconf BuildRequires: automake BuildRequires: e2fsprogs-devel @@ -59,6 +60,7 @@ subtrees may be restored from full or partial backups. %setup -q %patch0 %patch1 -p1 +%patch2 -p1 %build rm -f configure