Re: [v2 PATCH 8/14] xfsprogs: fix issues with e0607266f23

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

 



On 8/8/13 5:28 PM, Ben Myers wrote:
> * remove unused uuid unparse in xfs_agf_verify
> * fix an unnecessary loop in clear_dinode_core

These should be 2 commits (they do 2 different things),
with properly descriptive summaries & changelogs.

For the 2nd, it's not an unnecessary loop, it's a memory
corruptor; that should be noted in the changelog.

TBH I've only reviewed the latter, I need to look at
the first.

-Eric


> Signed-off-by: Ben Myers <bpm@xxxxxxx>
> 
> ---
> [v2: address Eric's suggestions]
> 
> Eric,
> 	Seems like you are correct, we should get this in pronto.
> -Ben
> 
>  libxfs/xfs_alloc.c |    9 ++-------
>  repair/dinode.c    |   10 +++-------
>  2 files changed, 5 insertions(+), 14 deletions(-)
> 
> Index: b/libxfs/xfs_alloc.c
> ===================================================================
> --- a/libxfs/xfs_alloc.c	2013-08-08 17:23:56.860817670 -0500
> +++ b/libxfs/xfs_alloc.c	2013-08-08 17:23:57.800818754 -0500
> @@ -2173,13 +2173,8 @@ xfs_agf_verify(
>  	struct xfs_agf	*agf = XFS_BUF_TO_AGF(bp);
>  
>  	if (xfs_sb_version_hascrc(&mp->m_sb) &&
> -	    !uuid_equal(&agf->agf_uuid, &mp->m_sb.sb_uuid)) {
> -		char uu[64], uu2[64];
> -		platform_uuid_unparse(&agf->agf_uuid, uu);
> -		platform_uuid_unparse(&mp->m_sb.sb_uuid, uu2);
> -
> -			return false;
> -	}
> +	    !uuid_equal(&agf->agf_uuid, &mp->m_sb.sb_uuid))
> +		return false;
>  
>  	if (!(agf->agf_magicnum == cpu_to_be32(XFS_AGF_MAGIC) &&
>  	      XFS_AGF_GOOD_VERSION(be32_to_cpu(agf->agf_versionnum)) &&
> Index: b/repair/dinode.c
> ===================================================================
> --- a/repair/dinode.c	2013-08-08 17:23:56.870818288 -0500
> +++ b/repair/dinode.c	2013-08-08 17:23:57.810818146 -0500
> @@ -88,7 +88,6 @@ static int
>  clear_dinode_core(struct xfs_mount *mp, xfs_dinode_t *dinoc, xfs_ino_t ino_num)
>  {
>  	int dirty = 0;
> -	int i;
>  
>  #define __dirty_no_modify_ret(dirty) \
>  	({ (dirty) = 1; if (no_modify) return 1; })
> @@ -182,12 +181,9 @@ clear_dinode_core(struct xfs_mount *mp, 
>  		platform_uuid_copy(&dinoc->di_uuid, &mp->m_sb.sb_uuid);
>  	}
>  
> -	for (i = 0; i < 16; i++) {
> -		if (dinoc->di_pad[i] != 0) {
> -			__dirty_no_modify_ret(dirty);
> -			memset(dinoc->di_pad, 0, 16);
> -			break;
> -		}
> +	if (dinoc->di_pad2 != 0) {
> +		__dirty_no_modify_ret(dirty);
> +		memset(dinoc->di_pad2, 0, sizeof(dinoc->di_pad2));
>  	}
>  
>  	if (be64_to_cpu(dinoc->di_flags2) != 0)  {
> 
> _______________________________________________
> xfs mailing list
> xfs@xxxxxxxxxxx
> http://oss.sgi.com/mailman/listinfo/xfs
> 

_______________________________________________
xfs mailing list
xfs@xxxxxxxxxxx
http://oss.sgi.com/mailman/listinfo/xfs




[Index of Archives]     [Linux XFS Devel]     [Linux Filesystem Development]     [Filesystem Testing]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux