summaryrefslogtreecommitdiffstats
path: root/fs/logfs/journal.c
diff options
context:
space:
mode:
authorJoern Engel <joern@logfs.org>2010-03-29 21:14:52 +0200
committerJoern Engel <joern@logfs.org>2010-03-29 21:14:52 +0200
commit6be7fa06eb4d721df734bd0946b5e63b27c0589b (patch)
tree7d4a7381b61c6ab62b71643ec2033f09af2a9ec2 /fs/logfs/journal.c
parent0943846ae05603efd98550f2d475e9c98191bde8 (diff)
downloadop-kernel-dev-6be7fa06eb4d721df734bd0946b5e63b27c0589b.zip
op-kernel-dev-6be7fa06eb4d721df734bd0946b5e63b27c0589b.tar.gz
[LogFS] Erase new journal segments
If the device contains on old logfs image and the journal is moved to segment that have never been used by the current logfs and not all journal segments are erased before the next mount, the old content can confuse mount code. To prevent this, always erase the new journal segments. Signed-off-by: Joern Engel <joern@logfs.org>
Diffstat (limited to 'fs/logfs/journal.c')
-rw-r--r--fs/logfs/journal.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/fs/logfs/journal.c b/fs/logfs/journal.c
index 25b1345..d57c7b0 100644
--- a/fs/logfs/journal.c
+++ b/fs/logfs/journal.c
@@ -823,6 +823,8 @@ void do_logfs_journal_wl_pass(struct super_block *sb)
logfs_set_segment_reserved(sb, segno);
err = btree_insert32(head, segno, (void *)1, GFP_KERNEL);
BUG_ON(err); /* mempool should prevent this */
+ err = logfs_erase_segment(sb, segno, 1);
+ BUG_ON(err); /* FIXME: remount-ro would be nicer */
}
/* Manually move journal_area */
freeseg(sb, area->a_segno);
OpenPOWER on IntegriCloud