From 7cc78d4dced4b60272b50000ad6b43f5c6c74f9d Mon Sep 17 00:00:00 2001 From: Joern Engel Date: Mon, 29 Mar 2010 21:13:28 +0200 Subject: [PATCH] --- yaml --- r: 189247 b: refs/heads/master c: 0943846ae05603efd98550f2d475e9c98191bde8 h: refs/heads/master i: 189245: dac8773c87221dea5ce03322720194db6456410f 189243: 28a6fc10905ea03f630903ce2855aac5a8281432 189239: 31bb87fcfb8d5397fc728ca8e2820bafe1c4f488 189231: 3cd68fd80aa86b9b0d55be0e9b2df396074e0d1e 189215: 23b758e1e02b372bf3c7e5a8e40584fdacf07b62 189183: 5b24364acc04b434a633a213b34248d2b1153990 v: v3 --- [refs] | 2 +- trunk/fs/logfs/journal.c | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/[refs] b/[refs] index 36ecc56ef59d..832ccb724adc 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 723b2ff40876678b49e61df34fb1d8001e34639d +refs/heads/master: 0943846ae05603efd98550f2d475e9c98191bde8 diff --git a/trunk/fs/logfs/journal.c b/trunk/fs/logfs/journal.c index 15454ac7bd93..25b1345c4652 100644 --- a/trunk/fs/logfs/journal.c +++ b/trunk/fs/logfs/journal.c @@ -800,6 +800,7 @@ void do_logfs_journal_wl_pass(struct super_block *sb) { struct logfs_super *super = logfs_super(sb); struct logfs_area *area = super->s_journal_area; + struct btree_head32 *head = &super->s_reserved_segments; u32 segno, ec; int i, err; @@ -807,6 +808,7 @@ void do_logfs_journal_wl_pass(struct super_block *sb) /* Drop old segments */ journal_for_each(i) if (super->s_journal_seg[i]) { + btree_remove32(head, super->s_journal_seg[i]); logfs_set_segment_unreserved(sb, super->s_journal_seg[i], super->s_journal_ec[i]); @@ -819,6 +821,8 @@ void do_logfs_journal_wl_pass(struct super_block *sb) super->s_journal_seg[i] = segno; super->s_journal_ec[i] = ec; logfs_set_segment_reserved(sb, segno); + err = btree_insert32(head, segno, (void *)1, GFP_KERNEL); + BUG_ON(err); /* mempool should prevent this */ } /* Manually move journal_area */ freeseg(sb, area->a_segno);