Re: [PATCH] xfs_restore: remove DMAPI support

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu, Feb 03, 2022 at 09:45:40AM -0800, Darrick J. Wong wrote:
> From: Darrick J. Wong <djwong@xxxxxxxxxx>
> 
> The last of the DMAPI stubs were removed from Linux 5.17, so drop this
> functionality altogether.
> 
> Signed-off-by: Darrick J. Wong <djwong@xxxxxxxxxx>

Patch looks good, and fixes the broken build:

Reviewed-by: Carlos Maiolino <cmaiolino@xxxxxxxxxx>
Tested-by: Carlos Maiolino <cmaiolino@xxxxxxxxxx>

> ---
>  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 d4d157f..2c9324b 100644
> --- a/doc/xfsdump.html
> +++ b/doc/xfsdump.html
> @@ -1092,7 +1092,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
>  </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 @@ 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 3cba8d6..ba25420 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 6b22965..e9b0a07 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);
> @@ -7549,12 +7538,6 @@ restore_reg(drive_t *drivep,
>  		}
>  	}
>  
> -	if (persp->a.dstdirisxfspr && persp->a.restoredmpr) {
> -		HsmBeginRestoreFile(bstatp,
> -				     *fdp,
> -				     &strctxp->sc_hsmflags);
> -	}
> -
>  	return BOOL_TRUE;
>  }
>  
> @@ -7726,26 +7709,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.
>  	 */
> @@ -8064,17 +8027,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;
> @@ -8777,7 +8729,7 @@ restore_extattr(drive_t *drivep,
>  		}
>  		assert(nread == (int)(recsz - EXTATTRHDR_SZ));
>  
> -		if (!persp->a.restoreextattrpr && !persp->a.restoredmpr) {
> +		if (!persp->a.restoreextattrpr) {
>  			continue;
>  		}
>  
> @@ -8796,19 +8748,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 */
> @@ -9709,32 +9648,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 0670318..5429b74 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 4f9ffe8..bf66e3d 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);
> 

-- 
Carlos




[Index of Archives]     [XFS Filesystem Development (older mail)]     [Linux Filesystem Development]     [Linux Audio Users]     [Yosemite Trails]     [Linux Kernel]     [Linux RAID]     [Linux SCSI]


  Powered by Linux