2007-06-07 09:42:37

by Girish Shilamkar

[permalink] [raw]
Subject: [Patch] Improve e2fsck heuristics for detecting corrupted inodes

Hi,
The present e2fsck code checks the inode, per field basis. It
doesn't take into consideration to total sanity of the inode. This may
cause e2fsck turning a garbage inode into a sane inode.
The following patch adds a heuristics to detect the degree of badness
of an inode. icount mechanism is used to keep track of the badness of
every inode. The badness is increased as various fields in inode are
found to be corrupt. Badness above a certain threshold value results in
deletion of the inode. The default threshold value is 7, it can be
specified to e2fsck using "-E inode_badness_threshold=<value>"

Any suggestions/comments are welcome.

Thanks & Regards,
Girish


Signed-off-by: Andreas Dilger <[email protected]>
Signed-off-by: Girish Shilamkar <[email protected]>

diffstat patches/e2fsprogs-badness-counter.patch
e2fsck/e2fsck.8.in | 7 +
e2fsck/e2fsck.c | 4
e2fsck/e2fsck.h | 19 +++
e2fsck/pass1.c | 155
++++++++++++++++++++++++--------
e2fsck/pass1b.c | 4
e2fsck/pass2.c | 83 +++++++++++++----
e2fsck/pass4.c | 1
e2fsck/problem.c | 5 +
e2fsck/problem.h | 3
e2fsck/unix.c | 16 ++-
lib/ext2fs/icount.c | 18 +++
tests/f_bad_disconnected_inode/expect.1 | 14 --
tests/f_bad_disconnected_inode/expect.2 | 2
13 files changed, 253 insertions(+), 78 deletions(-)


2007-06-07 09:52:53

by Girish Shilamkar

[permalink] [raw]
Subject: Re: [Patch] Improve e2fsck heuristics for detecting corrupted inodes

Oops....

On Thu, 2007-06-07 at 15:12 +0530, Girish Shilamkar wrote:
> Hi,
> The present e2fsck code checks the inode, per field basis. It
> doesn't take into consideration to total sanity of the inode. This may
> cause e2fsck turning a garbage inode into a sane inode.
> The following patch adds a heuristics to detect the degree of badness
> of an inode. icount mechanism is used to keep track of the badness of
> every inode. The badness is increased as various fields in inode are
> found to be corrupt. Badness above a certain threshold value results in
> deletion of the inode. The default threshold value is 7, it can be
> specified to e2fsck using "-E inode_badness_threshold=<value>"
>
> Any suggestions/comments are welcome.
>
> Thanks & Regards,
> Girish
>
>
> Signed-off-by: Andreas Dilger <[email protected]>
> Signed-off-by: Girish Shilamkar <[email protected]>
>
> diffstat patches/e2fsprogs-badness-counter.patch
> e2fsck/e2fsck.8.in | 7 +
> e2fsck/e2fsck.c | 4
> e2fsck/e2fsck.h | 19 +++
> e2fsck/pass1.c | 155
> ++++++++++++++++++++++++--------
> e2fsck/pass1b.c | 4
> e2fsck/pass2.c | 83 +++++++++++++----
> e2fsck/pass4.c | 1
> e2fsck/problem.c | 5 +
> e2fsck/problem.h | 3
> e2fsck/unix.c | 16 ++-
> lib/ext2fs/icount.c | 18 +++
> tests/f_bad_disconnected_inode/expect.1 | 14 --
> tests/f_bad_disconnected_inode/expect.2 | 2
> 13 files changed, 253 insertions(+), 78 deletions(-)
>
>
>
> -
> To unsubscribe from this list: send the line "unsubscribe linux-ext4" in
> the body of a message to [email protected]
> More majordomo info at http://vger.kernel.org/majordomo-info.html


Attachments:
e2fsprogs-badness-counter.patch (28.23 kB)