Re: [PATCH 06/24] metadump: Dump external log device contents

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

 



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@xxxxxxxxxx>
> ---
>  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
> 



[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