Message ID | 20230523090050.373545-7-chandan.babu@oracle.com (mailing list archive) |
---|---|
State | Deferred, archived |
Headers | show |
Series | Metadump v2 | expand |
On Tue, May 23, 2023 at 02:30:32PM +0530, Chandan Babu R wrote: > metadump will now read and dump from external log device when the log is > placed on an external device and metadump v2 is supported by xfsprogs. > > Signed-off-by: Chandan Babu R <chandan.babu@oracle.com> > --- > db/metadump.c | 20 +++++++++++++------- > 1 file changed, 13 insertions(+), 7 deletions(-) > > diff --git a/db/metadump.c b/db/metadump.c > index e7a433c21..62a36427d 100644 > --- a/db/metadump.c > +++ b/db/metadump.c > @@ -2921,7 +2921,7 @@ copy_sb_inodes(void) > } > > static int > -copy_log(void) > +copy_log(enum typnm log_type) > { > struct xlog log; > int dirty; > @@ -2934,7 +2934,7 @@ copy_log(void) > print_progress("Copying log"); > > push_cur(); > - set_cur(&typtab[TYP_LOG], XFS_FSB_TO_DADDR(mp, mp->m_sb.sb_logstart), > + set_cur(&typtab[log_type], XFS_FSB_TO_DADDR(mp, mp->m_sb.sb_logstart), > mp->m_sb.sb_logblocks * blkbb, DB_RING_IGN, NULL); > if (iocur_top->data == NULL) { > pop_cur(); > @@ -3038,6 +3038,7 @@ metadump_f( > char **argv) > { > xfs_agnumber_t agno; > + enum typnm log_type; > int c; > int start_iocur_sp; > int outfd = -1; > @@ -3110,9 +3111,13 @@ metadump_f( > } > > /* If we'll copy the log, see if the log is dirty */ > - if (mp->m_sb.sb_logstart) { > + if (mp->m_logdev_targp == mp->m_ddev_targp || metadump.version == 2) { > + log_type = TYP_LOG; > + if (mp->m_logdev_targp != mp->m_ddev_targp) > + log_type = TYP_ELOG; > + > push_cur(); > - set_cur(&typtab[TYP_LOG], > + set_cur(&typtab[log_type], > XFS_FSB_TO_DADDR(mp, mp->m_sb.sb_logstart), > mp->m_sb.sb_logblocks * blkbb, DB_RING_IGN, NULL); > if (iocur_top->data) { /* best effort */ > @@ -3185,9 +3190,10 @@ metadump_f( > if (!exitcode) > exitcode = !copy_sb_inodes(); > > - /* copy log if it's internal */ > - if ((mp->m_sb.sb_logstart != 0) && !exitcode) > - exitcode = !copy_log(); > + /* copy log */ > + if (!exitcode && (mp->m_logdev_targp == mp->m_ddev_targp || > + metadump.version == 2)) Version 2? I don't think that's been introduced yet. ;) --D > + exitcode = !copy_log(log_type); > > /* write the remaining index */ > if (!exitcode) > -- > 2.39.1 >
On Tue, May 23, 2023 at 10:02:12 AM -0700, Darrick J. Wong wrote: > On Tue, May 23, 2023 at 02:30:32PM +0530, Chandan Babu R wrote: >> metadump will now read and dump from external log device when the log is >> placed on an external device and metadump v2 is supported by xfsprogs. >> >> Signed-off-by: Chandan Babu R <chandan.babu@oracle.com> >> --- >> db/metadump.c | 20 +++++++++++++------- >> 1 file changed, 13 insertions(+), 7 deletions(-) >> >> diff --git a/db/metadump.c b/db/metadump.c >> index e7a433c21..62a36427d 100644 >> --- a/db/metadump.c >> +++ b/db/metadump.c >> @@ -2921,7 +2921,7 @@ copy_sb_inodes(void) >> } >> >> static int >> -copy_log(void) >> +copy_log(enum typnm log_type) >> { >> struct xlog log; >> int dirty; >> @@ -2934,7 +2934,7 @@ copy_log(void) >> print_progress("Copying log"); >> >> push_cur(); >> - set_cur(&typtab[TYP_LOG], XFS_FSB_TO_DADDR(mp, mp->m_sb.sb_logstart), >> + set_cur(&typtab[log_type], XFS_FSB_TO_DADDR(mp, mp->m_sb.sb_logstart), >> mp->m_sb.sb_logblocks * blkbb, DB_RING_IGN, NULL); >> if (iocur_top->data == NULL) { >> pop_cur(); >> @@ -3038,6 +3038,7 @@ metadump_f( >> char **argv) >> { >> xfs_agnumber_t agno; >> + enum typnm log_type; >> int c; >> int start_iocur_sp; >> int outfd = -1; >> @@ -3110,9 +3111,13 @@ metadump_f( >> } >> >> /* If we'll copy the log, see if the log is dirty */ >> - if (mp->m_sb.sb_logstart) { >> + if (mp->m_logdev_targp == mp->m_ddev_targp || metadump.version == 2) { >> + log_type = TYP_LOG; >> + if (mp->m_logdev_targp != mp->m_ddev_targp) >> + log_type = TYP_ELOG; >> + >> push_cur(); >> - set_cur(&typtab[TYP_LOG], >> + set_cur(&typtab[log_type], >> XFS_FSB_TO_DADDR(mp, mp->m_sb.sb_logstart), >> mp->m_sb.sb_logblocks * blkbb, DB_RING_IGN, NULL); >> if (iocur_top->data) { /* best effort */ >> @@ -3185,9 +3190,10 @@ metadump_f( >> if (!exitcode) >> exitcode = !copy_sb_inodes(); >> >> - /* copy log if it's internal */ >> - if ((mp->m_sb.sb_logstart != 0) && !exitcode) >> - exitcode = !copy_log(); >> + /* copy log */ >> + if (!exitcode && (mp->m_logdev_targp == mp->m_ddev_targp || >> + metadump.version == 2)) > > Version 2? I don't think that's been introduced yet. ;) > I will move the aboves changes to the patch which adds the "-v" option.
diff --git a/db/metadump.c b/db/metadump.c index e7a433c21..62a36427d 100644 --- a/db/metadump.c +++ b/db/metadump.c @@ -2921,7 +2921,7 @@ copy_sb_inodes(void) } static int -copy_log(void) +copy_log(enum typnm log_type) { struct xlog log; int dirty; @@ -2934,7 +2934,7 @@ copy_log(void) print_progress("Copying log"); push_cur(); - set_cur(&typtab[TYP_LOG], XFS_FSB_TO_DADDR(mp, mp->m_sb.sb_logstart), + set_cur(&typtab[log_type], XFS_FSB_TO_DADDR(mp, mp->m_sb.sb_logstart), mp->m_sb.sb_logblocks * blkbb, DB_RING_IGN, NULL); if (iocur_top->data == NULL) { pop_cur(); @@ -3038,6 +3038,7 @@ metadump_f( char **argv) { xfs_agnumber_t agno; + enum typnm log_type; int c; int start_iocur_sp; int outfd = -1; @@ -3110,9 +3111,13 @@ metadump_f( } /* If we'll copy the log, see if the log is dirty */ - if (mp->m_sb.sb_logstart) { + if (mp->m_logdev_targp == mp->m_ddev_targp || metadump.version == 2) { + log_type = TYP_LOG; + if (mp->m_logdev_targp != mp->m_ddev_targp) + log_type = TYP_ELOG; + push_cur(); - set_cur(&typtab[TYP_LOG], + set_cur(&typtab[log_type], XFS_FSB_TO_DADDR(mp, mp->m_sb.sb_logstart), mp->m_sb.sb_logblocks * blkbb, DB_RING_IGN, NULL); if (iocur_top->data) { /* best effort */ @@ -3185,9 +3190,10 @@ metadump_f( if (!exitcode) exitcode = !copy_sb_inodes(); - /* copy log if it's internal */ - if ((mp->m_sb.sb_logstart != 0) && !exitcode) - exitcode = !copy_log(); + /* copy log */ + if (!exitcode && (mp->m_logdev_targp == mp->m_ddev_targp || + metadump.version == 2)) + exitcode = !copy_log(log_type); /* write the remaining index */ if (!exitcode)
metadump will now read and dump from external log device when the log is placed on an external device and metadump v2 is supported by xfsprogs. Signed-off-by: Chandan Babu R <chandan.babu@oracle.com> --- db/metadump.c | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-)