diff options
author | André Fabian Silva Delgado <emulatorman@parabola.nu> | 2015-12-06 04:56:08 -0300 |
---|---|---|
committer | André Fabian Silva Delgado <emulatorman@parabola.nu> | 2015-12-06 04:56:35 -0300 |
commit | 3b48dd8b97936abd0d17de2360f43094b50fbe53 (patch) | |
tree | ddb4824396bbefe966085e784c60a7ab0ca53db9 /kernels/linux-libre-grsec-knock/btrfs-overflow.patch | |
parent | 1b42a9d608013d9a3285dabb93f60c89f0debb7c (diff) | |
download | abslibre-3b48dd8b97936abd0d17de2360f43094b50fbe53.tar.gz abslibre-3b48dd8b97936abd0d17de2360f43094b50fbe53.tar.bz2 abslibre-3b48dd8b97936abd0d17de2360f43094b50fbe53.zip |
linux-libre-grsec-knock-4.2.6_gnu.201511282239-1: updating version
Diffstat (limited to 'kernels/linux-libre-grsec-knock/btrfs-overflow.patch')
-rw-r--r-- | kernels/linux-libre-grsec-knock/btrfs-overflow.patch | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/kernels/linux-libre-grsec-knock/btrfs-overflow.patch b/kernels/linux-libre-grsec-knock/btrfs-overflow.patch new file mode 100644 index 000000000..f879b184b --- /dev/null +++ b/kernels/linux-libre-grsec-knock/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; |