From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chris Mason Subject: Re: [PATCH] Btrfs: make sure to update total_bitmaps when freeing cache V2 Date: Fri, 24 Jun 2011 12:07:15 -0400 Message-ID: <1308931535-sup-9349@shiny> References: <1308858866-24124-1-git-send-email-josef@redhat.com> <20110624155820.GQ12709@twin.jikos.cz> Content-Type: text/plain; charset=UTF-8 Cc: Josef Bacik , linux-btrfs To: David Sterba Return-path: In-reply-to: <20110624155820.GQ12709@twin.jikos.cz> List-ID: Excerpts from David Sterba's message of 2011-06-24 11:58:20 -0400: > On Thu, Jun 23, 2011 at 03:54:26PM -0400, Josef Bacik wrote: > > A user reported this bug again where we have more bitmaps than we are supposed > > to. This is because we failed to load the free space cache, but don't update > > the ctl->total_bitmaps counter when we remove entries from the tree. This patch > > fixes this problem and we should be good to go again. Thanks, > > > > Signed-off-by: Josef Bacik > > --- > > V1->V2: made the patch actually correct > > fs/btrfs/free-space-cache.c | 6 +++++- > > 1 files changed, 5 insertions(+), 1 deletions(-) > > > > diff --git a/fs/btrfs/free-space-cache.c b/fs/btrfs/free-space-cache.c > > index 3c1a047..e7987f9 100644 > > --- a/fs/btrfs/free-space-cache.c > > +++ b/fs/btrfs/free-space-cache.c > > @@ -1843,7 +1843,11 @@ void __btrfs_remove_free_space_cache_locked(struct btrfs_free_space_ctl *ctl) > > while ((node = rb_last(&ctl->free_space_offset)) != NULL) { > > info = rb_entry(node, struct btrfs_free_space, offset_index); > > unlink_free_space(ctl, info); > > - kfree(info->bitmap); > > + if (info->bitmap) { > > + kfree(info->bitmap); > > + ctl->total_bitmaps--; > > + ctl->op->recalc_thresholds(ctl); > > + } > > this was a result of incorrect merge resolution in > 0965537308ac3b267ea16e731bd73870a51c53b8: Right, I missed this one up. -chris