From mboxrd@z Thu Jan 1 00:00:00 1970 From: Steven Whitehouse Date: Sun, 12 Jul 2009 22:44:28 +0100 Subject: [Cluster-devel] GFS2: Fix incorrent statfs consistency check In-Reply-To: <20090710231326.GU3172@ether.msp.redhat.com> References: <20090710231326.GU3172@ether.msp.redhat.com> Message-ID: <1247435068.3705.1.camel@localhost.localdomain> List-Id: To: cluster-devel.redhat.com MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit 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 > --- > 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) >