diff options
author | André Fabian Silva Delgado <emulatorman@parabola.nu> | 2015-12-04 04:43:42 -0300 |
---|---|---|
committer | André Fabian Silva Delgado <emulatorman@parabola.nu> | 2015-12-04 04:43:42 -0300 |
commit | 19b3e8b58d2728d6eeb818ce5cdca4c62b638bc0 (patch) | |
tree | 82580ba997e2d6f8767afed4e3234150cd419aea /libre/linux-libre-grsec/btrfs-overflow.patch | |
parent | 969b3a2ebc82f0e36cfe0ee379ffd5267e698edb (diff) | |
download | abslibre-19b3e8b58d2728d6eeb818ce5cdca4c62b638bc0.tar.gz abslibre-19b3e8b58d2728d6eeb818ce5cdca4c62b638bc0.tar.bz2 abslibre-19b3e8b58d2728d6eeb818ce5cdca4c62b638bc0.zip |
linux-libre-grsec-4.2.6_gnu.201511282239-1: updating version
Diffstat (limited to 'libre/linux-libre-grsec/btrfs-overflow.patch')
-rw-r--r-- | libre/linux-libre-grsec/btrfs-overflow.patch | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/libre/linux-libre-grsec/btrfs-overflow.patch b/libre/linux-libre-grsec/btrfs-overflow.patch new file mode 100644 index 000000000..f879b184b --- /dev/null +++ b/libre/linux-libre-grsec/btrfs-overflow.patch @@ -0,0 +1,26 @@ +diff --git a/fs/btrfs/extent_map.c b/fs/btrfs/extent_map.c +index 6a98bdd..fed3da6 100644 +--- a/fs/btrfs/extent_map.c ++++ b/fs/btrfs/extent_map.c +@@ -235,7 +235,9 @@ static void try_merge_map(struct extent_map_tree *tree, struct extent_map *em) + em->start = merge->start; + em->orig_start = merge->orig_start; + em->len += merge->len; +- em->block_len += merge->block_len; ++ if (em->block_start != EXTENT_MAP_HOLE && ++ em->block_start != EXTENT_MAP_INLINE) ++ em->block_len += merge->block_len; + em->block_start = merge->block_start; + em->mod_len = (em->mod_len + em->mod_start) - merge->mod_start; + em->mod_start = merge->mod_start; +@@ -252,7 +254,9 @@ static void try_merge_map(struct extent_map_tree *tree, struct extent_map *em) + merge = rb_entry(rb, struct extent_map, rb_node); + if (rb && mergable_maps(em, merge)) { + em->len += merge->len; +- em->block_len += merge->block_len; ++ if (em->block_start != EXTENT_MAP_HOLE && ++ em->block_start != EXTENT_MAP_INLINE) ++ em->block_len += merge->block_len; + rb_erase(&merge->rb_node, &tree->map); + RB_CLEAR_NODE(&merge->rb_node); + em->mod_len = (merge->mod_start + merge->mod_len) - em->mod_start; |