aboutsummaryrefslogtreecommitdiffstats
path: root/fs
diff options
context:
space:
mode:
Diffstat (limited to 'fs')
-rw-r--r--fs/btrfs/extent_io.c12
1 files changed, 4 insertions, 8 deletions
diff --git a/fs/btrfs/extent_io.c b/fs/btrfs/extent_io.c
index 43feb4663f5b..d8ea0cb200b4 100644
--- a/fs/btrfs/extent_io.c
+++ b/fs/btrfs/extent_io.c
@@ -1482,10 +1482,8 @@ static noinline u64 find_delalloc_range(struct extent_io_tree *tree,
1482 cur_start = state->end + 1; 1482 cur_start = state->end + 1;
1483 node = rb_next(node); 1483 node = rb_next(node);
1484 total_bytes += state->end - state->start + 1; 1484 total_bytes += state->end - state->start + 1;
1485 if (total_bytes >= max_bytes) { 1485 if (total_bytes >= max_bytes)
1486 *end = *start + max_bytes - 1;
1487 break; 1486 break;
1488 }
1489 if (!node) 1487 if (!node)
1490 break; 1488 break;
1491 } 1489 }
@@ -1627,10 +1625,9 @@ again:
1627 1625
1628 /* 1626 /*
1629 * make sure to limit the number of pages we try to lock down 1627 * make sure to limit the number of pages we try to lock down
1630 * if we're looping.
1631 */ 1628 */
1632 if (delalloc_end + 1 - delalloc_start > max_bytes && loops) 1629 if (delalloc_end + 1 - delalloc_start > max_bytes)
1633 delalloc_end = delalloc_start + PAGE_CACHE_SIZE - 1; 1630 delalloc_end = delalloc_start + max_bytes - 1;
1634 1631
1635 /* step two, lock all the pages after the page that has start */ 1632 /* step two, lock all the pages after the page that has start */
1636 ret = lock_delalloc_pages(inode, locked_page, 1633 ret = lock_delalloc_pages(inode, locked_page,
@@ -1641,8 +1638,7 @@ again:
1641 */ 1638 */
1642 free_extent_state(cached_state); 1639 free_extent_state(cached_state);
1643 if (!loops) { 1640 if (!loops) {
1644 unsigned long offset = (*start) & (PAGE_CACHE_SIZE - 1); 1641 max_bytes = PAGE_CACHE_SIZE;
1645 max_bytes = PAGE_CACHE_SIZE - offset;
1646 loops = 1; 1642 loops = 1;
1647 goto again; 1643 goto again;
1648 } else { 1644 } else {