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

Re: [Cluster-devel] GFS2: Fix incorrent statfs consistency check



Hi,

Now in the -nmw git tree. Thanks,

Steve.

On Fri, 2009-07-10 at 18:13 -0500, Benjamin Marzinski wrote:
> ince both linked and unlinked inodes are counted by rgd->rd_dinodes, It
> makes no sense to count them with the used data blocks (first check that
> I changed), it makes sense to count them with the linked inodes (second
> check), and it makes no sense to care if there are more unlinked inodes
> than linked ones. This fixes these errors.
> 
> Signed-off-by: Benjamin Marzinski <bmarzins redhat com>
> ---
>  fs/gfs2/rgrp.c |   14 +++-----------
>  1 file changed, 3 insertions(+), 11 deletions(-)
> 
> Index: gfs2-2.6-nmw/fs/gfs2/rgrp.c
> ===================================================================
> --- gfs2-2.6-nmw.orig/fs/gfs2/rgrp.c
> +++ gfs2-2.6-nmw/fs/gfs2/rgrp.c
> @@ -285,27 +285,19 @@ void gfs2_rgrp_verify(struct gfs2_rgrpd 
>  	}
>  
>  	tmp = rgd->rd_data - rgd->rd_free - rgd->rd_dinodes;
> -	if (count[1] + count[2] != tmp) {
> +	if (count[1] != tmp) {
>  		if (gfs2_consist_rgrpd(rgd))
>  			fs_err(sdp, "used data mismatch:  %u != %u\n",
>  			       count[1], tmp);
>  		return;
>  	}
>  
> -	if (count[3] != rgd->rd_dinodes) {
> +	if (count[2] + count[3] != rgd->rd_dinodes) {
>  		if (gfs2_consist_rgrpd(rgd))
>  			fs_err(sdp, "used metadata mismatch:  %u != %u\n",
> -			       count[3], rgd->rd_dinodes);
> +			       count[2] + count[3], rgd->rd_dinodes);
>  		return;
>  	}
> -
> -	if (count[2] > count[3]) {
> -		if (gfs2_consist_rgrpd(rgd))
> -			fs_err(sdp, "unlinked inodes > inodes:  %u\n",
> -			       count[2]);
> -		return;
> -	}
> -
>  }
>  
>  static inline int rgrp_contains_block(struct gfs2_rgrpd *rgd, u64 block)
> 


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