]> git.neil.brown.name Git - LaFS.git/commitdiff
Ensure we drop async refs on youthblk extra on unmount.
authorNeilBrown <neilb@suse.de>
Fri, 9 Jul 2010 06:27:43 +0000 (16:27 +1000)
committerNeilBrown <neilb@suse.de>
Fri, 9 Jul 2010 21:32:01 +0000 (07:32 +1000)
This shouldn't really be a problem, but it seems to be....

Signed-off-by: NeilBrown <neilb@suse.de>
segments.c

index 2733b1a3be3e643590cee8b3ba7f9db8b7627c3b..2f1961d2bc7a2022cfda22f289cba1d01cbcc830 100644 (file)
@@ -232,6 +232,10 @@ void lafs_seg_put_all(struct fs *fs)
                                ss->ssblk = NULL;
                                ss->youthblk = NULL;
                                spin_unlock(&fs->stable_lock);
+                               if (b && test_and_clear_bit(B_Async, &b->b.flags))
+                                       putdref(b, MKREF(async));
+                               if (y && test_and_clear_bit(B_Async, &y->b.flags))
+                                       putdref(y, MKREF(async));
                                putdref(b, MKREF(ss));
                                putdref(y, MKREF(ssyouth));
                                goto retry;