summaryrefslogtreecommitdiffstats
path: root/fs/btrfs/free-space-cache.c
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-05-08 04:17:45 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-05-08 04:17:45 +0000
commit41fb2ba1cd2e84f28cd9f5b91d670fef7d982409 (patch)
tree3518db389445fe1c1e74d64e3598ed34c6e2c59a /fs/btrfs/free-space-cache.c
parentReleasing progress-linux version 4.19.282-1progress5u1. (diff)
downloadlinux-41fb2ba1cd2e84f28cd9f5b91d670fef7d982409.tar.xz
linux-41fb2ba1cd2e84f28cd9f5b91d670fef7d982409.zip
Merging upstream version 4.19.289.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to '')
-rw-r--r--fs/btrfs/free-space-cache.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/fs/btrfs/free-space-cache.c b/fs/btrfs/free-space-cache.c
index 6511cb719..b623e9f3b 100644
--- a/fs/btrfs/free-space-cache.c
+++ b/fs/btrfs/free-space-cache.c
@@ -783,15 +783,16 @@ static int __load_free_space_cache(struct btrfs_root *root, struct inode *inode,
}
spin_lock(&ctl->tree_lock);
ret = link_free_space(ctl, e);
- ctl->total_bitmaps++;
- ctl->op->recalc_thresholds(ctl);
- spin_unlock(&ctl->tree_lock);
if (ret) {
+ spin_unlock(&ctl->tree_lock);
btrfs_err(fs_info,
"Duplicate entries in free space cache, dumping");
kmem_cache_free(btrfs_free_space_cachep, e);
goto free_cache;
}
+ ctl->total_bitmaps++;
+ ctl->op->recalc_thresholds(ctl);
+ spin_unlock(&ctl->tree_lock);
list_add_tail(&e->list, &bitmaps);
}