From 6484006dff12ba26d17a8eb653e46bd87e72637d Mon Sep 17 00:00:00 2001 From: David Woodhouse Date: Sun, 21 May 2006 01:28:05 +0100 Subject: [PATCH] --- yaml --- r: 27828 b: refs/heads/master c: 3560160aa26ebced1944aaa2e7e436d2a1b1bf70 h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/fs/jffs2/scan.c | 9 +++++++-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/[refs] b/[refs] index 332f3d512f4e..dc75d18a6bc3 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 6171586a7ae5198988774e8480631e8d15f65dfe +refs/heads/master: 3560160aa26ebced1944aaa2e7e436d2a1b1bf70 diff --git a/trunk/fs/jffs2/scan.c b/trunk/fs/jffs2/scan.c index 06637050749d..192b0bd21180 100644 --- a/trunk/fs/jffs2/scan.c +++ b/trunk/fs/jffs2/scan.c @@ -516,10 +516,15 @@ static int jffs2_scan_eraseblock (struct jffs2_sb_info *c, struct jffs2_eraseblo if (sumptr) { err = jffs2_sum_scan_sumnode(c, jeb, sumptr, sumlen, &pseudo_random); - if (err) - return err; + if (buf_size && sumlen > buf_size) kfree(sumptr); + /* If it returns with a real error, bail. + If it returns positive, that's a block classification + (i.e. BLK_STATE_xxx) so return that too. + If it returns zero, fall through to full scan. */ + if (err) + return err; } }