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 <djwong@kernel.org> Reviewed-by: Carlos Maiolino <cmaiolino@redhat.com> Tested-by: Carlos Maiolino <cmaiolino@redhat.com> Signed-off-by: Carlos Maiolino <cem@kernel.org>
diff --git a/doc/xfsdump.html b/doc/xfsdump.html index 958bc80..db59cda 100644 --- a/doc/xfsdump.html +++ b/doc/xfsdump.html
@@ -1090,7 +1090,6 @@ 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 </pre> <p> 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 62face8..bdf47d1 100644 --- a/po/de.po +++ b/po/de.po
@@ -3972,11 +3972,6 @@ 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 3cba8d6..ba25420 100644 --- a/po/pl.po +++ b/po/pl.po
@@ -3455,11 +3455,6 @@ 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 97f8213..b19bb90 100644 --- a/restore/content.c +++ b/restore/content.c
@@ -477,9 +477,6 @@ /* 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 @@ 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 @@ 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 @@ newerpr = BOOL_FALSE; changepr = BOOL_FALSE; ownerpr = BOOL_FALSE; - restoredmpr = BOOL_FALSE; restoreextattrpr = BOOL_TRUE; sesscpltpr = BOOL_FALSE; stcnt = 0; @@ -1162,8 +1156,11 @@ 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 @@ } 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 @@ persp->a.newerpr = newerpr; persp->a.newertime = newertime; } - persp->a.restoredmpr = restoredmpr; if (!persp->a.dstdirisxfspr) { restoreextattrpr = BOOL_FALSE; } @@ -2365,7 +2355,6 @@ scrhdrp->cih_inomap_nondircnt, tranp->t_vmsz, fullpr, - persp->a.restoredmpr, persp->a.dstdirisxfspr, grhdrp->gh_version, tranp->t_truncategenpr); @@ -7546,12 +7535,6 @@ } } - if (persp->a.dstdirisxfspr && persp->a.restoredmpr) { - HsmBeginRestoreFile(bstatp, - *fdp, - &strctxp->sc_hsmflags); - } - return BOOL_TRUE; } @@ -7723,26 +7706,6 @@ 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 @@ 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 @@ } assert(nread == (int)(recsz - EXTATTRHDR_SZ)); - if (!persp->a.restoreextattrpr && !persp->a.restoredmpr) { + if (!persp->a.restoreextattrpr) { continue; } @@ -8788,19 +8740,6 @@ } } 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 */ @@ -9702,32 +9641,6 @@ } 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) { struct stat s;
diff --git a/restore/tree.c b/restore/tree.c index 0670318..5429b74 100644 --- a/restore/tree.c +++ b/restore/tree.c
@@ -108,9 +108,6 @@ 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 @@ 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 @@ */ 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 @@ } } - 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 4f9ffe8..bf66e3d 100644 --- a/restore/tree.h +++ b/restore/tree.h
@@ -31,7 +31,6 @@ size64_t nondircnt, size64_t vmsz, bool_t fullpr, - bool_t restoredmpr, bool_t dstdirisxfspr, uint32_t dumpformat, bool_t truncategenpr);