diff options
Diffstat (limited to 'fs/btrfs/extent_io.c')
-rw-r--r-- | fs/btrfs/extent_io.c | 18 |
1 files changed, 14 insertions, 4 deletions
diff --git a/fs/btrfs/extent_io.c b/fs/btrfs/extent_io.c index 09582b81640c..22bda32acb89 100644 --- a/fs/btrfs/extent_io.c +++ b/fs/btrfs/extent_io.c | |||
@@ -145,8 +145,16 @@ int __init extent_io_init(void) | |||
145 | offsetof(struct btrfs_io_bio, bio)); | 145 | offsetof(struct btrfs_io_bio, bio)); |
146 | if (!btrfs_bioset) | 146 | if (!btrfs_bioset) |
147 | goto free_buffer_cache; | 147 | goto free_buffer_cache; |
148 | |||
149 | if (bioset_integrity_create(btrfs_bioset, BIO_POOL_SIZE)) | ||
150 | goto free_bioset; | ||
151 | |||
148 | return 0; | 152 | return 0; |
149 | 153 | ||
154 | free_bioset: | ||
155 | bioset_free(btrfs_bioset); | ||
156 | btrfs_bioset = NULL; | ||
157 | |||
150 | free_buffer_cache: | 158 | free_buffer_cache: |
151 | kmem_cache_destroy(extent_buffer_cache); | 159 | kmem_cache_destroy(extent_buffer_cache); |
152 | extent_buffer_cache = NULL; | 160 | extent_buffer_cache = NULL; |
@@ -1481,10 +1489,12 @@ static noinline u64 find_delalloc_range(struct extent_io_tree *tree, | |||
1481 | *end = state->end; | 1489 | *end = state->end; |
1482 | cur_start = state->end + 1; | 1490 | cur_start = state->end + 1; |
1483 | node = rb_next(node); | 1491 | node = rb_next(node); |
1484 | if (!node) | ||
1485 | break; | ||
1486 | total_bytes += state->end - state->start + 1; | 1492 | total_bytes += state->end - state->start + 1; |
1487 | if (total_bytes >= max_bytes) | 1493 | if (total_bytes >= max_bytes) { |
1494 | *end = *start + max_bytes - 1; | ||
1495 | break; | ||
1496 | } | ||
1497 | if (!node) | ||
1488 | break; | 1498 | break; |
1489 | } | 1499 | } |
1490 | out: | 1500 | out: |
@@ -1612,7 +1622,7 @@ again: | |||
1612 | *start = delalloc_start; | 1622 | *start = delalloc_start; |
1613 | *end = delalloc_end; | 1623 | *end = delalloc_end; |
1614 | free_extent_state(cached_state); | 1624 | free_extent_state(cached_state); |
1615 | return found; | 1625 | return 0; |
1616 | } | 1626 | } |
1617 | 1627 | ||
1618 | /* | 1628 | /* |