Message ID | 20230606092806.1604491-21-chandan.babu@oracle.com (mailing list archive) |
---|---|
State | Superseded, archived |
Headers | show |
Series | Metadump v2 | expand |
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@oracle.com> Reviewed-by: Darrick J. Wong <djwong@kernel.org> --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 >
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)
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@oracle.com> --- mdrestore/xfs_mdrestore.c | 39 ++++++++++++++++++--------------------- 1 file changed, 18 insertions(+), 21 deletions(-)