Displaying 20 results from an estimated 300 matches similar to: "[PATCH] Btrfs: cache bitmaps when searching for a cluster"
2013 Apr 03
0
[PATCH] Btrfs-progs: add a free space cache checker to fsck
In trying to track down a weird tree log problem I wanted to make sure that the
free space cache was actually valid, which we currently have no way of doing.
So this patch adds a bunch of support for the free space cache code and then a
checker to fsck. Basically we go through and if we can actually load the free
space cache then we will walk the extent tree and verify that the free space
cache
2013 Mar 15
0
[PATCH] Btrfs: add some free space cache tests
We keep hitting bugs in the tree log replay because btrfs_remove_free_space
doesn''t account for some corner case. So add a bunch of tests to try and fully
test btrfs_remove_free_space since the only time it is called is during tree log
replay. These tests all finish successfully, so as we find more of these bugs
we need to add to these tests to make sure we don''t regress in
2009 Jul 31
1
[PATCH] Btrfs: make sure we find a bitmap entry
Yan Zheng hit a problem where we tried to remove some free space but failed
because we couldn''t find the free space entry. This is because the free space
was held within a bitmap that had a starting offset well before the actual
offset of the free space, and there were free space extents that were in the
same range as that offset, so tree_search_offset returned with NULL because we
2011 Mar 31
4
[PATCH] Btrfs: fix free space cache when there are pinned extents and clusters
I noticed a huge problem with the free space cache that was presenting as an
early ENOSPC. Turns out when writing the free space cache out I forgot to take
into account pinned extents and more importantly clusters. This would result in
us leaking free space everytime we unmounted the filesystem and remounted it. I
fix this by making sure to check and see if the current block group has a
cluster
2008 Oct 10
1
[PATCH] fix enospc when there is plenty of space
Hello,
So there is an odd case where we can possibly return -ENOSPC when there is in
fact space to be had. I think I finally have a hold on what the problem is, it
only happens with Metadata writes, and happens _very_ infrequently. What has to
happen is we have to allocate have allocated out of the first logical byte on
the disk, which would set last_alloc to first_logical_byte(root, 0), so
2009 Mar 20
1
[PATCH 2/4] Btrfs: clean up find_free_extent
The whole loop=0,1,2 thing was kind of odd and not very self explanatory. I''ve
replaced it with a list_for_each_entry on space_info->block_groups. If we have
a hint we just jump into the loop with the block group and start looking for
space. If we don''t find anything we start at the beginning and start looking.
We never come out of the loop with a ref on the block_group
2012 Jan 23
0
[PATCH] Btrfs: use cluster->window_start when allocating from a cluster bitmap
We specifically set window_start in the cluster struct to indicate where the
cluster starts in a bitmap, but we''ve been using min_start to indicate where
we''re searching from. This is usually the start of the blockgroup, so
essentially means we''re constantly searching from the start of any bitmap we
find, which completely negates all the trouble we go to in order to
2011 Jul 26
0
[PATCH] Btrfs: use bytes_may_use for all ENOSPC reservations
We have been using bytes_reserved for metadata reservations, which is wrong
since we use that to keep track of outstanding reservations from the allocator.
This resulted in us doing a lot of silly things to make sure we don''t allocate a
bunch of metadata chunks since we never had a real view of how much space was
actually in use by metadata.
There are a lot of fixes in here to make this
2011 Jul 27
0
[PATCH] Btrfs: use bytes_may_use for all ENOSPC reservations V2
We have been using bytes_reserved for metadata reservations, which is wrong
since we use that to keep track of outstanding reservations from the allocator.
This resulted in us doing a lot of silly things to make sure we don''t allocate a
bunch of metadata chunks since we never had a real view of how much space was
actually in use by metadata.
There are a lot of fixes in here to make this
2012 Jan 11
12
[PATCH 00/11] Btrfs: some patches for 3.3
The biggest one is a fix for fstrim, and there''s a fix for on-disk
free space cache. Others are small fixes and cleanups.
The last three have been sent weeks ago.
The patchset is also available in this repo:
git://repo.or.cz/linux-btrfs-devel.git for-chris
Note there''s a small confict with Al Viro''s vfs changes.
Li Zefan (11):
Btrfs: add pinned extents to
2007 Nov 12
0
[PATCH]Minor fix for find_search_start
Hello,
This patch adds a new parameter 'full_scan' to 'find_search_start',
thereby 'find_search_start' can know whether 'find_free_extent' is in
full scan phrase. I feel that 'find_search_start' should skip calling
'btrfs_find_block_group' when 'find_free_extent' is in full scan
phrase. In my test on a 2GB volume, Oops occurs when space
2010 Mar 02
3
2.6.33 high cpu usage
With the ATI bug I was hitting earlier fixed, only my btrfs partition
continues to show high cpu usage for some operations.
Rsync, git pull, git checkout and svn up are typicall operations which
trigger the high cpu usage.
As an example, this perf report is from using git checkout to change to
a new branch; the change needed to checkout 208 files out of about 1600
total files. du(1) reports
2010 Apr 19
0
Memory barrier not required in cached_block_group
Hi all,
It seems like memory barrier is not required in cached_block_group.I
am looking at kernel 2.6.34-rc2.
cache_block_group(struct btrfs_block_group_cache *cache)
{
smp_mb();
if (cache->cached != BTRFS_CACHE_NO)
return 0;
....
}
This function is called from btrfs_alloc_logged_file_extent and
find_free_extent.
In btrfs_alloc_logged_file_extent the code snippet is as follows
2008 Oct 27
0
[PATCH 3/4] update nodatacow code
Hello,
This patch simplifies the nodatacow checker. If all references
were created after the latest snapshot, then we can avoid COW
safely. This patch also updates run_delalloc_nocow to do more
fine-grained checking.
Regards
Signed-off-by: Yan Zheng <zheng.yan@oracle.com>
---
diff -urp 3/fs/btrfs/ctree.h 4/fs/btrfs/ctree.h
--- 3/fs/btrfs/ctree.h 2008-10-27 16:31:51.000000000 +0800
+++
2007 Aug 09
1
[RFC] All my fsync changes
Hello,
Ok here are all my fsync changes, including the fix for the put_transaction
stuff that I posted earlier. I figure it'll be easier to just commit it as one
thing then each individual peice. The additional thing that I did was add a
radix tree that tracks the current outstanding transactions. I also added a
field to the in memory btrfs inode that keeps track of the last transaction
2010 May 11
0
[PATCH 4/5] btrfs: don't cache empty block groups during mount
the tree log recover code expects no free space cached before it executes.
Signed-off-by: Yan Zheng <zheng.yan@oracle.com>
---
diff -urp 4/fs/btrfs/extent-tree.c 8/fs/btrfs/extent-tree.c
--- 4/fs/btrfs/extent-tree.c 2010-05-11 14:15:29.174108554 +0800
+++ 8/fs/btrfs/extent-tree.c 2010-05-11 13:26:38.036107000 +0800
@@ -316,11 +329,6 @@ static int caching_kthread(void *data)
if (!path)
2009 Jun 03
0
[PATCH] Make sure all dirty blocks are written at commit time
Write dirty block groups may allocate new block, thus
may add new delayed back ref. btrfs_run_delayed_refs may
make some block groups dirty. commit_cowonly_roots does
not handle the recursion properly, so some dirty blocks
can be left unwritten at commit time. This patch move
btrfs_run_delayed_refs into the loop that writes dirty
block groups, and make the code not break out of the loop
until
2002 Mar 09
1
another quota related ext3fs crash...
hiya!
see the attached file for the resolved bug() call. my kernel spit out 185
messages like this:
Mar 9 17:15:13 srck@trottelkunde attempt to access beyond end of device
Mar 9 17:15:13 srck@trottelkunde 16:42: rw=0, want=0, limit=12289725
right before the bug().
this message didn't get parsed by ksymoops
Mar 9 17:15:13 srck@trottelkunde Assertion failure in journal_start() at
2009 Aug 24
0
[PATCH] Btrfs: proper metadata -ENOSPC handling
This patch finally gives us full proper -ENOSPC handling for btrfs. Now
whenever you do a btrfs_start_transaction, you must specify the number of items
you are planning to add/delete/modify. The worst case number of blocks that
could be modified by changing that number of items will be calculated and
checked against the amount of free space in the space_info where the root you
are modifying
2010 Sep 03
0
[PATCH 1/2] btrfs: document where we use BUG_ON instead of error handling
Document those places in the btrfs code which are BUGing on non-fatal error
conditions that should be handled by proper error paths. This makes it
easier to distinguish between what needs fixing versus which BUG_ON''s we
might want to keep (to trap code bugs, unexpected inconsistencies, etc).
Do this with a trivial macro, ''btrfs_fixable_bug_on'' which just defines to