From 1e08d2168df29c46600b9634833bbb56a297064b Mon Sep 17 00:00:00 2001 From: NeilBrown Date: Sat, 10 Jul 2010 21:42:34 +1000 Subject: [PATCH] Make sure last segment allocated is properly registered in table otherwise bad things happen when we try to de-register it. Signed-off-by: NeilBrown --- segments.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/segments.c b/segments.c index 2f1961d..d9b7a8b 100644 --- a/segments.c +++ b/segments.c @@ -1091,9 +1091,16 @@ again: /* FIXME should more generally delay the update if we * are in any checkpoint. */ + + /* FIXME avoid this code duplication?? see below */ + fs->segtrack->free.first = ss->next; + if (fs->segtrack->free.first == 0xFFFF) + fs->segtrack->free.last = 0xFFFF; + fs->segtrack->free.cnt--; + ss->score = SCORE_ACTIVE; + /* still in table, but unlinked */ spin_unlock(&fs->lock); - if (db) - putdref(db, MKREF(youth)); + putdref(db, MKREF(youth)); return; } -- 2.39.5