Linux Archive

Linux Archive (http://www.linux-archive.org/)
-   Cluster Development (http://www.linux-archive.org/cluster-development/)
-   -   cluster/gfs-kernel/src/gfs rgrp.c (http://www.linux-archive.org/cluster-development/27007-cluster-gfs-kernel-src-gfs-rgrp-c.html)

01-02-2008 05:45 PM

cluster/gfs-kernel/src/gfs rgrp.c
 
CVSROOT: /cvs/cluster
Module name: cluster
Branch: RHEL5
Changes by: wcheng@sourceware.org 2008-01-02 18:45:07

Modified files:
gfs-kernel/src/gfs: rgrp.c

Log message:
Bugzilla 227892:

* Warn people about the RG corruption and request a gfs_fsck
* Upon error detection, perform a minimum error data collection

Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/gfs-kernel/src/gfs/rgrp.c.diff?cvsroot=cluster&only_with_tag=RHEL5&r1 =1.19.2.1&r2=1.19.2.2

--- cluster/gfs-kernel/src/gfs/rgrp.c 2007/06/19 14:47:07 1.19.2.1
+++ cluster/gfs-kernel/src/gfs/rgrp.c 2008/01/02 18:45:07 1.19.2.2
@@ -1455,8 +1455,13 @@
goal = 0;
}

- if (gfs_assert_withdraw(rgd->rd_sbd, x <= length))
- blk = 0;
+ if (unlikely(x > length)) {
+ printk("GFS error: possible RG corruption
");
+ printk(" please run gfs_fsck after withdraw
");
+ dump_stack();
+ if (gfs_assert_withdraw(rgd->rd_sbd, x <= length))
+ blk = 0;
+ }

/* Attach bitmap buffer to trans, modify bits to do block alloc */
gfs_trans_add_bh(rgd->rd_gl, rgd->rd_bh[buf]);

01-02-2008 06:17 PM

cluster/gfs-kernel/src/gfs rgrp.c
 
CVSROOT: /cvs/cluster
Module name: cluster
Branch: RHEL4
Changes by: wcheng@sourceware.org 2008-01-02 19:17:09

Modified files:
gfs-kernel/src/gfs: rgrp.c

Log message:
Bugzilla 227892:
1. Warn people about the RG corruption and request a gfs_fsck
2. Upon error detection, perform a minimum error data collection.

Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/gfs-kernel/src/gfs/rgrp.c.diff?cvsroot=cluster&only_with_tag=RHEL4&r1 =1.14.2.4&r2=1.14.2.5

--- cluster/gfs-kernel/src/gfs/rgrp.c 2007/03/13 21:21:21 1.14.2.4
+++ cluster/gfs-kernel/src/gfs/rgrp.c 2008/01/02 19:17:09 1.14.2.5
@@ -1456,8 +1456,13 @@
goal = 0;
}

- if (gfs_assert_withdraw(rgd->rd_sbd, x <= length))
- blk = 0;
+ if (unlikely(x > length)) {
+ printk("GFS error: possible RG corruption
");
+ printk(" please run gfs_fsck after withdraw
");
+ dump_stack();
+ if (gfs_assert_withdraw(rgd->rd_sbd, x <= length))
+ blk = 0;
+ }

/* Attach bitmap buffer to trans, modify bits to do block alloc */
gfs_trans_add_bh(rgd->rd_gl, rgd->rd_bh[buf]);


All times are GMT. The time now is 04:40 PM.

VBulletin, Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.
Content Relevant URLs by vBSEO ©2007, Crawlability, Inc.