summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHavasi Ferenc <haf@kpax.(none)>2006-09-05 16:08:58 +0200
committerDavid Woodhouse <dwmw2@infradead.org>2006-09-16 09:08:12 +0100
commitd882687c51b52424a56992578ce7636b3f3c8d41 (patch)
tree8fe45bdeb4dbd36ad25e4d6764ede7431d4a1dd8
parentfa6c220a7f01257b1c2c4203d48aaaedb0c4416f (diff)
downloadlinux-3.10-d882687c51b52424a56992578ce7636b3f3c8d41.tar.gz
linux-3.10-d882687c51b52424a56992578ce7636b3f3c8d41.tar.bz2
linux-3.10-d882687c51b52424a56992578ce7636b3f3c8d41.zip
[JFFS2][SUMMARY] Fix a summary collecting bug.
In some special case (padding because of sync or umount) it can be possible that summary information is not fit to the end of the erase block. In these cases the collecting of summary is disabled for this erase block. The problem was that this was not respected by jffs2_sum_add_kvec(). This patch fix this bug. From: Zoltan Sogor <weth@inf.u-szeged.hu> Signed-off-by: Ferenc Havasi <havasi@inf.u-szeged.hu> Signed-off-by: David Woodhouse <dwmw2@infradead.org>
-rw-r--r--fs/jffs2/summary.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/fs/jffs2/summary.c b/fs/jffs2/summary.c
index c19bd476e8e..e52cef526d9 100644
--- a/fs/jffs2/summary.c
+++ b/fs/jffs2/summary.c
@@ -252,6 +252,11 @@ int jffs2_sum_add_kvec(struct jffs2_sb_info *c, const struct kvec *invecs,
union jffs2_node_union *node;
struct jffs2_eraseblock *jeb;
+ if (c->summary->sum_size == JFFS2_SUMMARY_NOSUM_SIZE) {
+ dbg_summary("Summary is disabled for this jeb! Skipping summary info!\n");
+ return 0;
+ }
+
node = invecs[0].iov_base;
jeb = &c->blocks[ofs / c->sector_size];
ofs -= jeb->offset;