* [Cluster-devel] GFS2: Fix incorrent statfs consistency check
@ 2009-07-10 23:13 Benjamin Marzinski
2009-07-12 21:44 ` Steven Whitehouse
0 siblings, 1 reply; 2+ messages in thread
From: Benjamin Marzinski @ 2009-07-10 23:13 UTC (permalink / raw)
To: cluster-devel.redhat.com
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)
^ permalink raw reply [flat|nested] 2+ messages in thread
* [Cluster-devel] GFS2: Fix incorrent statfs consistency check
2009-07-10 23:13 [Cluster-devel] GFS2: Fix incorrent statfs consistency check Benjamin Marzinski
@ 2009-07-12 21:44 ` Steven Whitehouse
0 siblings, 0 replies; 2+ messages in thread
From: Steven Whitehouse @ 2009-07-12 21:44 UTC (permalink / raw)
To: cluster-devel.redhat.com
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)
>
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2009-07-12 21:44 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-07-10 23:13 [Cluster-devel] GFS2: Fix incorrent statfs consistency check Benjamin Marzinski
2009-07-12 21:44 ` Steven Whitehouse
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.