Re: [PATCH V2 20/23] mdrestore: Introduce mdrestore v1 operations

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

 



On Tue, Jun 06, 2023 at 02:58:03PM +0530, Chandan Babu R wrote:
> In order to indicate the version of metadump files that they can work with,
> this commit renames read_header(), show_info() and restore() functions to
> read_header_v1(), show_info_v1() and restore_v1() respectively.
> 
> Signed-off-by: Chandan Babu R <chandan.babu@xxxxxxxxxx>

Reviewed-by: Darrick J. Wong <djwong@xxxxxxxxxx>

--D

> ---
>  mdrestore/xfs_mdrestore.c | 39 ++++++++++++++++++---------------------
>  1 file changed, 18 insertions(+), 21 deletions(-)
> 
> diff --git a/mdrestore/xfs_mdrestore.c b/mdrestore/xfs_mdrestore.c
> index 5451a58b..b34eda2c 100644
> --- a/mdrestore/xfs_mdrestore.c
> +++ b/mdrestore/xfs_mdrestore.c
> @@ -86,7 +86,7 @@ open_device(
>  }
>  
>  static void
> -read_header(
> +read_header_v1(
>  	void			*header,
>  	FILE			*md_fp)
>  {
> @@ -100,7 +100,7 @@ read_header(
>  }
>  
>  static void
> -show_info(
> +show_info_v1(
>  	void			*header,
>  	const char		*md_file)
>  {
> @@ -117,24 +117,14 @@ show_info(
>  	}
>  }
>  
> -/*
> - * restore() -- do the actual work to restore the metadump
> - *
> - * @src_f: A FILE pointer to the source metadump
> - * @dst_fd: the file descriptor for the target file
> - * @is_target_file: designates whether the target is a regular file
> - * @mbp: pointer to metadump's first xfs_metablock, read and verified by the caller
> - *
> - * src_f should be positioned just past a read the previously validated metablock
> - */
>  static void
> -restore(
> +restore_v1(
>  	void			*header,
>  	FILE			*md_fp,
>  	int			ddev_fd,
> -	int			is_target_file)
> +	bool			is_target_file)
>  {
> -	struct xfs_metablock	*metablock;	/* header + index + blocks */
> +	struct xfs_metablock	*metablock;
>  	struct xfs_metablock	*mbp;
>  	__be64			*block_index;
>  	char			*block_buffer;
> @@ -259,6 +249,12 @@ restore(
>  	free(metablock);
>  }
>  
> +static struct mdrestore_ops mdrestore_ops_v1 = {
> +	.read_header	= read_header_v1,
> +	.show_info	= show_info_v1,
> +	.restore	= restore_v1,
> +};
> +
>  static void
>  usage(void)
>  {
> @@ -310,9 +306,9 @@ main(
>  
>  	/*
>  	 * open source and test if this really is a dump. The first metadump
> -	 * block will be passed to restore() which will continue to read the
> -	 * file from this point. This avoids rewind the stream, which causes
> -	 * restore to fail when source was being read from stdin.
> +	 * block will be passed to mdrestore_ops->restore() which will continue
> +	 * to read the file from this point. This avoids rewind the stream,
> +	 * which causes restore to fail when source was being read from stdin.
>   	 */
>  	if (strcmp(argv[optind], "-") == 0) {
>  		src_f = stdin;
> @@ -330,16 +326,17 @@ main(
>  	switch (be32_to_cpu(magic)) {
>  	case XFS_MD_MAGIC_V1:
>  		header = &mb;
> +		mdrestore.mdrops = &mdrestore_ops_v1;
>  		break;
>  	default:
>  		fatal("specified file is not a metadata dump\n");
>  		break;
>  	}
>  
> -	read_header(header, src_f);
> +	mdrestore.mdrops->read_header(header, src_f);
>  
>  	if (mdrestore.show_info) {
> -		show_info(header, argv[optind]);
> +		mdrestore.mdrops->show_info(header, argv[optind]);
>  
>  		if (argc - optind == 1)
>  			exit(0);
> @@ -350,7 +347,7 @@ main(
>  	/* check and open target */
>  	dst_fd = open_device(argv[optind], &is_target_file);
>  
> -	restore(header, src_f, dst_fd, is_target_file);
> +	mdrestore.mdrops->restore(header, src_f, dst_fd, is_target_file);
>  
>  	close(dst_fd);
>  	if (src_f != stdin)
> -- 
> 2.39.1
> 



[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