diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2012-10-09 21:49:20 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2012-10-09 21:49:20 -0400 |
commit | 72055425e53540d9d0e59a57ac8c9b8ce77b62d5 (patch) | |
tree | 8033d7d7bfdf8725eed785d02f7121d201052d2e /fs/btrfs/free-space-cache.c | |
parent | fc81c038c2d61d4fcd8150f383fec1ce23087597 (diff) | |
parent | f46dbe3dee853f8a860f889cb2b7ff4c624f2a7a (diff) |
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs
Pull btrfs update from Chris Mason:
"This is a large pull, with the bulk of the updates coming from:
- Hole punching
- send/receive fixes
- fsync performance
- Disk format extension allowing more hardlinks inside a single
directory (btrfs-progs patch required to enable the compat bit for
this one)
I'm cooking more unrelated RAID code, but I wanted to make sure this
original batch makes it in. The largest updates here are relatively
old and have been in testing for some time."
* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs: (121 commits)
btrfs: init ref_index to zero in add_inode_ref
Btrfs: remove repeated eb->pages check in, disk-io.c/csum_dirty_buffer
Btrfs: fix page leakage
Btrfs: do not warn_on when we cannot alloc a page for an extent buffer
Btrfs: don't bug on enomem in readpage
Btrfs: cleanup pages properly when ENOMEM in compression
Btrfs: make filesystem read-only when submitting barrier fails
Btrfs: detect corrupted filesystem after write I/O errors
Btrfs: make compress and nodatacow mount options mutually exclusive
btrfs: fix message printing
Btrfs: don't bother committing delayed inode updates when fsyncing
btrfs: move inline function code to header file
Btrfs: remove unnecessary IS_ERR in bio_readpage_error()
btrfs: remove unused function btrfs_insert_some_items()
Btrfs: don't commit instead of overcommitting
Btrfs: confirmation of value is added before trace_btrfs_get_extent() is called
Btrfs: be smarter about dropping things from the tree log
Btrfs: don't lookup csums for prealloc extents
Btrfs: cache extent state when writing out dirty metadata pages
Btrfs: do not hold the file extent leaf locked when adding extent item
...
Diffstat (limited to 'fs/btrfs/free-space-cache.c')
-rw-r--r-- | fs/btrfs/free-space-cache.c | 10 |
1 files changed, 3 insertions, 7 deletions
diff --git a/fs/btrfs/free-space-cache.c b/fs/btrfs/free-space-cache.c index 6b10acfc2f5c..1027b854b90c 100644 --- a/fs/btrfs/free-space-cache.c +++ b/fs/btrfs/free-space-cache.c | |||
@@ -966,7 +966,7 @@ int __btrfs_write_out_cache(struct btrfs_root *root, struct inode *inode, | |||
966 | block_group->key.offset)) { | 966 | block_group->key.offset)) { |
967 | ret = find_first_extent_bit(unpin, start, | 967 | ret = find_first_extent_bit(unpin, start, |
968 | &extent_start, &extent_end, | 968 | &extent_start, &extent_end, |
969 | EXTENT_DIRTY); | 969 | EXTENT_DIRTY, NULL); |
970 | if (ret) { | 970 | if (ret) { |
971 | ret = 0; | 971 | ret = 0; |
972 | break; | 972 | break; |
@@ -1454,9 +1454,7 @@ static int search_bitmap(struct btrfs_free_space_ctl *ctl, | |||
1454 | max_t(u64, *offset, bitmap_info->offset)); | 1454 | max_t(u64, *offset, bitmap_info->offset)); |
1455 | bits = bytes_to_bits(*bytes, ctl->unit); | 1455 | bits = bytes_to_bits(*bytes, ctl->unit); |
1456 | 1456 | ||
1457 | for (i = find_next_bit(bitmap_info->bitmap, BITS_PER_BITMAP, i); | 1457 | for_each_set_bit_from(i, bitmap_info->bitmap, BITS_PER_BITMAP) { |
1458 | i < BITS_PER_BITMAP; | ||
1459 | i = find_next_bit(bitmap_info->bitmap, BITS_PER_BITMAP, i + 1)) { | ||
1460 | next_zero = find_next_zero_bit(bitmap_info->bitmap, | 1458 | next_zero = find_next_zero_bit(bitmap_info->bitmap, |
1461 | BITS_PER_BITMAP, i); | 1459 | BITS_PER_BITMAP, i); |
1462 | if ((next_zero - i) >= bits) { | 1460 | if ((next_zero - i) >= bits) { |
@@ -2307,9 +2305,7 @@ static int btrfs_bitmap_cluster(struct btrfs_block_group_cache *block_group, | |||
2307 | 2305 | ||
2308 | again: | 2306 | again: |
2309 | found_bits = 0; | 2307 | found_bits = 0; |
2310 | for (i = find_next_bit(entry->bitmap, BITS_PER_BITMAP, i); | 2308 | for_each_set_bit_from(i, entry->bitmap, BITS_PER_BITMAP) { |
2311 | i < BITS_PER_BITMAP; | ||
2312 | i = find_next_bit(entry->bitmap, BITS_PER_BITMAP, i + 1)) { | ||
2313 | next_zero = find_next_zero_bit(entry->bitmap, | 2309 | next_zero = find_next_zero_bit(entry->bitmap, |
2314 | BITS_PER_BITMAP, i); | 2310 | BITS_PER_BITMAP, i); |
2315 | if (next_zero - i >= min_bits) { | 2311 | if (next_zero - i >= min_bits) { |