diff options
-rw-r--r-- | fs/btrfs/ctree.h | 2 | ||||
-rw-r--r-- | fs/btrfs/file.c | 40 | ||||
-rw-r--r-- | fs/btrfs/ioctl.c | 2 | ||||
-rw-r--r-- | fs/btrfs/tests/btrfs-tests.c | 6 | ||||
-rw-r--r-- | fs/btrfs/tests/free-space-tree-tests.c | 1 |
5 files changed, 20 insertions, 31 deletions
diff --git a/fs/btrfs/ctree.h b/fs/btrfs/ctree.h index 67fca268449b..c3e634924149 100644 --- a/fs/btrfs/ctree.h +++ b/fs/btrfs/ctree.h | |||
@@ -2291,7 +2291,7 @@ struct btrfs_ioctl_defrag_range_args { | |||
2291 | #define BTRFS_MOUNT_NOLOGREPLAY (1 << 27) | 2291 | #define BTRFS_MOUNT_NOLOGREPLAY (1 << 27) |
2292 | 2292 | ||
2293 | #define BTRFS_DEFAULT_COMMIT_INTERVAL (30) | 2293 | #define BTRFS_DEFAULT_COMMIT_INTERVAL (30) |
2294 | #define BTRFS_DEFAULT_MAX_INLINE (8192) | 2294 | #define BTRFS_DEFAULT_MAX_INLINE (2048) |
2295 | 2295 | ||
2296 | #define btrfs_clear_opt(o, opt) ((o) &= ~BTRFS_MOUNT_##opt) | 2296 | #define btrfs_clear_opt(o, opt) ((o) &= ~BTRFS_MOUNT_##opt) |
2297 | #define btrfs_set_opt(o, opt) ((o) |= BTRFS_MOUNT_##opt) | 2297 | #define btrfs_set_opt(o, opt) ((o) |= BTRFS_MOUNT_##opt) |
diff --git a/fs/btrfs/file.c b/fs/btrfs/file.c index 4ab4b5cdf4b0..03de2466db23 100644 --- a/fs/btrfs/file.c +++ b/fs/btrfs/file.c | |||
@@ -1533,29 +1533,25 @@ static noinline ssize_t __btrfs_buffered_write(struct file *file, | |||
1533 | reserve_bytes = round_up(write_bytes + sector_offset, | 1533 | reserve_bytes = round_up(write_bytes + sector_offset, |
1534 | root->sectorsize); | 1534 | root->sectorsize); |
1535 | 1535 | ||
1536 | if (BTRFS_I(inode)->flags & (BTRFS_INODE_NODATACOW | | 1536 | if ((BTRFS_I(inode)->flags & (BTRFS_INODE_NODATACOW | |
1537 | BTRFS_INODE_PREALLOC)) { | 1537 | BTRFS_INODE_PREALLOC)) && |
1538 | ret = check_can_nocow(inode, pos, &write_bytes); | 1538 | check_can_nocow(inode, pos, &write_bytes) > 0) { |
1539 | if (ret < 0) | 1539 | /* |
1540 | break; | 1540 | * For nodata cow case, no need to reserve |
1541 | if (ret > 0) { | 1541 | * data space. |
1542 | /* | 1542 | */ |
1543 | * For nodata cow case, no need to reserve | 1543 | only_release_metadata = true; |
1544 | * data space. | 1544 | /* |
1545 | */ | 1545 | * our prealloc extent may be smaller than |
1546 | only_release_metadata = true; | 1546 | * write_bytes, so scale down. |
1547 | /* | 1547 | */ |
1548 | * our prealloc extent may be smaller than | 1548 | num_pages = DIV_ROUND_UP(write_bytes + offset, |
1549 | * write_bytes, so scale down. | 1549 | PAGE_CACHE_SIZE); |
1550 | */ | 1550 | reserve_bytes = round_up(write_bytes + sector_offset, |
1551 | num_pages = DIV_ROUND_UP(write_bytes + offset, | 1551 | root->sectorsize); |
1552 | PAGE_CACHE_SIZE); | 1552 | goto reserve_metadata; |
1553 | reserve_bytes = round_up(write_bytes | ||
1554 | + sector_offset, | ||
1555 | root->sectorsize); | ||
1556 | goto reserve_metadata; | ||
1557 | } | ||
1558 | } | 1553 | } |
1554 | |||
1559 | ret = btrfs_check_data_free_space(inode, pos, write_bytes); | 1555 | ret = btrfs_check_data_free_space(inode, pos, write_bytes); |
1560 | if (ret < 0) | 1556 | if (ret < 0) |
1561 | break; | 1557 | break; |
diff --git a/fs/btrfs/ioctl.c b/fs/btrfs/ioctl.c index 6110d8c386a5..c1193b0c5e49 100644 --- a/fs/btrfs/ioctl.c +++ b/fs/btrfs/ioctl.c | |||
@@ -2093,8 +2093,6 @@ static noinline int search_ioctl(struct inode *inode, | |||
2093 | key.offset = (u64)-1; | 2093 | key.offset = (u64)-1; |
2094 | root = btrfs_read_fs_root_no_name(info, &key); | 2094 | root = btrfs_read_fs_root_no_name(info, &key); |
2095 | if (IS_ERR(root)) { | 2095 | if (IS_ERR(root)) { |
2096 | btrfs_err(info, "could not find root %llu", | ||
2097 | sk->tree_id); | ||
2098 | btrfs_free_path(path); | 2096 | btrfs_free_path(path); |
2099 | return -ENOENT; | 2097 | return -ENOENT; |
2100 | } | 2098 | } |
diff --git a/fs/btrfs/tests/btrfs-tests.c b/fs/btrfs/tests/btrfs-tests.c index 0e1e61a7ec23..d39f714dabeb 100644 --- a/fs/btrfs/tests/btrfs-tests.c +++ b/fs/btrfs/tests/btrfs-tests.c | |||
@@ -189,12 +189,6 @@ btrfs_alloc_dummy_block_group(unsigned long length) | |||
189 | kfree(cache); | 189 | kfree(cache); |
190 | return NULL; | 190 | return NULL; |
191 | } | 191 | } |
192 | cache->fs_info = btrfs_alloc_dummy_fs_info(); | ||
193 | if (!cache->fs_info) { | ||
194 | kfree(cache->free_space_ctl); | ||
195 | kfree(cache); | ||
196 | return NULL; | ||
197 | } | ||
198 | 192 | ||
199 | cache->key.objectid = 0; | 193 | cache->key.objectid = 0; |
200 | cache->key.offset = length; | 194 | cache->key.offset = length; |
diff --git a/fs/btrfs/tests/free-space-tree-tests.c b/fs/btrfs/tests/free-space-tree-tests.c index d05fe1ab4808..7cea4462acd5 100644 --- a/fs/btrfs/tests/free-space-tree-tests.c +++ b/fs/btrfs/tests/free-space-tree-tests.c | |||
@@ -485,6 +485,7 @@ static int run_test(test_func_t test_func, int bitmaps) | |||
485 | cache->bitmap_low_thresh = 0; | 485 | cache->bitmap_low_thresh = 0; |
486 | cache->bitmap_high_thresh = (u32)-1; | 486 | cache->bitmap_high_thresh = (u32)-1; |
487 | cache->needs_free_space = 1; | 487 | cache->needs_free_space = 1; |
488 | cache->fs_info = root->fs_info; | ||
488 | 489 | ||
489 | btrfs_init_dummy_trans(&trans); | 490 | btrfs_init_dummy_trans(&trans); |
490 | 491 | ||