diff options
Diffstat (limited to 'fs/btrfs/inode-map.c')
-rw-r--r-- | fs/btrfs/inode-map.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/fs/btrfs/inode-map.c b/fs/btrfs/inode-map.c index b4087e0fa87..53dcbdf446c 100644 --- a/fs/btrfs/inode-map.c +++ b/fs/btrfs/inode-map.c | |||
@@ -465,14 +465,16 @@ again: | |||
465 | /* Just to make sure we have enough space */ | 465 | /* Just to make sure we have enough space */ |
466 | prealloc += 8 * PAGE_CACHE_SIZE; | 466 | prealloc += 8 * PAGE_CACHE_SIZE; |
467 | 467 | ||
468 | ret = btrfs_check_data_free_space(inode, prealloc); | 468 | ret = btrfs_delalloc_reserve_space(inode, prealloc); |
469 | if (ret) | 469 | if (ret) |
470 | goto out_put; | 470 | goto out_put; |
471 | 471 | ||
472 | ret = btrfs_prealloc_file_range_trans(inode, trans, 0, 0, prealloc, | 472 | ret = btrfs_prealloc_file_range_trans(inode, trans, 0, 0, prealloc, |
473 | prealloc, prealloc, &alloc_hint); | 473 | prealloc, prealloc, &alloc_hint); |
474 | if (ret) | 474 | if (ret) { |
475 | btrfs_delalloc_release_space(inode, prealloc); | ||
475 | goto out_put; | 476 | goto out_put; |
477 | } | ||
476 | btrfs_free_reserved_data_space(inode, prealloc); | 478 | btrfs_free_reserved_data_space(inode, prealloc); |
477 | 479 | ||
478 | out_put: | 480 | out_put: |