diff options
author | Havasi Ferenc <haf@kpax.(none)> | 2006-09-05 10:08:58 -0400 |
---|---|---|
committer | David Woodhouse <dwmw2@infradead.org> | 2006-09-16 04:08:12 -0400 |
commit | d882687c51b52424a56992578ce7636b3f3c8d41 (patch) | |
tree | 8fe45bdeb4dbd36ad25e4d6764ede7431d4a1dd8 /fs/jffs2 | |
parent | fa6c220a7f01257b1c2c4203d48aaaedb0c4416f (diff) |
[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>
Diffstat (limited to 'fs/jffs2')
-rw-r--r-- | fs/jffs2/summary.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/fs/jffs2/summary.c b/fs/jffs2/summary.c index c19bd476e8ec..e52cef526d90 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, | |||
252 | union jffs2_node_union *node; | 252 | union jffs2_node_union *node; |
253 | struct jffs2_eraseblock *jeb; | 253 | struct jffs2_eraseblock *jeb; |
254 | 254 | ||
255 | if (c->summary->sum_size == JFFS2_SUMMARY_NOSUM_SIZE) { | ||
256 | dbg_summary("Summary is disabled for this jeb! Skipping summary info!\n"); | ||
257 | return 0; | ||
258 | } | ||
259 | |||
255 | node = invecs[0].iov_base; | 260 | node = invecs[0].iov_base; |
256 | jeb = &c->blocks[ofs / c->sector_size]; | 261 | jeb = &c->blocks[ofs / c->sector_size]; |
257 | ofs -= jeb->offset; | 262 | ofs -= jeb->offset; |