summaryrefslogtreecommitdiffstats
path: root/fs/btrfs/extent_map.h
diff options
context:
space:
mode:
authorJosef Bacik <jbacik@fusionio.com>2013-01-24 18:02:07 +0100
committerJosef Bacik <jbacik@fusionio.com>2013-01-24 18:49:48 +0100
commit201a90389424d6771d24fc5d72f7e34cb4a8f967 (patch)
tree2e184b0b5a702855163d7da2fa5bee2a6fb8ef98 /fs/btrfs/extent_map.h
parentBtrfs: fix a regression in balance usage filter (diff)
downloadlinux-201a90389424d6771d24fc5d72f7e34cb4a8f967.tar.xz
linux-201a90389424d6771d24fc5d72f7e34cb4a8f967.zip
Btrfs: do not allow logged extents to be merged or removed
We drop the extent map tree lock while we're logging extents, so somebody could come in and merge another extent into this one and screw up our logging, or they could even remove us from the list which would keep us from logging the extent or freeing our ref on it, so we need to make sure to not clear LOGGING until after the extent is logged, and then we can merge it to adjacent extents. Thanks, Signed-off-by: Josef Bacik <jbacik@fusionio.com>
Diffstat (limited to 'fs/btrfs/extent_map.h')
-rw-r--r--fs/btrfs/extent_map.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/fs/btrfs/extent_map.h b/fs/btrfs/extent_map.h
index 922943ce29e8..c6598c89cff8 100644
--- a/fs/btrfs/extent_map.h
+++ b/fs/btrfs/extent_map.h
@@ -69,6 +69,7 @@ void free_extent_map(struct extent_map *em);
int __init extent_map_init(void);
void extent_map_exit(void);
int unpin_extent_cache(struct extent_map_tree *tree, u64 start, u64 len, u64 gen);
+void clear_em_logging(struct extent_map_tree *tree, struct extent_map *em);
struct extent_map *search_extent_mapping(struct extent_map_tree *tree,
u64 start, u64 len);
#endif