search for: btrfs_reserve_ext

Displaying 15 results from an estimated 15 matches for "btrfs_reserve_ext".

2013 Jan 03
4
btrfsck: extent-tree.c:2549: btrfs_reserve_extent: Assertion `!(ret)' failed.
...ck 183640064 warning, start mismatch 152387469312 762175488 block 152387469312 rec extent_item_refs 1, passed 1 warning, start mismatch 449606139904 427217858560 block 427217858560 rec extent_item_refs 1, passed 1 ref mismatch on [32215040 4096] extent item 30, found 31 btrfsck: extent-tree.c:2549: btrfs_reserve_extent: Assertion `!(ret)'' failed. Aborted If i run btrfsck in non-repair mode I get: # ./btrfsck /dev/md4 checking extents leaf parent key incorrect 183603200 bad block 183603200 leaf parent key incorrect 183640064 bad block 183640064 warning, start mismatch 152387469312 762175488 checksum...
2011 Sep 27
2
high CPU usage and low perf
...ffffffff00000001 ffffffffffffff10 ffff880143af77b0 ffff8801456da420 ffffffffffffffff 00000000e86aa840 0000000000001000 00000000ffffffe4 ffff8801462ba800 ffff880109f9b540 000088002a95eba8 Call Trace: [<ffffffffa032765e>] ? tree_search_offset+0x18f/0x1b8 [btrfs] [<ffffffffa02eb745>] ? btrfs_reserve_extent+0xb0/0x190 [btrfs] [<ffffffffa02ebdfc>] ? btrfs_alloc_free_block+0x22e/0x349 [btrfs] [<ffffffffa02dea3d>] ? __btrfs_cow_block+0x102/0x31e [btrfs] [<ffffffffa02ebdfc>] ? btrfs_alloc_free_block+0x22e/0x349 [btrfs] [<ffffffffa02dea3d>] ? __btrfs_cow_block+0x102/0x31e [bt...
2010 Apr 26
0
[PATCH V2 11/12] Btrfs: Pre-allocate space for data relocation
...TRFS_I(inode)->root; struct btrfs_key ins; u64 cur_offset = start; - u64 num_bytes = end - start; int ret = 0; - u64 i_size; while (num_bytes > 0) { trans = btrfs_start_transaction(root, 3); @@ -6097,9 +6103,8 @@ static int prealloc_file_range(struct in break; } - ret = btrfs_reserve_extent(trans, root, num_bytes, - root->sectorsize, 0, alloc_hint, - (u64)-1, &ins, 1); + ret = btrfs_reserve_extent(trans, root, num_bytes, min_size, + 0, *alloc_hint, (u64)-1, &ins, 1); if (ret) { btrfs_end_transaction(trans, root); break; @@ -6116,20 +6121,...
2013 Oct 07
0
[PATCH] Btrfs: fixup reserved trace points
In trying to track down where we were leaking reserved space I noticed our reserve extent tracepoints are a little off. First we were saying that the reserved space had been alloced in btrfs_reserve_extent, which isn''t the case, this needs to be triggered when we actually allocate the space when we run the delayed ref. We were also missing a few places where we should have been tracing the btrfs_reserve_extent_free tracepoint. With these in place I was able to put together where we were...
2009 Nov 02
0
[PATCH 7/8] Make fallocate(2) more ENOSPC friendly
...)->root; struct btrfs_key ins; u64 alloc_size; @@ -5592,17 +5647,23 @@ static int prealloc_file_range(struct bt while (num_bytes > 0) { alloc_size = min(num_bytes, root->fs_info->max_extent); - ret = btrfs_reserve_metadata_space(root, 1); - if (ret) - goto out; - ret = btrfs_reserve_extent(trans, root, alloc_size, root->sectorsize, 0, alloc_hint, (u64)-1, &ins, 1); if (ret) { WARN_ON(1); - goto out; + break; + } + + ret = btrfs_reserve_metadata_space(root, 3); + if (ret) { + btrfs_free_reserved_extent(root, ins.objectid, + ins.offse...
2008 Sep 01
2
Transparent compression for Btrfs
Hi, For a medium term project, I''m thinking of working on transparent compression for Btrfs. Please give any hints and comments on how we would want to go about this, the features we would like to have and some common pitfalls to avoid. Is looking at how it''s done in Reiser4, a good idea ? Can we allow the compression algorithm be configurable on a per file basis, may be
2008 Nov 13
7
Kernel oops when running bonnie++ on btrfs
...M Nov 12 22:39:13 Intrepid-btrfs kernel: [ 2531.816012] Pid: 5193, comm: btrfs-delalloc- Not tainted (2.6.27-7-generic #1)^M Nov 12 22:39:13 Intrepid-btrfs kernel: [ 2531.816012] EIP: 0060:[<e08d2b62>] EFLAGS: 00010257 CPU: 0^M Nov 12 22:39:13 Intrepid-btrfs kernel: [ 2531.816012] EIP is at __btrfs_reserve_extent+0x3c2/0x480 [btrfs]^M Nov 12 22:39:13 Intrepid-btrfs kernel: [ 2531.816012] EAX: df72d284 EBX: dd27c180 ECX: ffffffff EDX: 00000001^M Nov 12 22:39:13 Intrepid-btrfs kernel: [ 2531.816012] ESI: dd27c1ac EDI: df72d278 EBP: d80e7de8 ESP: d80e7d74^M Nov 12 22:39:13 Intrepid-btrfs kernel: [ 2531.8160...
2012 May 27
0
[RFC PATCH] Decrease Metadata Fragment Using A Caterpillar Band Method
..._rsv *block_rsv; + struct extent_buffer *buf; + u64 flags = 0; + int ret; + u8 factor = root->fs_info->cater_factor; + + if (factor > 1) + blocksize = blocksize * factor; + block_rsv = use_block_rsv(trans, root, blocksize); + if (IS_ERR(block_rsv)) + return ERR_CAST(block_rsv); + + ret = btrfs_reserve_extent(trans, root, blocksize, blocksize, + empty_size, hint, (u64)-1, &ins, 0); + if (ret) { + unuse_block_rsv(root->fs_info, block_rsv, blocksize); + return ERR_PTR(ret); + } + + buf = btrfs_init_new_buffer(trans, root, ins.objectid, + blocksize, level); + BUG_ON(IS_ERR(buf)); +...
2010 Nov 18
9
Interesting problem with write data.
Hi, Recently, I made a btrfs to use. And I met slowness problem. Trying to diag it. I found this: 1. dd if=/dev/zero of=test count=1024 bs=1MB This is fast, at about 25MB/s, and reasonable iowait. 2. dd if=/dev/zero of=test count=1 bs=1GB This is pretty slow, at about 1.5MB/s, and 90%+ iowait, constantly. May I know why it works like this? Thanks. -- To unsubscribe from this list: send the
2009 May 12
0
[PATCH 1/2] btrfs-progs: mixed back ref support
...btrfs_alloc_extent(struct btrfs_trans_handle *trans, - struct btrfs_root *root, - u64 num_bytes, u64 parent, - u64 root_objectid, u64 ref_generation, - u64 owner, u64 empty_size, u64 hint_byte, - u64 search_end, struct btrfs_key *ins, int data) + +static int btrfs_reserve_extent(struct btrfs_trans_handle *trans, + struct btrfs_root *root, + u64 num_bytes, u64 empty_size, + u64 hint_byte, u64 search_end, + struct btrfs_key *ins, int data) { int ret; - int pending_ret; - u64 super_used, root_used; u64 search_start = 0; u64 alloc_profile; - u32 sizes[2];...
2010 May 07
6
[PATCH 1/5] fs: allow short direct-io reads to be completed via buffered IO V2
V1->V2: Check to see if our current ppos is >= i_size after a short DIO read, just in case it was actually a short read and we need to just return. This is similar to what already happens in the write case. If we have a short read while doing O_DIRECT, instead of just returning, fallthrough and try to read the rest via buffered IO. BTRFS needs this because if we encounter a compressed or
2010 Sep 03
0
[PATCH 1/2] btrfs: document where we use BUG_ON instead of error handling
...ins.offset, async_extent->pages, async_extent->nr_pages); - BUG_ON(ret); + btrfs_fixable_bug_on(ret); alloc_hint = ins.objectid + ins.offset; kfree(async_extent); cond_resched(); @@ -812,7 +812,7 @@ static noinline int cow_file_range(struct inode *inode, ret = btrfs_reserve_extent(trans, root, cur_alloc_size, root->sectorsize, 0, alloc_hint, (u64)-1, &ins, 1); - BUG_ON(ret); + btrfs_fixable_bug_on(ret); em = alloc_extent_map(GFP_NOFS); em->start = start; @@ -840,13 +840,13 @@ static noinline int cow_file_range(struct inode *inode,...
2012 Dec 13
22
[PATCH] Btrfs: fix a deadlock on chunk mutex
An user reported that he has hit an annoying deadlock while playing with ceph based on btrfs. Current updating device tree requires space from METADATA chunk, so we -may- need to do a recursive chunk allocation when adding/updating dev extent, that is where the deadlock comes from. If we use SYSTEM metadata to update device tree, we can avoid the recursive stuff. Reported-by: Jim Schutt
2011 Oct 06
26
[PATCH v0 00/18] btfs: Subvolume Quota Groups
This is a first draft of a subvolume quota implementation. It is possible to limit subvolumes and any group of subvolumes and also to track the amount of space that will get freed when deleting snapshots. The current version is functionally incomplete, with the main missing feature being the initial scan and rescan of an existing filesystem. I put some effort into writing an introduction into
2011 Oct 04
68
[patch 00/65] Error handling patchset v3
Hi all - Here''s my current error handling patchset, against 3.1-rc8. Almost all of this patchset is preparing for actual error handling. Before we start in on that work, I''m trying to reduce the surface we need to worry about. It turns out that there is a ton of code that returns an error code but never actually reports an error. The patchset has grown to 65 patches. 46 of them