All of lore.kernel.org
 help / color / mirror / Atom feed
* [GIT PULL] Btrfs
@ 2016-06-10 20:01 Chris Mason
  0 siblings, 0 replies; 128+ messages in thread
From: Chris Mason @ 2016-06-10 20:01 UTC (permalink / raw)
  To: Linus Torvalds, LKML, linux-btrfs

Hi Linus

My for-linus-4.7 branch:

git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs.git for-linus-4.7

Has some fixes and some new self tests for btrfs.  The self tests are
usually disabled in the .config file (unless you're doing btrfs dev
work), and this bunch is meant to find problems with the 64K page
size patches.

Jeff has a patch to help people see if they are using the hardware
assist crc32c module, which really helps us nail down problems when
people ask why crcs are using so much CPU.

Otherwise, it's small fixes.

Feifei Xu (8) commits (+475/-361):
    Btrfs: test_check_exists: Fix infinite loop when searching for free space entries (+2/-2)
    Btrfs: self-tests: Execute page straddling test only when nodesize < PAGE_SIZE (+30/-19)
    Btrfs: self-tests: Use macros instead of constants and add missing newline (+31/-18)
    Btrfs: self-tests: Support testing all possible sectorsizes and nodesizes (+32/-22)
    Btrfs: self-tests: Fix extent buffer bitmap test fail on BE system (+11/-1)
    Btrfs: Fix integer overflow when calculating bytes_per_bitmap (+7/-7)
    Btrfs: self-tests: Fix test_bitmaps fail on 64k sectorsize (+7/-1)
    Btrfs: self-tests: Support non-4k page size (+355/-291)

Liu Bo (3) commits (+104/-15):
    Btrfs: clear uptodate flags of pages in sys_array eb (+2/-0)
    Btrfs: add validadtion checks for chunk loading (+67/-15)
    Btrfs: add more validation checks for superblock (+35/-0)

Josef Bacik (1) commits (+1/-0):
    Btrfs: end transaction if we abort when creating uuid root

Jeff Mahoney (1) commits (+9/-2):
    btrfs: advertise which crc32c implementation is being used at module load

Vinson Lee (1) commits (+1/-1):
    btrfs: Use __u64 in exported linux/btrfs.h.

Total: (14) commits (+590/-379)

 fs/btrfs/ctree.c                       |   6 +-
 fs/btrfs/disk-io.c                     |  20 +-
 fs/btrfs/disk-io.h                     |   2 +-
 fs/btrfs/extent_io.c                   |  10 +-
 fs/btrfs/extent_io.h                   |   4 +-
 fs/btrfs/free-space-cache.c            |  18 +-
 fs/btrfs/hash.c                        |   5 +
 fs/btrfs/hash.h                        |   1 +
 fs/btrfs/super.c                       |  57 ++++--
 fs/btrfs/tests/btrfs-tests.c           |   6 +-
 fs/btrfs/tests/btrfs-tests.h           |  27 +--
 fs/btrfs/tests/extent-buffer-tests.c   |  13 +-
 fs/btrfs/tests/extent-io-tests.c       |  86 ++++++---
 fs/btrfs/tests/free-space-tests.c      |  76 +++++---
 fs/btrfs/tests/free-space-tree-tests.c |  30 +--
 fs/btrfs/tests/inode-tests.c           | 344 ++++++++++++++++++---------------
 fs/btrfs/tests/qgroup-tests.c          | 111 ++++++-----
 fs/btrfs/volumes.c                     | 109 +++++++++--
 include/uapi/linux/btrfs.h             |   2 +-
 19 files changed, 569 insertions(+), 358 deletions(-)

^ permalink raw reply	[flat|nested] 128+ messages in thread

* [GIT PULL] Btrfs
@ 2017-06-10 13:00 Chris Mason
  0 siblings, 0 replies; 128+ messages in thread
From: Chris Mason @ 2017-06-10 13:00 UTC (permalink / raw)
  To: Linus Torvalds, Linux Kernel Mailing List, linux-btrfs

Hi Linus,

My for-linus-4.12 branch has some fixes that Dave Sterba collected:

git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs.git for-linus-4.12

We've been hitting an early enospc problem on production machines that
Omar tracked down to an old int->u64 mistake.  I waited a bit on
this pull to make sure it was really the problem from production,
but it's on ~2100 hosts now and I think we're good.

Omar also noticed a commit in the queue would make new early ENOSPC
problems.  I pulled that out for now, which is why the top three commits
are younger than the rest.

Otherwise these are all fixes, some explaining very old bugs that we've
been poking at for a while.

Jeff Mahoney (2) commits (+4/-3):
    btrfs: fix race with relocation recovery and fs_root setup (+3/-3)
    btrfs: fix memory leak in update_space_info failure path (+1/-0)

Liu Bo (1) commits (+1/-1):
    Btrfs: clear EXTENT_DEFRAG bits in finish_ordered_io

Colin Ian King (1) commits (+1/-1):
    btrfs: fix incorrect error return ret being passed to mapping_set_error

Omar Sandoval (1) commits (+2/-2):
    Btrfs: fix delalloc accounting leak caused by u32 overflow

Qu Wenruo (1) commits (+122/-2):
    btrfs: fiemap: Cache and merge fiemap extent before submit it to user

David Sterba (1) commits (+2/-2):
    btrfs: use correct types for page indices in btrfs_page_exists_in_range

Jan Kara (1) commits (+6/-4):
    btrfs: Make flush bios explicitely sync

Su Yue (1) commits (+1/-1):
    btrfs: tree-log.c: Wrong printk information about namelen

Total: (9) commits (+139/-16)

 fs/btrfs/ctree.h       |   4 +-
 fs/btrfs/dir-item.c    |   2 +-
 fs/btrfs/disk-io.c     |  10 ++--
 fs/btrfs/extent-tree.c |   7 +--
 fs/btrfs/extent_io.c   | 126 +++++++++++++++++++++++++++++++++++++++++++++++--
 fs/btrfs/inode.c       |   6 +--
 6 files changed, 139 insertions(+), 16 deletions(-)

^ permalink raw reply	[flat|nested] 128+ messages in thread

* Re: [GIT PULL] Btrfs
  2017-05-09 17:56 Chris Mason
@ 2017-05-09 18:01 ` Chris Mason
  0 siblings, 0 replies; 128+ messages in thread
From: Chris Mason @ 2017-05-09 18:01 UTC (permalink / raw)
  To: Linus Torvalds, Linux Kernel Mailing List, linux-btrfs

On 05/09/2017 01:56 PM, Chris Mason wrote:
> Hi Linus,
> 
> My for-linus-4.12 branch:
> 
> git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs.git for-linus-4.12

I hit send too soon, sorry.  There's a trivial conflict with our WARN_ON
fix that went into 4.11.  I pushed the resolution to
for-linus-4.12-merged.

diff --cc fs/btrfs/qgroup.c
index afbea61,3f75b5c..deffbeb
--- a/fs/btrfs/qgroup.c
+++ b/fs/btrfs/qgroup.c
@@@ -1078,7 -1031,8 +1034,8 @@@ static int __qgroup_excl_accounting(str
  	qgroup->excl += sign * num_bytes;
  	qgroup->excl_cmpr += sign * num_bytes;
  	if (sign > 0) {
+ 		trace_qgroup_update_reserve(fs_info, qgroup, -(s64)num_bytes);
 -		if (WARN_ON(qgroup->reserved < num_bytes))
 +		if (qgroup->reserved < num_bytes)
  			report_reserved_underflow(fs_info, qgroup, num_bytes);
  		else
  			qgroup->reserved -= num_bytes;
@@@ -1103,7 -1057,9 +1060,9 @@@
  		WARN_ON(sign < 0 && qgroup->excl < num_bytes);
  		qgroup->excl += sign * num_bytes;
  		if (sign > 0) {
+ 			trace_qgroup_update_reserve(fs_info, qgroup,
+ 						    -(s64)num_bytes);
 -			if (WARN_ON(qgroup->reserved < num_bytes))
 +			if (qgroup->reserved < num_bytes)
  				report_reserved_underflow(fs_info, qgroup,
  							  num_bytes);
  			else
@@@ -2472,7 -2451,8 +2454,8 @@@ void btrfs_qgroup_free_refroot(struct b
  
  		qg = unode_aux_to_qgroup(unode);
  
+ 		trace_qgroup_update_reserve(fs_info, qg, -(s64)num_bytes);
 -		if (WARN_ON(qg->reserved < num_bytes))
 +		if (qg->reserved < num_bytes)
  			report_reserved_underflow(fs_info, qg, num_bytes);
  		else
  			qg->reserved -= num_bytes;

^ permalink raw reply	[flat|nested] 128+ messages in thread

* [GIT PULL] Btrfs
@ 2017-05-09 17:56 Chris Mason
  2017-05-09 18:01 ` Chris Mason
  0 siblings, 1 reply; 128+ messages in thread
From: Chris Mason @ 2017-05-09 17:56 UTC (permalink / raw)
  To: Linus Torvalds, Linux Kernel Mailing List, linux-btrfs

Hi Linus,

My for-linus-4.12 branch:

git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs.git for-linus-4.12

Has fixes and cleanups Dave Sterba collected for the merge window.

The biggest functional fixes are between btrfs raid5/6 and scrub, and
raid5/6 and device replacement.  Some of our pending qgroup fixes are
included as well while I bash on the rest in testing.

We also have the usual set of cleanups, including one that
__btrfs_map_block() much more maintainable, and conversions from
atomic_t to refcount_t.

Elena Reshetova (16) commits (+141/-135):
    btrfs: convert btrfs_delayed_ref_node.refs from atomic_t to refcount_t (+14/-12)
    btrfs: convert btrfs_transaction.use_count from atomic_t to refcount_t (+16/-14)
    btrfs: convert compressed_bio.pending_bios from atomic_t to refcount_t (+9/-9)
    btrfs: convert btrfs_caching_control.count from atomic_t to refcount_t (+8/-7)
    btrfs: convert btrfs_ordered_extent.refs from atomic_t to refcount_t (+11/-11)
    btrfs: convert btrfs_delayed_item.refs from atomic_t to refcount_t (+10/-10)
    btrfs: convert btrfs_delayed_node.refs from atomic_t to refcount_t (+16/-16)
    btrfs: convert btrfs_raid_bio.refs from atomic_t to refcount_t (+9/-10)
    btrfs: convert scrub_recover.refs from atomic_t to refcount_t (+4/-4)
    btrfs: convert scrub_parity.refs from atomic_t to refcount_t (+4/-4)
    btrfs: convert extent_state.refs from atomic_t to refcount_t (+9/-8)
    btrfs: convert extent_map.refs from atomic_t to refcount_t (+12/-11)
    btrfs: convert scrub_block.refs from atomic_t to refcount_t (+5/-5)
    btrfs: convert btrfs_root.refs from atomic_t to refcount_t (+4/-4)
    btrfs: convert scrub_ctx.refs from atomic_t to refcount_t (+5/-5)
    btrfs: convert btrfs_bio.refs from atomic_t to refcount_t (+5/-5)

Liu Bo (15) commits (+640/-425):
    Btrfs: do not add extra mirror when dev_replace target dev is not available (+4/-3)
    Btrfs: introduce a function to get extra mirror from replace (+89/-72)
    Btrfs: fix wrong failed mirror_num of read-repair on raid56 (+5/-0)
    Btrfs: set scrub page's io_error if failing to submit io (+6/-2)
    Btrfs: handle operations for device replace separately (+98/-81)
    Btrfs: enable repair during read for raid56 profile (+27/-13)
    Btrfs: separate DISCARD from __btrfs_map_block (+175/-114)
    Btrfs: remove ASSERT in btrfs_truncate_inode_items (+0/-7)
    Btrfs: switch to div64_u64 if with a u64 divisor (+7/-7)
    Btrfs: update scrub_parity to use u64 stripe_len (+4/-4)
    Btrfs: helper for ops that requires full stripe (+10/-8)
    Btrfs: create a helper for getting chunk map (+57/-111)
    Btrfs: update comments in cache_save_setup (+2/-1)
    Btrfs: add file item tracepoints (+154/-0)
    Btrfs: convert BUG_ON to WARN_ON (+2/-2)

David Sterba (12) commits (+72/-86):
    btrfs: remove redundant parameter from reada_start_machine_dev (+3/-4)
    btrfs: remove unused qgroup members from btrfs_trans_handle (+0/-20)
    btrfs: preallocate radix tree node for global readahead tree (+8/-1)
    btrfs: sink GFP flags parameter to tree_mod_log_insert_root (+5/-5)
    btrfs: sink GFP flags parameter to tree_mod_log_insert_move (+5/-5)
    btrfs: remove local blocksize variable in reada_find_extent (+2/-4)
    btrfs: remove redundant parameter from btree_readahead_hook (+5/-6)
    btrfs: drop redundant parameters from btrfs_map_sblock (+6/-9)
    btrfs: track exclusive filesystem operation in flags (+25/-26)
    btrfs: remove redundant parameter from reada_find_zone (+3/-3)
    btrfs: preallocate radix tree node for readahead (+8/-1)
    btrfs: use clear_page where appropriate (+2/-2)

Qu Wenruo (10) commits (+510/-96):
    btrfs: qgroup: Re-arrange tracepoint timing to co-operate with reserved space tracepoint (+6/-10)
    btrfs: qgroup: Fix qgroup corruption caused by inode_cache mount option (+18/-7)
    btrfs: Wait for in-flight bios before freeing target device for raid56 (+21/-0)
    btrfs: Fix metadata underflow caused by btrfs_reloc_clone_csum error (+39/-12)
    btrfs: Handle delalloc error correctly to avoid ordered extent hang (+48/-15)
    btrfs: qgroup: Add trace point for qgroup reserved space (+96/-44)
    btrfs: Prevent scrub recheck from racing with dev replace (+9/-4)
    btrfs: scrub: Don't append on-disk pages for raid56 scrub (+0/-4)
    btrfs: scrub: Introduce full stripe lock for RAID56 (+251/-0)
    btrfs: scrub: Fix RAID56 recovery race condition (+22/-0)

Filipe Manana (5) commits (+192/-41):
    Btrfs: fix incorrect space accounting after failure to insert inline extent (+4/-2)
    Btrfs: fix invalid attempt to free reserved space on failure to cow range (+45/-18)
    Btrfs: send, fix file hole not being preserved due to inline extent (+21/-2)
    Btrfs: fix extent map leak during fallocate error path (+3/-1)
    Btrfs: fix reported number of inode blocks (+119/-18)

Anand Jain (3) commits (+7/-8):
    btrfs: use q which is already obtained from bdev_get_queue (+3/-4)
    btrfs: check if the device is flush capable (+4/-0)
    btrfs: delete unused member nobarriers (+0/-4)

Edmund Nadolski (2) commits (+25/-20):
    btrfs: provide enumeration for __merge_refs mode argument (+13/-10)
    btrfs: replace hardcoded value with SEQ_LAST macro (+12/-10)

Goldwyn Rodrigues (2) commits (+24/-3):
    btrfs: qgroups: Retry after commit on getting EDQUOT (+23/-1)
    btrfs: No need to check !(flags & MS_RDONLY) twice (+1/-2)

Chris Mason (1) commits (+2/-2):
    btrfs: fix the gfp_mask for the reada_zones radix tree

Adam Borowski (1) commits (+9/-3):
    btrfs: fix a bogus warning when converting only data or metadata

Deepa Dinamani (1) commits (+2/-1):
    btrfs: Use ktime_get_real_ts for root ctime

Dan Carpenter (1) commits (+15/-26):
    Btrfs: handle only applicable errors returned by btrfs_get_extent

Dmitry V. Levin (1) commits (+2/-0):
    MAINTAINERS: add btrfs file entries for include directories

Hans van Kranenburg (1) commits (+5/-5):
    Btrfs: consistent usage of types in balance_args

Total: (71) commits

 MAINTAINERS                  |   2 +
 fs/btrfs/backref.c           |  41 ++-
 fs/btrfs/btrfs_inode.h       |   7 +
 fs/btrfs/compression.c       |  18 +-
 fs/btrfs/ctree.c             |  20 +-
 fs/btrfs/ctree.h             |  34 +-
 fs/btrfs/delayed-inode.c     |  46 +--
 fs/btrfs/delayed-inode.h     |   6 +-
 fs/btrfs/delayed-ref.c       |   8 +-
 fs/btrfs/delayed-ref.h       |   8 +-
 fs/btrfs/dev-replace.c       |   9 +-
 fs/btrfs/disk-io.c           |  13 +-
 fs/btrfs/disk-io.h           |   4 +-
 fs/btrfs/extent-tree.c       |  35 +-
 fs/btrfs/extent_io.c         |  59 +--
 fs/btrfs/extent_io.h         |   8 +-
 fs/btrfs/extent_map.c        |  10 +-
 fs/btrfs/extent_map.h        |   3 +-
 fs/btrfs/file.c              |  82 ++++-
 fs/btrfs/free-space-cache.c  |   2 +-
 fs/btrfs/inode.c             | 289 +++++++++++----
 fs/btrfs/ioctl.c             |  33 +-
 fs/btrfs/ordered-data.c      |  20 +-
 fs/btrfs/ordered-data.h      |   2 +-
 fs/btrfs/qgroup.c            | 102 ++----
 fs/btrfs/qgroup.h            |  51 ++-
 fs/btrfs/raid56.c            |  38 +-
 fs/btrfs/reada.c             |  37 +-
 fs/btrfs/root-tree.c         |   3 +-
 fs/btrfs/scrub.c             | 331 +++++++++++++++--
 fs/btrfs/send.c              |  23 +-
 fs/btrfs/super.c             |   3 +-
 fs/btrfs/tests/btrfs-tests.c |   1 -
 fs/btrfs/transaction.c       |  48 ++-
 fs/btrfs/transaction.h       |   6 +-
 fs/btrfs/tree-log.c          |   2 +-
 fs/btrfs/volumes.c           | 854 +++++++++++++++++++++++--------------------
 fs/btrfs/volumes.h           |   8 +-
 include/trace/events/btrfs.h | 187 +++++++++-
 include/uapi/linux/btrfs.h   |  10 +-
 40 files changed, 1629 insertions(+), 834 deletions(-)

^ permalink raw reply	[flat|nested] 128+ messages in thread

* [GIT PULL] Btrfs
@ 2017-04-28  0:26 Chris Mason
  0 siblings, 0 replies; 128+ messages in thread
From: Chris Mason @ 2017-04-28  0:26 UTC (permalink / raw)
  To: Linus Torvalds, Linux Kernel Mailing List, linux-btrfs

Hi Linus,

We have one more for btrfs:

git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs.git for-linus-4.11

This is dropping a new WARN_ON from rc1 that ended up making more noise 
than we really want.  The larger fix for the underflow got delayed a bit 
and it's better for now to put it under CONFIG_BTRFS_DEBUG.

David Sterba (1) commits (+7/-4):
    btrfs: qgroup: move noisy underflow warning to debugging build

Total: (1) commits (+7/-4)

 fs/btrfs/qgroup.c | 11 +++++++----
 1 file changed, 7 insertions(+), 4 deletions(-)

^ permalink raw reply	[flat|nested] 128+ messages in thread

* [GIT PULL] Btrfs
@ 2017-04-14 18:28 Chris Mason
  0 siblings, 0 replies; 128+ messages in thread
From: Chris Mason @ 2017-04-14 18:28 UTC (permalink / raw)
  To: Linus Torvalds, Linux Kernel Mailing List, linux-btrfs

Hi Linus

Dave Sterba collected a few more fixes for the last rc:

git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs.git for-linus-4.11

These aren't marked for stable, but I'm putting them in with a batch 
were testing/sending by hand for this release.

Liu Bo (3) commits (+11/-13):
    Btrfs: fix invalid dereference in btrfs_retry_endio (+4/-10)
    Btrfs: fix potential use-after-free for cloned bio (+1/-1)
    Btrfs: fix segmentation fault when doing dio read (+6/-2)

Adam Borowski (1) commits (+3/-0):
    btrfs: drop the nossd flag when remounting with -o ssd

Total: (4) commits (+14/-13)

 fs/btrfs/inode.c   | 22 ++++++++++------------
 fs/btrfs/super.c   |  3 +++
 fs/btrfs/volumes.c |  2 +-
 3 files changed, 14 insertions(+), 13 deletions(-)

^ permalink raw reply	[flat|nested] 128+ messages in thread

* [GIT PULL] Btrfs
@ 2017-03-31 21:05 Chris Mason
  0 siblings, 0 replies; 128+ messages in thread
From: Chris Mason @ 2017-03-31 21:05 UTC (permalink / raw)
  To: Linus Torvalds, Linux Kernel Mailing List, linux-btrfs

Hi Linus,

We have 3 small fixes queued up in my for-linus-4.11 branch:

git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs.git for-linus-4.11

Goldwyn Rodrigues (1) commits (+7/-7):
    btrfs: Change qgroup_meta_rsv to 64bit

Dan Carpenter (1) commits (+6/-1):
    Btrfs: fix an integer overflow check

Liu Bo (1) commits (+31/-21):
    Btrfs: bring back repair during read

Total: (3) commits (+44/-29)

 fs/btrfs/ctree.h     |  2 +-
 fs/btrfs/disk-io.c   |  2 +-
 fs/btrfs/extent_io.c | 46 ++++++++++++++++++++++++++++------------------
 fs/btrfs/inode.c     |  6 +++---
 fs/btrfs/qgroup.c    | 10 +++++-----
 fs/btrfs/send.c      |  7 ++++++-
 6 files changed, 44 insertions(+), 29 deletions(-)

^ permalink raw reply	[flat|nested] 128+ messages in thread

* [GIT PULL] Btrfs
@ 2017-03-23 15:09 Chris Mason
  0 siblings, 0 replies; 128+ messages in thread
From: Chris Mason @ 2017-03-23 15:09 UTC (permalink / raw)
  To: Linus Torvalds, Linux Kernel Mailing List, linux-btrfs

Hi Linus

We have a small set of fixes for the next RC:

git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs.git for-linus-4.11

Zygo tracked down a very old bug with inline compressed extents.
I didn't tag this one for stable because I want to do individual tested 
backports.  It's a little tricky and I'd rather do some extra testing
on it along the way.

Otherwise they are pretty obvious:

Liu Bo (1) commits (+2/-1):
    Btrfs: fix regression in lock_delalloc_pages

Dmitry V. Levin (1) commits (+0/-27):
    btrfs: remove btrfs_err_str function from uapi/linux/btrfs.h

Zygo Blaxell (1) commits (+14/-0):
    btrfs: add missing memset while reading compressed inline extents

Total: (3) commits (+16/-28)

 fs/btrfs/extent_io.c       |  3 ++-
 fs/btrfs/inode.c           | 14 ++++++++++++++
 include/uapi/linux/btrfs.h | 27 ---------------------------
 3 files changed, 16 insertions(+), 28 deletions(-)

^ permalink raw reply	[flat|nested] 128+ messages in thread

* [GIT PULL] Btrfs
@ 2017-03-02 20:19 Chris Mason
  0 siblings, 0 replies; 128+ messages in thread
From: Chris Mason @ 2017-03-02 20:19 UTC (permalink / raw)
  To: Linus Torvalds, Linux Kernel Mailing List, linux-btrfs

Hi Linus,

My for-linus-4.11 branch:

git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs.git for-linus-4.11

Has Btrfs round two.  These are mostly a continuation of Dave Sterba's collection
of cleanups, but Filipe also has some bug fixes and performance improvements.

Nikolay Borisov (42) commits (+611/-579):
    btrfs: Make lock_and_cleanup_extent_if_need take btrfs_inode (+14/-14)
    btrfs: Make btrfs_delalloc_reserve_metadata take btrfs_inode (+39/-38)
    btrfs: Make btrfs_extent_item_to_extent_map take btrfs_inode (+10/-8)
    btrfs: all btrfs_delalloc_release_metadata take btrfs_inode (+22/-19)
    btrfs: make btrfs_inode_resume_unlocked_dio take btrfs_inode (+3/-4)
    btrfs: make btrfs_alloc_data_chunk_ondemand take btrfs_inode (+7/-6)
    btrfs: make btrfs_inode_block_unlocked_dio take btrfs_inode (+3/-3)
    btrfs: Make btrfs_orphan_release_metadata take btrfs_inode (+8/-8)
    btrfs: Make btrfs_orphan_reserve_metadata take btrfs_inode (+7/-7)
    btrfs: Make check_parent_dirs_for_sync take btrfs_inode (+14/-14)
    btrfs: make btrfs_free_io_failure_record take btrfs_inode (+9/-7)
    btrfs: Make btrfs_lookup_ordered_range take btrfs_inode (+19/-18)
    btrfs: Make (__)btrfs_add_inode_defrag take btrfs_inode (+17/-16)
    btrfs: make btrfs_print_data_csum_error take btrfs_inode (+8/-7)
    btrfs: make btrfs_is_free_space_inode take btrfs_inode (+20/-19)
    btrfs: make btrfs_set_inode_index_count take btrfs_inode (+8/-8)
    btrfs: Make btrfs_requeue_inode_defrag take btrfs_inode (+5/-5)
    btrfs: Make clone_update_extent_map take btrfs_inode (+13/-14)
    btrfs: Make btrfs_mark_extent_written take btrfs_inode (+6/-6)
    btrfs: Make btrfs_drop_extent_cache take btrfs_inode (+30/-26)
    btrfs: Make calc_csum_metadata_size take btrfs_inode (+12/-15)
    btrfs: Make drop_outstanding_extent take btrfs_inode (+11/-12)
    btrfs: Make btrfs_del_delalloc_inode take btrfs_inode (+7/-7)
    btrfs: make btrfs_log_inode_parent take btrfs_inode (+24/-26)
    btrfs: Make btrfs_set_inode_index take btrfs_inode (+13/-13)
    btrfs: Make btrfs_clear_bit_hook take btrfs_inode (+25/-21)
    btrfs: Make check_extent_to_block take btrfs_inode (+6/-5)
    btrfs: make check_compressed_csum take btrfs_inode (+4/-5)
    btrfs: Make btrfs_insert_dir_item take btrfs_inode (+7/-7)
    btrfs: Make btrfs_log_all_parents take btrfs_inode (+5/-5)
    btrfs: Make btrfs_i_size_write take btrfs_inode (+18/-19)
    btrfs: make repair_io_failure take btrfs_inode (+12/-11)
    btrfs: Make btrfs_orphan_add take btrfs_inode (+24/-22)
    btrfs: make btrfs_orphan_del take btrfs_inode (+20/-20)
    btrfs: make clean_io_failure take btrfs_inode (+15/-14)
    btrfs: Make btrfs_add_nondir take btrfs_inode (+13/-9)
    btrfs: make free_io_failure take btrfs_inode (+13/-11)
    btrfs: Make check_can_nocow take btrfs_inode (+12/-10)
    btrfs: Make btrfs_add_link take btrfs_inode (+26/-23)
    btrfs: Make get_extent_t take btrfs_inode (+59/-54)
    btrfs: Make hole_mergeable take btrfs_inode (+5/-4)
    btrfs: Make fill_holes take btrfs_inode (+18/-19)

David Sterba (16) commits (+139/-124):
    btrfs: use predefined limits for calculating maximum number of pages for compression (+6/-5)
    btrfs: derive maximum output size in the compression implementation (+9/-14)
    btrfs: merge nr_pages input and output parameter in compress_pages (+11/-15)
    btrfs: merge length input and output parameter in compress_pages (+18/-20)
    btrfs: add dummy callback for readpage_io_failed and drop checks (+10/-3)
    btrfs: do proper error handling in btrfs_insert_xattr_item (+2/-1)
    btrfs: drop checks for mandatory extent_io_ops callbacks (+3/-4)
    btrfs: constify device path passed to relevant helpers (+22/-18)
    btrfs: document existence of extent_io ops callbacks (+26/-11)
    btrfs: handle allocation error in update_dev_stat_item (+2/-1)
    btrfs: export compression buffer limits in a header (+15/-10)
    btrfs: constify name of subvolume in creation helpers (+3/-3)
    btrfs: constify buffers used by compression helpers (+3/-3)
    btrfs: remove BUG_ON from __tree_mod_log_insert (+0/-2)
    btrfs: constify input buffer of btrfs_csum_data (+3/-3)
    btrfs: let writepage_end_io_hook return void (+6/-11)

Filipe Manana (8) commits (+163/-27):
    Btrfs: do not create explicit holes when replaying log tree if NO_HOLES enabled (+5/-0)
    Btrfs: try harder to migrate items to left sibling before splitting a leaf (+7/-0)
    Btrfs: fix assertion failure when freeing block groups at close_ctree() (+9/-6)
    Btrfs: incremental send, fix unnecessary hole writes for sparse files (+86/-2)
    Btrfs: fix use-after-free due to wrong order of destroying work queues (+7/-2)
    Btrfs: incremental send, do not delay rename when parent inode is new (+16/-3)
    Btrfs: fix data loss after truncate when using the no-holes feature (+6/-13)
    Btrfs: bulk delete checksum items in the same leaf (+27/-1)

Robbie Ko (3) commits (+25/-3):
    Btrfs: send, fix failure to rename top level inode due to name collision (+4/-1)
    Btrfs: incremental send, do not issue invalid rmdir operations (+13/-0)
    Btrfs: fix leak of subvolume writers counter (+8/-2)

Total: (69) commits (+938/-733)

 fs/btrfs/btrfs_inode.h       |  31 ++-
 fs/btrfs/compression.c       |  43 ++---
 fs/btrfs/compression.h       |  30 ++-
 fs/btrfs/ctree.c             |   9 +-
 fs/btrfs/ctree.h             |  39 ++--
 fs/btrfs/delayed-inode.c     |   2 +-
 fs/btrfs/dev-replace.c       |   5 +-
 fs/btrfs/dev-replace.h       |   5 +-
 fs/btrfs/dir-item.c          |   9 +-
 fs/btrfs/disk-io.c           |  32 ++--
 fs/btrfs/disk-io.h           |   2 +-
 fs/btrfs/extent-tree.c       | 144 +++++++-------
 fs/btrfs/extent_io.c         |  75 ++++----
 fs/btrfs/extent_io.h         |  50 +++--
 fs/btrfs/file-item.c         |  40 +++-
 fs/btrfs/file.c              | 139 +++++++-------
 fs/btrfs/free-space-cache.c  |   5 +-
 fs/btrfs/inode-map.c         |   2 +-
 fs/btrfs/inode.c             | 445 ++++++++++++++++++++++---------------------
 fs/btrfs/ioctl.c             |  38 ++--
 fs/btrfs/lzo.c               |  12 +-
 fs/btrfs/ordered-data.c      |   9 +-
 fs/btrfs/ordered-data.h      |   7 +-
 fs/btrfs/relocation.c        |  17 +-
 fs/btrfs/scrub.c             |  11 +-
 fs/btrfs/send.c              | 125 +++++++++++-
 fs/btrfs/tests/inode-tests.c |  46 ++---
 fs/btrfs/transaction.c       |   6 +-
 fs/btrfs/tree-log.c          |  97 +++++-----
 fs/btrfs/volumes.c           |  21 +-
 fs/btrfs/volumes.h           |  12 +-
 fs/btrfs/zlib.c              |   9 +-
 32 files changed, 861 insertions(+), 656 deletions(-)

^ permalink raw reply	[flat|nested] 128+ messages in thread

* [GIT PULL] Btrfs
@ 2017-02-25  0:56 Chris Mason
  0 siblings, 0 replies; 128+ messages in thread
From: Chris Mason @ 2017-02-25  0:56 UTC (permalink / raw)
  To: Linus Torvalds, Linux Kernel Mailing List, linux-btrfs

Hi Linus,

My for-linus-4.11 branch:

git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs.git for-linus-4.11

Has a series of fixes and cleanups that Dave Sterba has been collecting:

There is a pretty big variety here, cleaning up internal APIs and fixing 
corner cases.

David Sterba (46) commits (+235/-313):
     btrfs: remove unused parameter from btrfs_subvolume_release_metadata (+6/-11)
     btrfs: remove pointless rcu protection from btrfs_qgroup_inherit (+0/-2)
     btrfs: check quota status earlier and don't do unnecessary frees (+3/-2)
     btrfs: remove unused parameter from btrfs_prepare_extent_commit (+3/-5)
     btrfs: remove unnecessary mutex lock in qgroup_account_snapshot (+1/-5)
     btrfs: embed extent_changeset::range_changed to the structure (+11/-17)
     btrfs: remove unused parameter from cleanup_write_cache_enospc (+2/-3)
     btrfs: remove unused parameters from __btrfs_write_out_cache (+3/-8)
     btrfs: remove unused parameter from clone_copy_inline_extent (+2/-3)
     btrfs: remove unused parameter from extent_write_cache_pages (+2/-4)
     btrfs: remove unused parameter from tree_move_next_or_upnext (+2/-4)
     btrfs: remove unused parameter from btrfs_check_super_valid (+3/-5)
     btrfs: remove unused logic of limiting async delalloc pages (+0/-7)
     btrfs: fix over-80 lines introduced by previous cleanups (+74/-63)
     btrfs: remove unused parameter from read_block_for_search (+5/-5)
     btrfs: remove unused parameter from adjust_slots_upwards (+2/-3)
     btrfs: remove unused parameter from init_first_rw_device (+3/-5)
     btrfs: make space cache inode readahead failure nonfatal (+3/-7)
     btrfs: remove unused parameters from scrub_setup_wr_ctx (+3/-7)
     btrfs: remove unused parameter from __btrfs_alloc_chunk (+4/-6)
     btrfs: add wrapper for counting BTRFS_MAX_EXTENT_SIZE (+23/-31)
     btrfs: remove unused parameter from submit_extent_page (+3/-9)
     btrfs: remove unused parameter from clean_tree_block (+17/-19)
     btrfs: use GFP_KERNEL in btrfs_add/del_qgroup_relation (+2/-2)
     btrfs: remove unused parameter from __add_inline_refs (+2/-3)
     btrfs: remove unused parameter from add_pending_csums (+2/-4)
     btrfs: remove unused parameter from update_nr_written (+4/-4)
     btrfs: remove unused parameter from __push_leaf_right (+2/-3)
     btrfs: remove unused parameter from check_async_write (+2/-2)
     btrfs: remove unused parameter from btrfs_fill_super (+2/-3)
     btrfs: remove unused parameter from __push_leaf_left (+2/-3)
     btrfs: remove unused parameter from write_dev_supers (+3/-3)
     btrfs: remove unused parameter from __add_inode_ref (+1/-2)
     btrfs: remove unused parameters from btrfs_cmp_data (+2/-3)
     btrfs: remove unused parameter from create_snapshot (+2/-2)
     btrfs: ulist: make the finalization function public (+2/-1)
     btrfs: remove unused parameter from tree_move_down (+2/-2)
     btrfs: ulist: rename ulist_fini to ulist_release (+10/-10)
     btrfs: qgroups: make __del_qgroup_relation static (+1/-1)
     btrfs: use GFP_KERNEL in btrfs_read_qgroup_config (+1/-1)
     btrfs: remove unused parameter from split_item (+2/-3)
     btrfs: merge two superblock writing helpers (+4/-11)
     btrfs: qgroups: opencode qgroup_free helper (+9/-9)
     btrfs: use GFP_KERNEL in btrfs_quota_enable (+1/-1)
     btrfs: use GFP_KERNEL in create_snapshot (+2/-2)
     btrfs: remove unused ulist members (+0/-7)

Nikolay Borisov (36) commits (+476/-480):
     btrfs: Make btrfs_delayed_inode_reserve_metadata take btrfs_inode (+8/-8)
     btrfs: Make btrfs_inode_delayed_dir_index_count take btrfs_inode (+5/-5)
     btrfs: Make btrfs_commit_inode_delayed_items take btrfs_inode (+4/-4)
     btrfs: Make btrfs_commit_inode_delayed_inode take btrfs_inode (+6/-6)
     btrfs: Make btrfs_get_or_create_delayed_node take btrfs_inode (+5/-6)
     btrfs: Make btrfs_kill_delayed_inode_items take btrfs_inode (+4/-4)
     btrfs: Make btrfs_delayed_delete_inode_ref take btrfs_inode (+5/-5)
     btrfs: Make btrfs_delete_delayed_dir_index take btrfs_inode (+6/-6)
     btrfs: Make btrfs_insert_delayed_dir_index take btrfs_inode (+5/-5)
     btrfs: Make btrfs_check_ref_name_override take btrfs_inode (+4/-5)
     btrfs: Make btrfs_record_snapshot_destroy take btrfs_inode (+6/-6)
     btrfs: Make btrfs_must_commit_transaction take btrfs_inode (+9/-9)
     btrfs: Make btrfs_del_dir_entries_in_log take btrfs_inode (+7/-7)
     btrfs: Make btrfs_log_changed_extents take btrfs_inode (+11/-11)
     btrfs: Make btrfs_record_unlink_dir take btrfs_inode (+14/-14)
     btrfs: Make btrfs_remove_delayed_node take btrfs_inode (+5/-5)
     btrfs: Make btrfs_get_logged_extents take btrfs_inode (+4/-4)
     btrfs: Make btrfs_log_trailing_hole take btrfs_inode (+4/-4)
     btrfs: Make btrfs_get_delayed_node take btrfs_inode (+8/-9)
     btrfs: Make btrfs_ino take a struct btrfs_inode (+151/-151)
     btrfs: Make log_directory_changes take btrfs_inode (+5/-6)
     btrfs: Make btrfs_unlink_inode take btrfs_inode (+50/-44)
     btrfs: Make log_new_dir_dentries take btrfs_inode (+4/-4)
     btrfs: Make btrfs_log_all_xattrs take btrfs_inode (+5/-5)
     btrfs: Make btrfs_log_new_name take btrfs_inode (+13/-15)
     btrfs: Make btrfs_inode_in_log take btrfs_inode (+18/-20)
     btrfs: Make count_inode_extrefs take btrfs_inode (+3/-3)
     btrfs: Make btrfs_del_inode_ref take btrfs_inode (+7/-7)
     btrfs: Make btrfs_log_inode take btrfs_inode (+48/-49)
     btrfs: Make __add_inode_ref take btrfs_inode (+13/-12)
     btrfs: Make drop_one_dir_item take btrfs_inode (+6/-6)
     btrfs: Make logged_inode_size take btrfs_inode (+3/-3)
     btrfs: Make count_inode_refs take btrfs_inode (+3/-3)
     btrfs: Make log_inode_item take btrfs_inode (+5/-5)
     btrfs: Make log_dir_items take btrfs_inode (+3/-3)
     btrfs: Make copy_items take btrfs_inode (+19/-21)

Liu Bo (17) commits (+269/-337):
     Btrfs: fix btrfs_ordered_update_i_size to update disk_i_size properly (+26/-2)
     Btrfs: kill trans in run_delalloc_nocow and btrfs_cross_ref_exist (+16/-47)
     Btrfs: pass delayed_refs directly to btrfs_find_delayed_ref_head (+7/-9)
     Btrfs: fix another race between truncate and lockless dio write (+3/-1)
     btrfs: teach __process_pages_contig about PAGE_LOCK operation (+44/-7)
     Btrfs: create helper for processing bits on contiguous pages (+22/-15)
     Btrfs: cleanup unused cached_state in __extent_writepage_io (+1/-8)
     Btrfs: specify a new ordered extent type for create_io_em (+6/-4)
     Btrfs: use the correct type when creating cow dio extent (+1/-1)
     Btrfs: fix wrong argument for btrfs_lookup_ordered_range (+1/-1)
     Btrfs: try to avoid acquiring free space ctl's lock (+13/-11)
     Btrfs: use helper to get used bytes of space_info (+19/-22)
     Btrfs: remove unused trans in read_block_for_search (+8/-9)
     Btrfs: use helper to simplify lock/unlock pages (+10/-64)
     Btrfs: create a helper to create em for IO (+74/-115)
     Btrfs: clean up btrfs_ordered_update_i_size (+13/-16)
     Btrfs: fix comment in btrfs_page_mkwrite (+5/-5)

Jeff Mahoney (8) commits (+150/-139):
     btrfs: pass fs_info to (more) routines that are only called with extent_root (+53/-50)
     btrfs: drop unused extent_op arg from btrfs_add_delayed_data_ref (+6/-10)
     btrfs: use btrfs_debug instead of pr_debug in transaction abort (+2/-1)
     btrfs: free-space-cache, clean up unnecessary root arguments (+22/-26)
     btrfs: btrfs_truncate_free_space_cache always allocates path (+7/-7)
     btrfs: convert btrfs_inc_block_group_ro to accept fs_info (+5/-6)
     btrfs: flush_space always takes fs_info->fs_root (+10/-10)
     btrfs: allow unlink to exceed subvolume quota (+45/-29)

Qu Wenruo (4) commits (+123/-25):
     btrfs: qgroup: Move half of the qgroup accounting time out of commit trans (+75/-11)
     btrfs: Better csum error message for data csum mismatch (+22/-7)
     btrfs: raid56: Remove unused variable in lock_stripe_add (+0/-2)
     btrfs: Add WARN_ON for qgroup reserved underflow (+26/-5)

Anand Jain (3) commits (+14/-14):
     btrfs: btrfs_defrag_root() doesn't defrag extent root tree (+0/-3)
     btrfs: use BTRFS_COMPRESS_NONE to specify no compression (+3/-3)
     btrfs: consolidate auto defrag kick off policies (+11/-8)

Omar Sandoval (2) commits (+81/-85):
     Btrfs: constify struct btrfs_{,disk_}key wherever possible (+69/-64)
     Btrfs: refactor btrfs_extent_same() slightly (+12/-21)

Seraphime Kirkovski (2) commits (+13/-13):
     Btrfs: code cleanup min/max -> min_t/max_t (+3/-3)
     Btrfs: ACCESS_ONCE cleanup (+10/-10)

Michal Hocko (2) commits (+6/-3):
     btrfs: fix up misleading GFP_NOFS usage in btrfs_releasepage (+6/-1)
     btrfs: drop gfp mask tweaking in try_release_extent_state (+0/-2)

Filipe Manana (1) commits (+12/-2):
     Btrfs: fix deadlock between dedup on same file and starting writeback

Takafumi Kubota (1) commits (+6/-2):
     Btrfs: add another missing end_page_writeback on submit_extent_page failure

Colin Ian King (1) commits (+0/-3):
     btrfs: remove redundant inode null check

Geliang Tang (1) commits (+4/-4):
     btrfs: use rb_entry() instead of container_of

Total: (124) commits (+1389/-1420)

  fs/btrfs/backref.c           |   7 +-
  fs/btrfs/btrfs_inode.h       |  44 ++--
  fs/btrfs/compression.c       |   6 +-
  fs/btrfs/ctree.c             | 128 +++++-----
  fs/btrfs/ctree.h             |  84 ++++---
  fs/btrfs/delayed-inode.c     |  57 +++--
  fs/btrfs/delayed-inode.h     |  16 +-
  fs/btrfs/delayed-ref.c       |  31 ++-
  fs/btrfs/delayed-ref.h       |   6 +-
  fs/btrfs/dir-item.c          |   5 +-
  fs/btrfs/disk-io.c           |  29 +--
  fs/btrfs/disk-io.h           |   6 +-
  fs/btrfs/export.c            |  13 +-
  fs/btrfs/extent-tree.c       | 282 +++++++++++----------
  fs/btrfs/extent_io.c         | 213 ++++++++--------
  fs/btrfs/extent_io.h         |   5 +-
  fs/btrfs/file-item.c         |   8 +-
  fs/btrfs/file.c              |  17 +-
  fs/btrfs/free-space-cache.c  |  65 ++---
  fs/btrfs/free-space-cache.h  |   7 +-
  fs/btrfs/free-space-tree.c   |   2 +-
  fs/btrfs/inode-map.c         |   2 +-
  fs/btrfs/inode.c             | 582 +++++++++++++++++++------------------------
  fs/btrfs/ioctl.c             | 109 ++++----
  fs/btrfs/ordered-data.c      |  47 ++--
  fs/btrfs/ordered-data.h      |   4 +-
  fs/btrfs/props.c             |   4 +-
  fs/btrfs/qgroup.c            | 163 +++++++-----
  fs/btrfs/qgroup.h            |  36 ++-
  fs/btrfs/raid56.c            |   2 -
  fs/btrfs/relocation.c        |  25 +-
  fs/btrfs/root-tree.c         |   6 +-
  fs/btrfs/scrub.c             |  12 +-
  fs/btrfs/super.c             |   7 +-
  fs/btrfs/transaction.c       |  58 +++--
  fs/btrfs/tree-log.c          | 299 +++++++++++-----------
  fs/btrfs/tree-log.h          |  14 +-
  fs/btrfs/ulist.c             |  10 +-
  fs/btrfs/ulist.h             |   8 +-
  fs/btrfs/volumes.c           |  18 +-
  fs/btrfs/xattr.c             |  16 +-
  include/trace/events/btrfs.h |   2 +-
  42 files changed, 1212 insertions(+), 1243 deletions(-)

^ permalink raw reply	[flat|nested] 128+ messages in thread

* [GIT PULL] Btrfs
@ 2017-02-11 13:18 Chris Mason
  0 siblings, 0 replies; 128+ messages in thread
From: Chris Mason @ 2017-02-11 13:18 UTC (permalink / raw)
  To: Linus Torvalds, Linux Kernel Mailing List, linux-btrfs

Hi Linus,

My for-linus-4.10 branch:

git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs.git for-linus-4.10

Has two last minute fixes.  The highest priority here is a regression 
fix for the decompression code, but we also fixed up a problem with the 
32 bit compat ioctls.

The decompression bug could hand back the wrong data on big reads when 
zlib was used.  I have a larger cleanup to make the math here less error 
prone, but at this stage in the release Omar's patch is the best choice.

Omar Sandoval (1) commits (+24/-15):
     Btrfs: fix btrfs_decompress_buf2page()

Jeff Mahoney (1) commits (+4/-2):
     btrfs: fix btrfs_compat_ioctl failures on non-compat ioctls

Total: (2) commits (+28/-17)

  fs/btrfs/compression.c | 39 ++++++++++++++++++++++++---------------
  fs/btrfs/ioctl.c       |  6 ++++--
  2 files changed, 28 insertions(+), 17 deletions(-)

^ permalink raw reply	[flat|nested] 128+ messages in thread

* [GIT PULL] Btrfs
@ 2017-01-27 19:37 Chris Mason
  0 siblings, 0 replies; 128+ messages in thread
From: Chris Mason @ 2017-01-27 19:37 UTC (permalink / raw)
  To: Linus Torvalds, Linux Kernel Mailing List, linux-btrfs

Hi Linus,

My for-linus-4.10 branch:

git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs.git for-linus-4.10

Has some fixes that we've collected from the list.  We still have one 
more pending to nail down a regression in lzo compression, but I wanted 
to get this batch out the door.

Omar Sandoval (3) commits (+2/-6):
     Btrfs: remove ->{get, set}_acl() from btrfs_dir_ro_inode_operations (+0/-2)
     Btrfs: remove old tree_root case in btrfs_read_locked_inode() (+1/-4)
     Btrfs: disable xattr operations on subvolume directories (+1/-0)

Liu Bo (1) commits (+12/-1):
     Btrfs: fix truncate down when no_holes feature is enabled

Chandan Rajendra (1) commits (+2/-2):
     Btrfs: Fix deadlock between direct IO and fast fsync

Wang Xiaoguang (1) commits (+1/-0):
     btrfs: fix false enospc error when truncating heavily reflinked file

Total: (6) commits (+17/-9)

  fs/btrfs/inode.c | 26 +++++++++++++++++---------
  1 file changed, 17 insertions(+), 9 deletions(-)

^ permalink raw reply	[flat|nested] 128+ messages in thread

* [GIT PULL] Btrfs
@ 2016-12-16 17:01 Chris Mason
  0 siblings, 0 replies; 128+ messages in thread
From: Chris Mason @ 2016-12-16 17:01 UTC (permalink / raw)
  To: Linus Torvalds, linux-btrfs, LKML

Hi Linus,

My for-linus-4.10 branch has our merge window fun:

git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs.git for-linus-4.10

There is a trivial conflict with your current git, my resolution is
here:

git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs.git for-linus-4.10-merged

Jeff Mahoney and Dave Sterba have a really nice set of cleanups in here,
and Christoph pitched in corrections/improvements to make btrfs use
proper helpers for bio walking instead of doing it by hand.

There are some key fixes as well, including some long standing bugs that
took forever to track down in btrfs_drop_extents and during balance.

-chris

Jeff Mahoney (22) commits (+4537/-4467):
    btrfs: call functions that always use the same root with fs_info instead (+115/-102)
    btrfs: split btrfs_wait_marked_extents into normal and tree log functions (+58/-40)
    btrfs: take an fs_info directly when the root is not used otherwise (+1119/-1243)
    btrfs: increment ctx->pos for every emitted or skipped dirent in readdir (+4/-23)
    btrfs: call functions that overwrite their root parameter with fs_info (+52/-60)
    btrfs: Ensure proper sector alignment for btrfs_free_reserved_data_space (+7/-0)
    btrfs: remove old tree_root dirent processing in btrfs_real_readdir() (+37/-80)
    btrfs: root->fs_info cleanup, btrfs_calc_{trans,trunc}_metadata_size (+37/-32)
    btrfs: remove root parameter from transaction commit/end routines (+188/-211)
    btrfs: root->fs_info cleanup, access fs_info->delayed_root directly (+13/-24)
    btrfs: root->fs_info cleanup, add fs_info convenience variables (+2251/-2016)
    btrfs: pull node/sector/stripe sizes out of root and into fs_info (+432/-414)
    btrfs: alloc_reserved_file_extent trace point should use extent_root (+2/-1)
    btrfs: root->fs_info cleanup, use fs_info->dev_root everywhere (+68/-70)
    btrfs: root->fs_info cleanup, update_block_group{,flags} (+14/-14)
    btrfs: struct reada_control.root -> reada_control.fs_info (+8/-7)
    btrfs: btrfs_init_new_device should use fs_info->dev_root (+4/-3)
    btrfs: struct btrfsic_state->root should be an fs_info (+10/-10)
    btrfs: convert extent-tree tracepoints to use fs_info (+30/-36)
    btrfs: root->fs_info cleanup, lock/unlock_chunks (+47/-47)
    btrfs: simplify btrfs_wait_cache_io prototype (+34/-27)
    btrfs: root->fs_info cleanup, io_ctl_init (+7/-7)

David Sterba (17) commits (+166/-168):
    btrfs: store and load values of stripes_min/stripes_max in balance status item (+4/-0)
    btrfs: remove constant parameter to memset_extent_buffer and rename it (+21/-21)
    btrfs: use specialized page copying helpers in btrfs_clone_extent_buffer (+1/-1)
    btrfs: reada, cleanup remove unneeded variable in __readahead_hook (+1/-5)
    btrfs: reada, remove unused parameter from __readahead_hook (+4/-4)
    btrfs: rename helper macros for qgroup and aux data casts (+21/-14)
    btrfs: reada, remove pointless BUG_ON in reada_find_extent (+0/-1)
    btrfs: reada, sink start parameter to btree_readahead_hook (+5/-9)
    btrfs: reada, remove pointless BUG_ON check for fs_info (+0/-1)
    btrfs: remove trivial helper btrfs_find_tree_block (+7/-15)
    btrfs: opencode chunk locking, remove helpers (+43/-53)
    btrfs: introduce helpers for updating eb uuids (+24/-0)
    btrfs: add optimized version of eb to eb copy (+18/-2)
    btrfs: remove stale comment from btrfs_statfs (+0/-4)
    btrfs: use new helpers to set uuids in eb (+17/-34)
    btrfs: delete unused member from superblock (+0/-1)
    btrfs: remove unused headers, statfs.h (+0/-3)

Christoph Hellwig (9) commits (+176/-233):
    btrfs: refactor __btrfs_lookup_bio_sums to use bio_for_each_segment_all (+11/-21)
    btrfs: use bio_for_each_segment_all in __btrfsic_submit_bio (+11/-19)
    btrfs: don't access the bio directly in btrfs_csum_one_bio (+10/-11)
    btrfs: don't access the bio directly in the direct I/O code (+3/-4)
    btrfs: use bio iterators for the decompression handlers (+55/-112)
    btrfs: don't access the bio directly in the raid5/6 code (+6/-10)
    btrfs: don't abuse REQ_OP_* flags for btrfs_map_block (+70/-49)
    btrfs: calculate end of bio offset properly (+8/-2)
    btrfs: use bi_size (+2/-5)

Filipe Manana (5) commits (+25/-33):
    Btrfs: fix emptiness check for dirtied extent buffers at check_leaf() (+12/-1)
    Btrfs: remove unused code when creating and merging reloc trees (+0/-19)
    Btrfs: remove rb_node field from the delayed ref node structure (+0/-6)
    Btrfs: fix relocation incorrectly dropping data references (+12/-3)
    Btrfs: fix qgroup rescan worker initialization (+1/-4)

Qu Wenruo (4) commits (+308/-330):
    btrfs: qgroup: Rename functions to make it follow reserve,trace,account steps (+18/-17)
    btrfs: Export and move leaf/subtree qgroup helpers to qgroup.c (+240/-217)
    btrfs: qgroup: Fix qgroup data leaking by using subtree tracing (+23/-96)
    btrfs: qgroup: Add comments explaining how btrfs qgroup works (+28/-0)

Robbie Ko (3) commits (+5/-6):
    Btrfs: fix tree search logic when replaying directory entry deletes (+1/-2)
    Btrfs: fix deadlock caused by fsync when logging directory entries (+2/-2)
    Btrfs: fix enospc in hole punching (+2/-2)

Wang Xiaoguang (3) commits (+42/-7):
    btrfs: cleanup: use already calculated value in btrfs_should_throttle_delayed_refs() (+1/-1)
    btrfs: add necessary comments about tickets_id (+4/-0)
    btrfs: improve delayed refs iterations (+37/-6)

Liu Bo (2) commits (+12/-6):
    Btrfs: adjust len of writes if following a preallocated extent (+5/-3)
    Btrfs: fix BUG_ON in btrfs_mark_buffer_dirty (+7/-3)

Chris Mason (2) commits (+11/-8):
    Revert "Btrfs: adjust len of writes if following a preallocated extent" (+3/-5)
    Btrfs: don't WARN() in btrfs_transaction_abort() for IO errors (+8/-3)

Josef Bacik (2) commits (+29/-5):
    Btrfs: abort transaction if fill_holes() fails (+17/-2)
    Btrfs: fix file extent corruption (+12/-3)

Omar Sandoval (1) commits (+3/-3):
    Btrfs: deal with existing encompassing extent map in btrfs_get_extent()

Maxim Patlasov (1) commits (+19/-2):
    btrfs: limit async_work allocation and worker func duration

Xiaoguang Wang (1) commits (+3/-10):
    btrfs: remove useless comments

Adam Borowski (1) commits (+40/-3):
    btrfs: make block group flags in balance printks human-readable

Nick Terrell (1) commits (+1/-0):
    btrfs: Call kunmap if zlib_inflateInit2 fails

Christophe JAILLET (1) commits (+0/-2):
    btrfs: remove redundant check of btrfs_iget return value

Domagoj Tršan (1) commits (+6/-6):
    btrfs: change btrfs_csum_final result param type to u8

Shailendra Verma (1) commits (+6/-15):
    btrfs: return early from failed memory allocations in ioctl handlers

Total: (77) commits (+5389/-5304)

 fs/btrfs/async-thread.c                |   14 +
 fs/btrfs/async-thread.h                |    1 +
 fs/btrfs/backref.c                     |   10 +-
 fs/btrfs/check-integrity.c             |  103 +--
 fs/btrfs/check-integrity.h             |    5 +-
 fs/btrfs/compression.c                 |  196 ++--
 fs/btrfs/compression.h                 |   12 +-
 fs/btrfs/ctree.c                       |  495 +++++-----
 fs/btrfs/ctree.h                       |  241 ++---
 fs/btrfs/delayed-inode.c               |  147 ++-
 fs/btrfs/delayed-inode.h               |   21 +-
 fs/btrfs/delayed-ref.c                 |   20 +-
 fs/btrfs/delayed-ref.h                 |   14 +-
 fs/btrfs/dev-replace.c                 |   68 +-
 fs/btrfs/dev-replace.h                 |    4 +-
 fs/btrfs/dir-item.c                    |   45 +-
 fs/btrfs/disk-io.c                     |  595 ++++++------
 fs/btrfs/disk-io.h                     |   34 +-
 fs/btrfs/export.c                      |   10 +-
 fs/btrfs/extent-tree.c                 | 1551 ++++++++++++++------------------
 fs/btrfs/extent_io.c                   |  112 ++-
 fs/btrfs/extent_io.h                   |   17 +-
 fs/btrfs/file-item.c                   |  207 ++---
 fs/btrfs/file.c                        |  249 ++---
 fs/btrfs/free-space-cache.c            |  164 ++--
 fs/btrfs/free-space-cache.h            |   12 +-
 fs/btrfs/free-space-tree.c             |   44 +-
 fs/btrfs/inode-item.c                  |   11 +-
 fs/btrfs/inode-map.c                   |   22 +-
 fs/btrfs/inode.c                       |  910 +++++++++----------
 fs/btrfs/ioctl.c                       |  603 +++++++------
 fs/btrfs/lzo.c                         |   17 +-
 fs/btrfs/ordered-data.c                |   38 +-
 fs/btrfs/ordered-data.h                |    4 +-
 fs/btrfs/print-tree.c                  |   19 +-
 fs/btrfs/print-tree.h                  |    4 +-
 fs/btrfs/props.c                       |    5 +-
 fs/btrfs/qgroup.c                      |  299 +++++-
 fs/btrfs/qgroup.h                      |   64 +-
 fs/btrfs/raid56.c                      |   78 +-
 fs/btrfs/raid56.h                      |    8 +-
 fs/btrfs/reada.c                       |   62 +-
 fs/btrfs/relocation.c                  |  453 +++++-----
 fs/btrfs/root-tree.c                   |   28 +-
 fs/btrfs/scrub.c                       |  181 ++--
 fs/btrfs/send.c                        |   33 +-
 fs/btrfs/super.c                       |  138 ++-
 fs/btrfs/tests/btrfs-tests.c           |   13 +-
 fs/btrfs/tests/btrfs-tests.h           |    4 +-
 fs/btrfs/tests/extent-buffer-tests.c   |    7 +-
 fs/btrfs/tests/extent-io-tests.c       |    7 +-
 fs/btrfs/tests/free-space-tests.c      |   18 +-
 fs/btrfs/tests/free-space-tree-tests.c |    9 +-
 fs/btrfs/tests/inode-tests.c           |   16 +-
 fs/btrfs/tests/qgroup-tests.c          |   11 +-
 fs/btrfs/transaction.c                 |  615 +++++++------
 fs/btrfs/transaction.h                 |   29 +-
 fs/btrfs/tree-log.c                    |  202 +++--
 fs/btrfs/uuid-tree.c                   |   23 +-
 fs/btrfs/volumes.c                     |  845 +++++++++--------
 fs/btrfs/volumes.h                     |   70 +-
 fs/btrfs/xattr.c                       |   21 +-
 fs/btrfs/zlib.c                        |   16 +-
 include/trace/events/btrfs.h           |   67 +-
 64 files changed, 4713 insertions(+), 4628 deletions(-)

^ permalink raw reply	[flat|nested] 128+ messages in thread

* [GIT PULL] Btrfs
@ 2016-11-04 17:28 Chris Mason
  0 siblings, 0 replies; 128+ messages in thread
From: Chris Mason @ 2016-11-04 17:28 UTC (permalink / raw)
  To: Linus Torvalds, Linux Kernel Mailing List, linux-btrfs

Hi Linus,

My for-linus-4.9 branch:

git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs.git for-linus-4.9

Has some fixes that Dave Sterba collected.  We held off on these last 
week because I was focused on the memory corruption testing.

I had asked you about pulling this directly from Dave, and you can skip
my merge commit here:

git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux.git for-4.9-rc3

I'll probably have the merge commit when I nail down a fix for the crash 
Dave Jones triggered with trinity, but wanted to let you pick.

Wang Xiaoguang (3) commits (+10/-2):
     btrfs: pass correct args to btrfs_async_run_delayed_refs() (+2/-2)
     btrfs: fix WARNING in btrfs_select_ref_head() (+3/-0)
     btrfs: make file clone aware of fatal signals (+5/-0)

Dan Carpenter (1) commits (+4/-4):
     Btrfs: remove some no-op casts

Liu Bo (1) commits (+8/-1):
     Btrfs: kill BUG_ON in do_relocation

Goldwyn Rodrigues (1) commits (+7/-2):
     btrfs: qgroup: Prevent qgroup->reserved from going subzero

Total: (6) commits (+29/-9)

  fs/btrfs/extent-tree.c |  3 +++
  fs/btrfs/extent_io.c   |  8 ++++----
  fs/btrfs/inode.c       | 13 +++++++++----
  fs/btrfs/ioctl.c       |  5 +++++
  fs/btrfs/relocation.c  |  9 ++++++++-
  5 files changed, 29 insertions(+), 9 deletions(-)

^ permalink raw reply	[flat|nested] 128+ messages in thread

* [GIT PULL] Btrfs
@ 2016-10-28 14:08 Chris Mason
  0 siblings, 0 replies; 128+ messages in thread
From: Chris Mason @ 2016-10-28 14:08 UTC (permalink / raw)
  To: Linus Torvalds, LKML, linux-btrfs

Hi Linus,

My for-linus-4.9 has two fixes in it:

git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs.git for-linus-4.9

My patch fixes the btrfs list_head abuse that we tracked down during
Dave Jones' memory corruption investigation.  With both Jens and my
patches in place, I'm no longer able to trigger problems.

Filipe is fixing a difficult old bug between snapshots, balance and
send.  Dave is cooking a few more for the next rc, but these are tested
and ready:

Chris Mason (1) commits (+6/-14):
    btrfs: fix races on root_log_ctx lists

Filipe Manana (1) commits (+58/-0):
    Btrfs: fix incremental send failure caused by balance

Total: (2) commits (+64/-14)

 fs/btrfs/send.c     | 58 +++++++++++++++++++++++++++++++++++++++++++++++++++++
 fs/btrfs/tree-log.c | 20 ++++++------------
 2 files changed, 64 insertions(+), 14 deletions(-)

^ permalink raw reply	[flat|nested] 128+ messages in thread

* [GIT PULL] Btrfs
@ 2016-10-14 20:31 Chris Mason
  0 siblings, 0 replies; 128+ messages in thread
From: Chris Mason @ 2016-10-14 20:31 UTC (permalink / raw)
  To: Linus Torvalds, Linux Kernel Mailing List, linux-btrfs

Hi Linus,

My for-linus-4.9 branch:

git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs.git for-linus-4.9

Has some fixes from Omar and Dave Sterba for our new free space tree.
This isn't heavily used yet, but as we move toward making it the new
default we wanted to nail down an endian bug.

Omar Sandoval (5) commits (+259/-145):
    Btrfs: expand free space tree sanity tests to catch endianness bug (+96/-68)
    Btrfs: fix extent buffer bitmap tests on big-endian systems (+51/-36)
    Btrfs: fix free space tree bitmaps on big-endian systems (+76/-27)
    Btrfs: fix mount -o clear_cache,space_cache=v2 (+12/-12)
    Btrfs: catch invalid free space trees (+24/-2)

David Sterba (2) commits (+13/-12):
    btrfs: tests: uninline member definitions in free_space_extent (+2/-1)
    btrfs: tests: constify free space extent specs (+11/-11)

Total: (7) commits (+272/-157)

 fs/btrfs/ctree.h                       |   3 +-
 fs/btrfs/disk-io.c                     |  33 +++---
 fs/btrfs/extent_io.c                   |  64 +++++++----
 fs/btrfs/extent_io.h                   |  22 ++++
 fs/btrfs/free-space-tree.c             |  19 ++--
 fs/btrfs/tests/extent-io-tests.c       |  87 ++++++++-------
 fs/btrfs/tests/free-space-tree-tests.c | 189 +++++++++++++++++++--------------
 include/uapi/linux/btrfs.h             |  12 ++-
 8 files changed, 272 insertions(+), 157 deletions(-)

^ permalink raw reply	[flat|nested] 128+ messages in thread

* [GIT PULL] Btrfs
@ 2016-10-11 15:46 Chris Mason
  0 siblings, 0 replies; 128+ messages in thread
From: Chris Mason @ 2016-10-11 15:46 UTC (permalink / raw)
  To: Linus Torvalds, LKML, linux-btrfs

Hi Linus,

My for-linus-4.9 has our merge window pull:

git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs.git for-linus-4.9

This is later than normal because I was tracking down a use-after-free
during btrfs/101 in xfstests.  I had hoped to fix up the offending
patch, but wasn't happy with the size of the changes at this point in
the merge window.

The use-after-free was enough of a corner case that I didn't want to
rebase things out at this point.  So instead the top of the pull is my
revert, and the rest of these were prepped by Dave Sterba (thanks Dave!).  

This is a big variety of fixes and cleanups.  Liu Bo continues to fixup
fuzzer related problems, and some of Josef's cleanups are prep for his
bigger extent buffer changes (slated for v4.10).

Liu Bo (13) commits (+207/-36):
    Btrfs: remove unnecessary btrfs_mark_buffer_dirty in split_leaf (+5/-1)
    Btrfs: return gracefully from balance if fs tree is corrupted (+17/-6)
    Btrfs: improve check_node to avoid reading corrupted nodes (+28/-4)
    Btrfs: add error handling for extent buffer in print tree (+7/-0)
    Btrfs: memset to avoid stale content in btree node block (+11/-0)
    Btrfs: bail out if block group has different mixed flag (+14/-0)
    Btrfs: memset to avoid stale content in btree leaf (+28/-19)
    Btrfs: fix memory leak in reading btree blocks (+9/-0)
    Btrfs: fix memory leak of block group cache (+75/-0)
    Btrfs: kill BUG_ON in run_delayed_tree_ref (+7/-1)
    Btrfs: remove BUG_ON in start_transaction (+1/-4)
    Btrfs: fix memory leak in do_walk_down (+1/-0)
    Btrfs: remove BUG() in raid56 (+4/-1)

Jeff Mahoney (7) commits (+849/-902):
    btrfs: btrfs_debug should consume fs_info when DEBUG is not defined (+10/-4)
    btrfs: clean the old superblocks before freeing the device (+11/-27)
    btrfs: convert send's verbose_printk to btrfs_debug (+38/-27)
    btrfs: convert printk(KERN_* to use pr_* calls (+205/-275)
    btrfs: convert pr_* to btrfs_* where possible (+231/-177)
    btrfs: unsplit printed strings (+324/-391)
    btrfs: add dynamic debug support (+30/-1)

Josef Bacik (5) commits (+178/-156):
    Btrfs: kill the start argument to read_extent_buffer_pages (+15/-28)
    Btrfs: kill BUG_ON()'s in btrfs_mark_extent_written (+33/-8)
    Btrfs: add a flags field to btrfs_fs_info (+99/-109)
    Btrfs: don't leak reloc root nodes on error (+4/-0)
    Btrfs: don't BUG() during drop snapshot (+27/-11)

Goldwyn Rodrigues (3) commits (+3/-18):
    btrfs: Do not reassign count in btrfs_run_delayed_refs (+0/-1)
    btrfs: Remove already completed TODO comment (+0/-2)
    btrfs: parent_start initialization cleanup (+3/-15)

Luis Henriques (2) commits (+0/-4):
    btrfs: Fix warning "variable ‘blocksize’ set but not used" (+0/-2)
    btrfs: Fix warning "variable ‘gen’ set but not used" (+0/-2)

Eric Sandeen (1) commits (+1/-1):
    btrfs: fix perms on demonstration debugfs interface

Anand Jain (1) commits (+20/-6):
    btrfs: fix a possible umount deadlock

Lu Fengqi (1) commits (+369/-10):
    btrfs: fix check_shared for fiemap ioctl

Chris Mason (1) commits (+15/-11):
    Revert "btrfs: let btrfs_delete_unused_bgs() to clean relocated bgs"

Masahiro Yamada (1) commits (+8/-28):
    btrfs: squash lines for simple wrapper functions

Qu Wenruo (1) commits (+37/-25):
    btrfs: extend btrfs_set_extent_delalloc and its friends to support in-band dedupe and subpage size patchset

Arnd Bergmann (1) commits (+7/-10):
    btrfs: fix btrfs_no_printk stub helper

David Sterba (1) commits (+9/-0):
    btrfs: create example debugfs file only in debugging build

Naohiro Aota (1) commits (+11/-15):
    btrfs: let btrfs_delete_unused_bgs() to clean relocated bgs

Total: (39) commits (+1714/-1222)

 fs/btrfs/backref.c            | 409 ++++++++++++++++++++++++++++++++++++++----
 fs/btrfs/btrfs_inode.h        |  11 --
 fs/btrfs/check-integrity.c    | 342 +++++++++++------------------------
 fs/btrfs/compression.c        |   6 +-
 fs/btrfs/ctree.c              |  56 ++----
 fs/btrfs/ctree.h              | 116 ++++++++----
 fs/btrfs/delayed-inode.c      |  25 ++-
 fs/btrfs/delayed-ref.c        |  15 +-
 fs/btrfs/dev-replace.c        |  21 ++-
 fs/btrfs/dir-item.c           |   7 +-
 fs/btrfs/disk-io.c            | 237 ++++++++++++++++--------
 fs/btrfs/disk-io.h            |   2 +
 fs/btrfs/extent-tree.c        | 198 +++++++++++---------
 fs/btrfs/extent_io.c          | 170 +++++++++++-------
 fs/btrfs/extent_io.h          |   4 +-
 fs/btrfs/file.c               |  43 ++++-
 fs/btrfs/free-space-cache.c   |  21 ++-
 fs/btrfs/free-space-cache.h   |   6 +-
 fs/btrfs/free-space-tree.c    |  20 ++-
 fs/btrfs/inode-map.c          |  31 ++--
 fs/btrfs/inode.c              |  70 +++++---
 fs/btrfs/ioctl.c              |  14 +-
 fs/btrfs/lzo.c                |   6 +-
 fs/btrfs/ordered-data.c       |   4 +-
 fs/btrfs/print-tree.c         |  93 +++++-----
 fs/btrfs/qgroup.c             |  77 ++++----
 fs/btrfs/raid56.c             |   5 +-
 fs/btrfs/reada.c              |  32 ++--
 fs/btrfs/relocation.c         |  47 +++--
 fs/btrfs/root-tree.c          |  18 +-
 fs/btrfs/scrub.c              |  58 +++---
 fs/btrfs/send.c               |  79 ++++----
 fs/btrfs/super.c              |  62 ++++---
 fs/btrfs/sysfs.c              |  19 +-
 fs/btrfs/tests/inode-tests.c  |  12 +-
 fs/btrfs/tests/qgroup-tests.c |   2 +-
 fs/btrfs/transaction.c        |  49 +++--
 fs/btrfs/transaction.h        |   1 +
 fs/btrfs/tree-log.c           |  12 +-
 fs/btrfs/uuid-tree.c          |  27 +--
 fs/btrfs/volumes.c            | 197 ++++++++++----------
 fs/btrfs/volumes.h            |   2 +-
 fs/btrfs/zlib.c               |   8 +-
 43 files changed, 1563 insertions(+), 1071 deletions(-)

^ permalink raw reply	[flat|nested] 128+ messages in thread

* [GIT PULL] Btrfs
@ 2016-09-23 20:01 Chris Mason
  0 siblings, 0 replies; 128+ messages in thread
From: Chris Mason @ 2016-09-23 20:01 UTC (permalink / raw)
  To: Linus Torvalds, LKML, linux-btrfs

Hi Linus,

We have two fixes in my for-linus-4.8 branch:

git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs.git for-linus-4.8

Josef is fixing a problem when quotas are enabled with his latest ENOSPC
rework, and Jeff is adding more checks into the subvol ioctls to avoid
tripping up lookup_one_len

Josef Bacik (1) commits (+3/-6):
    Btrfs: handle quota reserve failure properly

Jeff Mahoney (1) commits (+12/-0):
    btrfs: ensure that file descriptor used with subvol ioctls is a dir

Total: (2) commits (+15/-6)

 fs/btrfs/extent-tree.c |  9 +++------
 fs/btrfs/ioctl.c       | 12 ++++++++++++
 2 files changed, 15 insertions(+), 6 deletions(-)

^ permalink raw reply	[flat|nested] 128+ messages in thread

* [GIT PULL] Btrfs
@ 2016-09-09 17:46 Chris Mason
  0 siblings, 0 replies; 128+ messages in thread
From: Chris Mason @ 2016-09-09 17:46 UTC (permalink / raw)
  To: Linus Torvalds, Linux Kernel Mailing List, linux-btrfs

Hi Linus,

We have three fixes in my for-linus-4.8 branch:

git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs.git for-linus-4.8

I'm not proud of how long it took me to track down that one liner in
btrfs_sync_log(), but the good news is the patches I was trying to blame
for these problems were actually fine (sorry Filipe).

Wang Xiaoguang (2) commits (+16/-8):
    btrfs: introduce tickets_id to determine whether asynchronous metadata reclaim work makes progress (+7/-5)
    btrfs: do not decrease bytes_may_use when replaying extents (+9/-3)

Chris Mason (1) commits (+1/-0):
    Btrfs: remove root_log_ctx from ctx list before btrfs_sync_log returns

Total: (3) commits (+17/-8)

 fs/btrfs/ctree.h       |  1 +
 fs/btrfs/extent-tree.c | 23 +++++++++++++++--------
 fs/btrfs/tree-log.c    |  1 +
 3 files changed, 17 insertions(+), 8 deletions(-)

^ permalink raw reply	[flat|nested] 128+ messages in thread

* [GIT PULL] Btrfs
@ 2016-09-03 13:54 Chris Mason
  0 siblings, 0 replies; 128+ messages in thread
From: Chris Mason @ 2016-09-03 13:54 UTC (permalink / raw)
  To: Linus Torvalds, Linux Kernel Mailing List, linux-btrfs

Hi Linus,

We have a few small fixes queued up in my for-linus-4.8 branch:

git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs.git for-linus-4.8

I'm still prepping a set of fixes for btrfs fsync, just nailing
down a hard to trigger memory corruption.  For now, these are tested and
ready:

Josef Bacik (1) commits (+5/-3):
    Btrfs: kill invalid ASSERT() in process_all_refs()

Liu Bo (1) commits (+5/-3):
    Btrfs: fix endless loop in balancing block groups

Wang Xiaoguang (1) commits (+5/-5):
    btrfs: fix one bug that process may endlessly wait for ticket in wait_reserve_ticket()

Total: (3) commits (+15/-11)

 fs/btrfs/extent-tree.c | 10 +++++-----
 fs/btrfs/relocation.c  |  8 +++++---
 fs/btrfs/send.c        |  8 +++++---
 3 files changed, 15 insertions(+), 11 deletions(-)

^ permalink raw reply	[flat|nested] 128+ messages in thread

* [GIT PULL] Btrfs
@ 2016-08-26 23:36 Chris Mason
  0 siblings, 0 replies; 128+ messages in thread
From: Chris Mason @ 2016-08-26 23:36 UTC (permalink / raw)
  To: Linus Torvalds, LKML, linux-btrfs

Hi Linus,

Please pull my for-linus-4.8 branch:

git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs.git for-linus-4.8

We've queued up a few different fixes in here.  These range from enospc
corners to fsync and quota fixes, and a few targeted at
error handling for corrupt metadata/fuzzing.

Liu Bo (5) commits (+60/-2):
    Btrfs: detect corruption when non-root leaf has zero item (+22/-1)
    Btrfs: add ASSERT for block group's memory leak (+5/-0)
    Btrfs: clarify do_chunk_alloc()'s return value (+9/-0)
    Btrfs: fix memory leak of reloc_root (+8/-1)
    Btrfs: check btree node's nritems (+16/-0)

Qu Wenruo (4) commits (+191/-53):
    btrfs: relocation: Fix leaking qgroups numbers on data extents (+103/-6)
    btrfs: qgroup: Fix qgroup incorrectness caused by log replay (+16/-0)
    btrfs: qgroup: Refactor btrfs_qgroup_insert_dirty_extent() (+71/-47)
    btrfs: backref: Fix soft lockup in __merge_refs function (+1/-0)

Wang Xiaoguang (4) commits (+161/-108):
    btrfs: use correct offset for reloc_inode in prealloc_file_extent_cluster() (+6/-4)
    btrfs: divide btrfs_update_reserved_bytes() into two functions (+57/-40)
    btrfs: update btrfs_space_info's bytes_may_use timely (+73/-63)
    btrfs: fix fsfreeze hang caused by delayed iputs deal (+25/-1)

Jeff Mahoney (3) commits (+45/-18):
    btrfs: don't create or leak aliased root while cleaning up orphans (+22/-11)
    btrfs: waiting on qgroup rescan should not always be interruptible (+13/-6)
    btrfs: properly track when rescan worker is running (+10/-1)

Filipe Manana (1) commits (+8/-4):
    Btrfs: fix lockdep warning on deadlock against an inode's log mutex

Anand Jain (1) commits (+19/-8):
    btrfs: do not background blkdev_put()

Alex Lyakas (1) commits (+1/-1):
    btrfs: flush_space: treat return value of do_chunk_alloc properly

Josef Bacik (1) commits (+1/-0):
    Btrfs: fix em leak in find_first_block_group

Total: (20) commits

 fs/btrfs/backref.c     |   1 +
 fs/btrfs/ctree.h       |   5 +-
 fs/btrfs/delayed-ref.c |   7 +-
 fs/btrfs/disk-io.c     |  56 +++++++++++++--
 fs/btrfs/disk-io.h     |   2 +
 fs/btrfs/extent-tree.c | 185 +++++++++++++++++++++++--------------------------
 fs/btrfs/extent_io.h   |   1 +
 fs/btrfs/file.c        |  28 ++++----
 fs/btrfs/inode-map.c   |   3 +-
 fs/btrfs/inode.c       |  37 +++++++---
 fs/btrfs/ioctl.c       |   2 +-
 fs/btrfs/qgroup.c      |  62 ++++++++++++++---
 fs/btrfs/qgroup.h      |  36 ++++++++--
 fs/btrfs/relocation.c  | 126 ++++++++++++++++++++++++++++++---
 fs/btrfs/root-tree.c   |  27 +++++---
 fs/btrfs/super.c       |  16 +++++
 fs/btrfs/transaction.c |   7 +-
 fs/btrfs/tree-log.c    |  21 +++++-
 fs/btrfs/tree-log.h    |   5 +-
 fs/btrfs/volumes.c     |  27 +++++---
 20 files changed, 473 insertions(+), 181 deletions(-)

^ permalink raw reply	[flat|nested] 128+ messages in thread

* [GIT PULL] Btrfs
@ 2016-08-10 12:10 Chris Mason
  0 siblings, 0 replies; 128+ messages in thread
From: Chris Mason @ 2016-08-10 12:10 UTC (permalink / raw)
  To: Linus Torvalds, LKML, linux-btrfs

Hi Linus,

My for-linus-4.8 branch has some fixes for btrfs send/recv and fsync
from Filipe and Robbie Ko:

git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs.git for-linus-4.8

Bonus points to Filipe for already having xfstests in place for many of
these.

Filipe Manana (8) commits (+172/-52):
    Btrfs: improve performance on fsync against new inode after rename/unlink (+95/-9)
    Btrfs: send, avoid incorrect leaf accesses when sending utimes operations (+2/-0)
    Btrfs: remove unused function btrfs_add_delayed_qgroup_reserve() (+0/-30)
    Btrfs: be more precise on errors when getting an inode from disk (+18/-9)
    Btrfs: incremental send, fix invalid paths for rename operations (+2/-1)
    Btrfs: send, add missing error check for calls to path_loop() (+2/-0)
    Btrfs: add missing check for writeback errors on fsync (+8/-0)
    Btrfs: send, don't bug on inconsistent snapshots (+45/-3)

Robbie Ko (4) commits (+111/-7):
    Btrfs: send, fix invalid leaf accesses due to incorrect utimes operations (+11/-1)
    Btrfs: send, fix warning due to late freeing of orphan_dir_info structures (+4/-0)
    Btrfs: send, fix failure to move directories with the same name around (+95/-5)
    Btrfs: incremental send, fix premature rmdir operations (+1/-1)

Total: (12) commits (+283/-59)

 fs/btrfs/delayed-ref.c |  27 --------
 fs/btrfs/delayed-ref.h |   3 -
 fs/btrfs/file.c        |   8 +++
 fs/btrfs/inode.c       |  46 ++++++++++---
 fs/btrfs/send.c        | 173 +++++++++++++++++++++++++++++++++++++++++++++----
 fs/btrfs/tree-log.c    |  85 +++++++++++++++++++++---
 6 files changed, 283 insertions(+), 59 deletions(-)

^ permalink raw reply	[flat|nested] 128+ messages in thread

* [GIT PULL] Btrfs
@ 2016-08-04 19:12 Chris Mason
  0 siblings, 0 replies; 128+ messages in thread
From: Chris Mason @ 2016-08-04 19:12 UTC (permalink / raw)
  To: Linus Torvalds, linux-kernel, linux-btrfs

Hi Linus,

This is part two of my btrfs pull, which is some cleanups and a batch of
fixes.  

Most of the code here is from Jeff Mahoney, making the pointers
we pass around internally more consistent and less confusing overall.  I
noticed a small problem right before I sent this out yesterday, so I
fixed it up and re-tested overnight.

Please pull my for-linus-4.8 branch:

git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs.git for-linus-4.8

There are some minor conflicts against Mike Christie's changes in
your tree.  I've put the conflict resolution I used for testing here:

git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs.git for-linus-4.8-merged

Jeff Mahoney (14) commits (+754/-669):
    btrfs: tests, use BTRFS_FS_STATE_DUMMY_FS_INFO instead of dummy root (+19/-21)
    btrfs: btrfs_relocate_chunk pass extent_root to btrfs_end_transaction (+1/-1)
    btrfs: btrfs_test_opt and friends should take a btrfs_fs_info (+135/-130)
    btrfs: cleanup, remove prototype for btrfs_find_root_ref (+0/-3)
    btrfs: btrfs_abort_transaction, drop root parameter (+147/-152)
    btrfs: convert nodesize macros to static inlines (+33/-15)
    btrfs: tests, move initialization into tests/ (+48/-77)
    btrfs: add btrfs_trans_handle->fs_info pointer (+6/-4)
    btrfs: copy_to_sk drop unused root parameter (+2/-3)
    btrfs: simpilify btrfs_subvol_inherit_props (+3/-3)
    btrfs: prefix fsid to all trace events (+186/-158)
    btrfs: tests, require fs_info for root (+103/-61)
    btrfs: plumb fs_info into btrfs_work (+63/-31)
    btrfs: introduce BTRFS_MAX_ITEM_SIZE (+8/-10)

Liu Bo (10) commits (+149/-49):
    Btrfs: change BUG_ON()'s to ASSERT()'s in backref_cache_cleanup() (+6/-6)
    Btrfs: error out if generic_bin_search get invalid arguments (+8/-0)
    Btrfs: check inconsistence between chunk and block group (+16/-1)
    Btrfs: fix unexpected balance crash due to BUG_ON (+24/-4)
    Btrfs: fix eb memory leak due to readpage failure (+22/-3)
    Btrfs: fix BUG_ON in btrfs_submit_compressed_write (+8/-2)
    Btrfs: fix read_node_slot to return errors (+52/-21)
    Btrfs: fix panic in balance due to EIO (+4/-0)
    Btrfs: cleanup BUG_ON in merge_bio (+6/-3)
    Btrfs: fix double free of fs root (+3/-9)

Nikolay Borisov (4) commits (+49/-20):
    btrfs: Ratelimit "no csum found" info message (+1/-1)
    btrfs: Handle uninitialised inode eviction (+8/-1)
    btrfs: Add ratelimit to btrfs printing (+24/-2)
    btrfs: Fix slab accounting flags (+16/-16)

Wang Xiaoguang (3) commits (+45/-13):
    btrfs: expand cow_file_range() to support in-band dedup and subpage-blocksize (+41/-11)
    btrfs: add missing bytes_readonly attribute file in sysfs (+2/-0)
    btrfs: fix free space calculation in dump_space_info() (+2/-2)

Anand Jain (2) commits (+40/-36):
    btrfs: make sure device is synced before return (+5/-0)
    btrfs: reorg btrfs_close_one_device() (+35/-36)

David Sterba (2) commits (+4/-3):
    btrfs: remove obsolete part of comment in statfs (+0/-3)
    btrfs: hide test-only member under ifdef (+4/-0)

Ashish Samant (1) commits (+35/-37):
    btrfs: Cleanup compress_file_range()

Chris Mason (1) commits (+3/-2):
    Btrfs: fix __MAX_CSUM_ITEMS

Chandan Rajendra (1) commits (+1/-1):
    Btrfs: subpage-blocksize: Rate limit scrub error message

Salah Triki (1) commits (+1/-2):
    btrfs: Replace -ENOENT by -ERANGE in btrfs_get_acl()

Hans van Kranenburg (1) commits (+1/-1):
    Btrfs: use the correct struct for BTRFS_IOC_LOGICAL_INO

Total: (40) commits (+1082/-833)

 fs/btrfs/acl.c                         |   3 +-
 fs/btrfs/async-thread.c                |  31 +++-
 fs/btrfs/async-thread.h                |   6 +-
 fs/btrfs/backref.c                     |   4 +-
 fs/btrfs/compression.c                 |  10 +-
 fs/btrfs/ctree.c                       |  91 ++++++----
 fs/btrfs/ctree.h                       | 101 ++++++-----
 fs/btrfs/dedupe.h                      |  24 +++
 fs/btrfs/delayed-inode.c               |   4 +-
 fs/btrfs/delayed-ref.c                 |  17 +-
 fs/btrfs/dev-replace.c                 |   4 +-
 fs/btrfs/disk-io.c                     | 101 +++++------
 fs/btrfs/disk-io.h                     |   3 +-
 fs/btrfs/extent-tree.c                 | 124 ++++++++------
 fs/btrfs/extent_io.c                   |  30 +++-
 fs/btrfs/extent_map.c                  |   2 +-
 fs/btrfs/file-item.c                   |   4 +-
 fs/btrfs/file.c                        |  12 +-
 fs/btrfs/free-space-cache.c            |   8 +-
 fs/btrfs/free-space-tree.c             |  16 +-
 fs/btrfs/inode-map.c                   |  16 +-
 fs/btrfs/inode.c                       | 218 ++++++++++++------------
 fs/btrfs/ioctl.c                       |  40 ++---
 fs/btrfs/ordered-data.c                |   2 +-
 fs/btrfs/props.c                       |   6 +-
 fs/btrfs/qgroup.c                      |  25 +--
 fs/btrfs/qgroup.h                      |   9 +-
 fs/btrfs/relocation.c                  |  20 ++-
 fs/btrfs/root-tree.c                   |  10 +-
 fs/btrfs/scrub.c                       |  12 +-
 fs/btrfs/super.c                       | 218 +++++++++++-------------
 fs/btrfs/sysfs.c                       |   2 +
 fs/btrfs/tests/btrfs-tests.c           |  67 +++++++-
 fs/btrfs/tests/btrfs-tests.h           |  36 +---
 fs/btrfs/tests/extent-buffer-tests.c   |  23 ++-
 fs/btrfs/tests/free-space-tests.c      |  14 +-
 fs/btrfs/tests/free-space-tree-tests.c |  18 +-
 fs/btrfs/tests/inode-tests.c           |  46 ++---
 fs/btrfs/tests/qgroup-tests.c          |  23 +--
 fs/btrfs/transaction.c                 |  37 +++--
 fs/btrfs/transaction.h                 |   1 +
 fs/btrfs/tree-log.c                    |  22 ++-
 fs/btrfs/volumes.c                     | 138 ++++++++-------
 include/trace/events/btrfs.h           | 295 ++++++++++++++++++---------------
 include/uapi/linux/btrfs.h             |   2 +-
 45 files changed, 1072 insertions(+), 823 deletions(-)

^ permalink raw reply	[flat|nested] 128+ messages in thread

* [GIT PULL] Btrfs
@ 2016-07-31 13:55 Chris Mason
  0 siblings, 0 replies; 128+ messages in thread
From: Chris Mason @ 2016-07-31 13:55 UTC (permalink / raw)
  To: Linus Torvalds, LKML, linux-btrfs

Hi Linus,

This is part one of my btrfs pull, and you can find it in my
for-linus-4.8 branch:

git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs.git for-linus-4.8

This pull is dedicated to Josef's enospc rework, which we've been
testing for a few releases now.  It fixes some early enospc problems and
is dramatically faster.

The pull also includes an updated fix for the delalloc accounting that
happens after a fault in copy_from_user.   My patch in v4.7 was almost but
not quite enough.

Dave Sterba has a branch prepped with a cleanup series from Jeff Mahoney
as well as other fixes.  My plan is to send that after wading
through vacation backlog on Monday.

Josef Bacik (19) commits (+679/-344):
    Btrfs: avoid deadlocks during reservations in btrfs_truncate_block (+5/-0)
    Btrfs: use FLUSH_LIMIT for relocation in reserve_metadata_bytes (+22/-17)
    Btrfs: don't bother kicking async if there's nothing to reclaim (+3/-0)
    Btrfs: change delayed reservation fallback behavior (+23/-41)
    Btrfs: always reserve metadata for delalloc extents (+13/-22)
    Btrfs: change how we calculate the global block rsv (+9/-36)
    Btrfs: add bytes_readonly to the spaceinfo at once (+11/-18)
    Btrfs: introduce ticketed enospc infrastructure (+380/-151)
    Btrfs: fill relocation block rsv after allocation (+6/-0)
    Btrfs: fix delalloc reservation amount tracepoint (+3/-1)
    Btrfs: fix release reserved extents trace points (+1/-5)
    Btrfs: fix callers of btrfs_block_rsv_migrate (+18/-25)
    Btrfs: always use trans->block_rsv for orphans (+7/-1)
    Btrfs: use root when checking need_async_flush (+6/-5)
    Btrfs: add tracepoint for adding block groups (+42/-0)
    Btrfs: add tracepoints for flush events (+103/-10)
    Btrfs: warn_on for unaccounted spaces (+8/-6)
    Btrfs: add fsid to some tracepoints (+11/-6)
    Btrfs: trace pinned extents (+8/-0)

Chris Mason (1) commits (+5/-7):
    Btrfs: fix delalloc accounting after copy_from_user faults

Total: (20) commits (+684/-351)

 fs/btrfs/ctree.h             |  15 +-
 fs/btrfs/delayed-inode.c     |  68 ++--
 fs/btrfs/extent-tree.c       | 731 +++++++++++++++++++++++++++----------------
 fs/btrfs/file.c              |  16 +-
 fs/btrfs/inode.c             |   7 +-
 fs/btrfs/relocation.c        |  45 +--
 include/trace/events/btrfs.h | 139 +++++++-
 7 files changed, 677 insertions(+), 344 deletions(-)

^ permalink raw reply	[flat|nested] 128+ messages in thread

* [GIT PULL] Btrfs
@ 2016-06-18 13:01 Chris Mason
  0 siblings, 0 replies; 128+ messages in thread
From: Chris Mason @ 2016-06-18 13:01 UTC (permalink / raw)
  To: Linus Torvalds, Linux Kernel Mailing List, linux-btrfs

Hi Linus,

My for-linus-4.7 branch has a few fixes:

git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs.git for-linus-4.7

The most user visible change here is a fix for our recent superblock
validation checks that were causing problems on non-4k pagesized
systems.

David Sterba (2) commits (+1/-6):
    btrfs: use new error message helper in qgroup_account_snapshot (+1/-1)
    btrfs: remove build fixup for qgroup_account_snapshot (+0/-5)

Jeff Mahoney (1) commits (+7/-4):
    btrfs: account for non-CoW'd blocks in btrfs_abort_transaction

Liu Bo (1) commits (+28/-15):
    Btrfs: check if extent buffer is aligned to sectorsize

Heinrich Schuchardt (1) commits (+1/-1):
    btrfs: Use correct format specifier

Zygo Blaxell (1) commits (+12/-15):
    btrfs: avoid blocking open_ctree from cleaner_kthread

Josef Bacik (1) commits (+10/-1):
    Btrfs: don't BUG_ON() in btrfs_orphan_add

Chandan Rajendra (1) commits (+2/-1):
    Btrfs: btrfs_check_super_valid: Allow 4096 as stripesize

Total: (8) commits (+61/-43)

 fs/btrfs/check-integrity.c |  2 +-
 fs/btrfs/ctree.c           |  7 ++++++-
 fs/btrfs/disk-io.c         | 36 ++++++++++++++++--------------------
 fs/btrfs/extent-tree.c     | 12 +++++++-----
 fs/btrfs/extent_io.c       | 15 ++++++++++++---
 fs/btrfs/inode.c           | 11 ++++++++++-
 fs/btrfs/super.c           |  4 +++-
 fs/btrfs/transaction.c     |  7 +------
 fs/btrfs/transaction.h     |  2 +-
 fs/btrfs/tree-log.c        |  4 ++--
 fs/btrfs/volumes.c         |  4 ++--
 11 files changed, 61 insertions(+), 43 deletions(-)

^ permalink raw reply	[flat|nested] 128+ messages in thread

* [GIT PULL] Btrfs
@ 2016-06-03 20:57 Chris Mason
  0 siblings, 0 replies; 128+ messages in thread
From: Chris Mason @ 2016-06-03 20:57 UTC (permalink / raw)
  To: Linus Torvalds, LKML, btrfs

Hi Linus,

My for-linus-4.7 branch has some fixes:

git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs.git for-linus-4.7

I realized as I was prepping this pull that my tip commit still had
Facebook task numbers and other internal metadata in it.  So I had to
reword the description, which is why it is only a few hours old.  Only
the description changed since testing.

The important part of this pull is Filipe's set of fixes for btrfs device
replacement.  Filipe fixed a few issues seen on the list and a number
he found on his own.

Filipe Manana (8) commits (+93/-19):
    Btrfs: fix race setting block group back to RW mode during device replace (+5/-5)
    Btrfs: fix unprotected assignment of the left cursor for device replace (+4/-0)
    Btrfs: fix race setting block group readonly during device replace (+46/-2)
    Btrfs: fix race between device replace and block group removal (+11/-0)
    Btrfs: fix race between device replace and chunk allocation (+9/-12)
    Btrfs: fix race between readahead and device replace/removal (+2/-0)
    Btrfs: fix race between device replace and read repair (+10/-0)
    Btrfs: fix race between device replace and discard (+6/-0)

Chris Mason (1) commits (+12/-1):
    Btrfs: deal with duplciates during extent_map insertion in btrfs_get_extent

Total: (9) commits (+105/-20)

 fs/btrfs/extent-tree.c  |  6 ++++++
 fs/btrfs/extent_io.c    | 10 ++++++++++
 fs/btrfs/inode.c        | 13 ++++++++++++-
 fs/btrfs/ordered-data.c |  6 +++++-
 fs/btrfs/ordered-data.h |  2 +-
 fs/btrfs/reada.c        |  2 ++
 fs/btrfs/scrub.c        | 50 ++++++++++++++++++++++++++++++++++++++++++++++---
 fs/btrfs/volumes.c      | 32 +++++++++++++++++++------------
 8 files changed, 103 insertions(+), 18 deletions(-)

^ permalink raw reply	[flat|nested] 128+ messages in thread

* [GIT PULL] Btrfs
@ 2016-05-27 17:44 Chris Mason
  0 siblings, 0 replies; 128+ messages in thread
From: Chris Mason @ 2016-05-27 17:44 UTC (permalink / raw)
  To: Linus Torvalds, btrfs, LKML

Hi Linus,

We have another round of fixes and a few cleanups in my for-linus-4.7
branch:

git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs.git for-linus-4.7

I have a fix for short returns from btrfs_copy_from_user, which finally
nails down a very hard to find regression we added in v4.6.

Dave is pushing around gfp parameters, mostly to cleanup internal apis
and make it a little more consistent.  The rest are smaller fixes, and
one speelling fixup patch.

David Sterba (17) commits (+149/-116):
    btrfs: make state preallocation more speculative in __set_extent_bit (+7/-1)
    btrfs: make find_workspace warn if there are no workspaces (+14/-0)
    btrfs: rename and document compression workspace members (+19/-16)
    btrfs: sink gfp parameter to clear_record_extent_bits (+5/-8)
    btrfs: sink gfp parameter to set_record_extent_bits (+4/-7)
    btrfs: untangle gotos a bit in convert_extent_bit (+7/-9)
    btrfs: untangle gotos a bit in __clear_extent_bit (+8/-8)
    btrfs: sink gfp parameter to set_extent_delalloc (+6/-6)
    btrfs: sink gfp parameter to clear_extent_bits (+15/-16)
    btrfs: sink gfp parameter to convert_extent_bit (+8/-8)
    btrfs: untangle gotos a bit in __set_extent_bit (+7/-8)
    btrfs: sink gfp parameter to clear_extent_dirty (+4/-4)
    btrfs: sink gfp parameter to set_extent_defrag (+3/-3)
    btrfs: sink gfp parameter to set_extent_bits (+10/-11)
    btrfs: sink gfp parameter to set_extent_new (+4/-3)
    btrfs: make find_workspace always succeed (+12/-8)
    btrfs: preallocate compression workspaces (+16/-0)

Liu Bo (2) commits (+7/-3):
    Btrfs: fix unexpected return value of fiemap (+5/-1)
    Btrfs: free sys_array eb as soon as possible (+2/-2)

Chris Mason (1) commits (+17/-10):
    Btrfs: fix handling of faults from btrfs_copy_from_user

Zhao Lei (1) commits (+2/-1):
    btrfs: scrub: Set bbio to NULL before calling btrfs_map_block

Nicholas D Steeves (1) commits (+106/-105):
    btrfs: fix string and comment grammatical issues and typos

Total: (22) commits (+281/-235)

 fs/btrfs/backref.c                |  2 +-
 fs/btrfs/btrfs_inode.h            |  2 +-
 fs/btrfs/check-integrity.c        |  2 +-
 fs/btrfs/ctree.c                  | 14 +++---
 fs/btrfs/ctree.h                  |  6 +--
 fs/btrfs/delayed-ref.h            |  2 +-
 fs/btrfs/dev-replace.c            |  2 +-
 fs/btrfs/disk-io.c                | 14 +++---
 fs/btrfs/extent-tree.c            | 48 ++++++++++----------
 fs/btrfs/extent_io.c              | 94 ++++++++++++++++++++-------------------
 fs/btrfs/extent_io.h              | 34 +++++++-------
 fs/btrfs/extent_map.c             |  2 +-
 fs/btrfs/file-item.c              |  2 +-
 fs/btrfs/file.c                   | 31 ++++++++-----
 fs/btrfs/free-space-cache.c       |  2 +-
 fs/btrfs/free-space-cache.h       |  2 +-
 fs/btrfs/inode.c                  | 27 ++++++-----
 fs/btrfs/ioctl.c                  | 12 ++---
 fs/btrfs/ordered-data.h           |  2 +-
 fs/btrfs/qgroup.c                 | 24 +++++-----
 fs/btrfs/raid56.c                 |  6 +--
 fs/btrfs/relocation.c             | 19 ++++----
 fs/btrfs/root-tree.c              |  4 +-
 fs/btrfs/scrub.c                  | 11 ++---
 fs/btrfs/send.c                   |  6 +--
 fs/btrfs/struct-funcs.c           |  2 +-
 fs/btrfs/super.c                  |  8 ++--
 fs/btrfs/tests/extent-io-tests.c  | 10 ++---
 fs/btrfs/tests/free-space-tests.c |  7 +--
 fs/btrfs/tests/inode-tests.c      |  2 +-
 fs/btrfs/tests/qgroup-tests.c     |  2 +-
 fs/btrfs/transaction.c            |  2 +-
 fs/btrfs/transaction.h            |  2 +-
 fs/btrfs/tree-log.c               | 10 ++---
 fs/btrfs/ulist.c                  |  2 +-
 fs/btrfs/volumes.c                | 12 ++---
 36 files changed, 219 insertions(+), 210 deletions(-)

^ permalink raw reply	[flat|nested] 128+ messages in thread

* [GIT PULL] Btrfs
@ 2016-05-21 14:18 Chris Mason
  0 siblings, 0 replies; 128+ messages in thread
From: Chris Mason @ 2016-05-21 14:18 UTC (permalink / raw)
  To: Linus Torvalds, LKML, btrfs

Hi Linus,

My for-linus-4.7 branch:

git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs.git for-linus-4.7

Has our merge window series of cleanups and fixes.  These target a wide
range of issues, but do include some important fixes for qgroups,
O_DIRECT, and fsync handling.   Jeff Mahoney moved around a few
definitions to make them easier for userland to consume.

Also whiteout support is included now that issues with overlayfs have
been cleared up.

I have one more fix pending for page faults during btrfs_copy_from_user,
but I wanted to get this bulk out the door first.

David Sterba (28) commits (+343/-247):
    btrfs: introduce raid-type to error-code table, for minimum device constraint (+16/-1)
    btrfs: switch to common message helpers in open_ctree, adjust messages (+50/-52)
    btrfs: reuse existing variable in scrub_stripe, reduce stack usage (+9/-10)
    btrfs: send: use vmalloc only as fallback for clone_sources_tmp (+8/-5)
    btrfs: pass number of devices to btrfs_check_raid_min_devices (+20/-15)
    btrfs: use dynamic allocation for root item in create_subvol (+37/-28)
    btrfs: use existing device constraints table btrfs_raid_array (+9/-14)
    btrfs: clone: use vmalloc only as fallback for nodesize bufer (+8/-5)
    btrfs: send: use temporary variable to store allocation size (+8/-6)
    btrfs: make find_workspace warn if there are no workspaces (+14/-0)
    btrfs: rename and document compression workspace members (+19/-16)
    btrfs: send: use vmalloc only as fallback for clone_roots (+7/-4)
    btrfs: add read-only check to sysfs handler of features (+3/-0)
    btrfs: send: use vmalloc only as fallback for read_buf (+7/-4)
    btrfs: send: use vmalloc only as fallback for send_buf (+7/-4)
    btrfs: ioctl: reorder exclusive op check in RM_DEV (+11/-12)
    btrfs: ioctl: reorder exclusive op check in RM_DEV (+11/-12)
    btrfs: add write protection to SET_FEATURES ioctl (+13/-3)
    btrfs: kill unused writepage_io_hook callback (+16/-24)
    btrfs: rename btrfs_find_device_by_user_input (+13/-10)
    btrfs: build fixup for qgroup_account_snapshot (+5/-0)
    btrfs: sysfs: protect reading label by lock (+7/-1)
    btrfs: make find_workspace always succeed (+12/-8)
    btrfs: preallocate compression workspaces (+16/-0)
    btrfs: add check to sysfs handler of label (+3/-0)
    btrfs: rename __check_raid_min_devices (+2/-2)
    btrfs: GFP_NOFS does not GFP_HIGHMEM (+4/-4)
    btrfs: rename flags for vol args v2 (+8/-7)

Anand Jain (20) commits (+449/-381):
    btrfs: fix lock dep warning, move scratch dev out of device_list_mutex and uuid_mutex (+12/-5)
    btrfs: fix lock dep warning move scratch super outside of chunk_mutex (+5/-4)
    btrfs: make use of btrfs_scratch_superblocks() in btrfs_rm_device() (+13/-64)
    btrfs: enhance btrfs_find_device_by_user_input() to check device path (+3/-4)
    btrfs: cleanup assigning next active device with a check (+48/-22)
    btrfs: create helper function __check_raid_min_devices() (+32/-19)
    btrfs: create helper btrfs_find_device_by_user_input() (+23/-23)
    btrfs: clean up and optimize __check_raid_min_device() (+19/-24)
    btrfs: create a helper function to read the disk super (+52/-35)
    btrfs: rename btrfs_std_error to btrfs_handle_fs_error (+31/-31)
    btrfs: pass the right error code to the btrfs_std_error (+2/-2)
    btrfs: make use of btrfs_find_device_by_user_input() (+37/-63)
    btrfs: move error handling code together in ctree.h (+40/-38)
    btrfs: refactor btrfs_dev_replace_start for reuse (+41/-23)
    btrfs: s_bdev is not null after missing replace (+6/-3)
    btrfs: remove unused function btrfs_assert() (+0/-1)
    btrfs: introduce device delete by devid (+73/-5)
    btrfs: optimize check for stale device (+2/-1)
    btrfs: remove save_error_info() (+6/-10)
    btrfs: use fs_info directly (+4/-4)

Filipe Manana (13) commits (+404/-180):
    Btrfs: fix race between fsync and direct IO writes for prealloc extents (+37/-6)
    Btrfs: fix empty symlink after creating symlink and fsync parent dir (+1/-1)
    Btrfs: add semaphore to synchronize direct IO writes with fsync (+77/-118)
    Btrfs: fix inode leak on failure to setup whiteout inode in rename (+6/-6)
    Btrfs: fix for incorrect directory entries after fsync log replay (+8/-5)
    Btrfs: fix race between block group relocation and nocow writes (+81/-1)
    Btrfs: fix number of transaction units for renames with whiteout (+8/-1)
    Btrfs: don't wait for unrelated IO to finish before relocation (+38/-19)
    Btrfs: pin logs earlier when doing a rename exchange operation (+4/-4)
    Btrfs: don't do unnecessary delalloc flushes when relocating (+79/-7)
    Btrfs: unpin logs if rename exchange operation fails (+36/-2)
    Btrfs: unpin log if rename operation fails (+27/-1)
    Btrfs: pin log earlier when renaming (+2/-9)

Jeff Mahoney (8) commits (+1161/-1090):
    btrfs: uapi/linux/btrfs.h migration, move struct btrfs_ioctl_defrag_range_args (+37/-32)
    btrfs: uapi/linux/btrfs_tree.h migration, item types and defines (+967/-948)
    btrfs: uapi/linux/btrfs.h migration, document subvol flags (+14/-3)
    btrfs: uapi/linux/btrfs.h migration, move BTRFS_LABEL_SIZE (+1/-1)
    btrfs: uapi/linux/btrfs.h migration, move balance flags (+64/-46)
    btrfs: uapi/linux/btrfs.h migration, move feature flags (+31/-25)
    btrfs: uapi/linux/btrfs.h migration, qgroup limit flags (+21/-9)
    btrfs: uapi/linux/btrfs_tree.h, use __u8 and __u64 (+26/-26)

Liu Bo (4) commits (+39/-15):
    Btrfs: make mapping->writeback_index point to the last written page (+26/-6)
    Btrfs: do not create empty block group if we have allocated data (+8/-1)
    Btrfs: cleanup error handling in extent_write_cached_pages (+2/-5)
    Btrfs: fix divide error upon chunk's stripe_len (+3/-3)

Luis de Bethencourt (3) commits (+25/-11):
    btrfs: fix mixed block count of available space (+13/-3)
    btrfs: avoid overflowing f_bfree (+5/-1)
    btrfs: fix typos in comments (+7/-7)

Scott Talbert (1) commits (+2/-0):
    btrfs: fix memory leak during RAID 5/6 device replacement

Adam Borowski (1) commits (+1/-1):
    btrfs: fix int32 overflow in shrink_delalloc().

Luke Dashjr (1) commits (+24/-2):
    btrfs: bugfix: handle FS_IOC32_{GETFLAGS,SETFLAGS,GETVERSION} in btrfs_ioctl

Satoru Takeuchi (1) commits (+3/-3):
    btrfs: Simplify conditions about compress while mapping btrfs flags to inode flags

Ashish Samant (1) commits (+1/-1):
    btrfs: Fix BUG_ON condition in scrub_setup_recheck_block()

Zygo Blaxell (1) commits (+15/-3):
    btrfs: don't force mounts to wait for cleaner_kthread to delete one or more subvolumes

Vincent Stehlé (1) commits (+1/-1):
    Btrfs: fix fspath error deallocation

Qu Wenruo (1) commits (+105/-24):
    btrfs: qgroup: Fix qgroup accounting when creating snapshot

Dan Carpenter (1) commits (+6/-0):
    btrfs: send: silence an integer overflow warning

Geert Uytterhoeven (1) commits (+20/-21):
    Btrfs: Refactor btrfs_lock_cluster() to kill compiler warning

Josef Bacik (1) commits (+16/-2):
    Btrfs: remove BUG_ON()'s in btrfs_map_block

Chandan Rajendra (1) commits (+3/-1):
    Btrfs: __btrfs_buffered_write: Pass valid file offset when releasing delalloc space

Dan Fuhry (1) commits (+257/-7):
    btrfs: add support for RENAME_EXCHANGE and RENAME_WHITEOUT

Austin S. Hemmelgarn (1) commits (+2/-4):
    btrfs: allow balancing to dup with multi-device

Total: (90) commits (+2877/-1994)

 fs/btrfs/backref.c              |    2 +-
 fs/btrfs/btrfs_inode.h          |   10 +
 fs/btrfs/compression.c          |   85 ++-
 fs/btrfs/ctree.c                |    6 +-
 fs/btrfs/ctree.h                | 1123 +++------------------------------------
 fs/btrfs/delayed-inode.c        |    2 +-
 fs/btrfs/dev-replace.c          |  101 ++--
 fs/btrfs/dev-replace.h          |    4 +-
 fs/btrfs/disk-io.c              |  130 ++---
 fs/btrfs/extent-tree.c          |  167 +++++-
 fs/btrfs/extent_io.c            |   82 +--
 fs/btrfs/extent_io.h            |    1 -
 fs/btrfs/file.c                 |    6 +-
 fs/btrfs/inode-item.c           |    2 +-
 fs/btrfs/inode.c                |  466 +++++++++++++---
 fs/btrfs/ioctl.c                |  198 +++++--
 fs/btrfs/ordered-data.c         |   26 +-
 fs/btrfs/ordered-data.h         |    6 +-
 fs/btrfs/relocation.c           |   13 +-
 fs/btrfs/root-tree.c            |    4 +-
 fs/btrfs/scrub.c                |   25 +-
 fs/btrfs/send.c                 |   62 ++-
 fs/btrfs/super.c                |   60 ++-
 fs/btrfs/sysfs.c                |   14 +-
 fs/btrfs/transaction.c          |  138 ++++-
 fs/btrfs/tree-log.c             |   74 +--
 fs/btrfs/volumes.c              |  454 +++++++++-------
 fs/btrfs/volumes.h              |   57 +-
 include/uapi/linux/btrfs.h      |  188 ++++++-
 include/uapi/linux/btrfs_tree.h |  966 +++++++++++++++++++++++++++++++++
 30 files changed, 2678 insertions(+), 1794 deletions(-)

^ permalink raw reply	[flat|nested] 128+ messages in thread

* [GIT PULL] Btrfs
@ 2016-04-08 20:43 Chris Mason
  0 siblings, 0 replies; 128+ messages in thread
From: Chris Mason @ 2016-04-08 20:43 UTC (permalink / raw)
  To: Linus Torvalds, linux-kernel, linux-btrfs

Hi Linus

We have some fixes queued up in my for-linus-4.6 branch:

git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs.git for-linus-4.6

These are bug fixes, including a really old fsync bug, and a few
trace points to help us track down problems in the quota code.

Mark Fasheh (2) commits (+129/-23):
    btrfs: handle non-fatal errors in btrfs_qgroup_inherit() (+32/-22)
    btrfs: Add qgroup tracing (+97/-1)

Filipe Manana (1) commits (+137/-0):
    Btrfs: fix file/data loss caused by fsync after rename and new inode

Liu Bo (1) commits (+1/-0):
    Btrfs: fix invalid reference in replace_path

Yauhen Kharuzhy (1) commits (+2/-0):
    btrfs: Reset IO error counters before start of device replacing

Qu Wenruo (1) commits (+19/-2):
    btrfs: Output more info for enospc_debug mount option

Davide Italiano (1) commits (+6/-3):
    Btrfs: Improve FL_KEEP_SIZE handling in fallocate

Josef Bacik (1) commits (+1/-1):
    Btrfs: don't use src fd for printk

David Sterba (1) commits (+8/-4):
    btrfs: fallback to vmalloc in btrfs_compare_tree

Total: (9) commits (+303/-33)

 fs/btrfs/ctree.c             |  12 ++--
 fs/btrfs/dev-replace.c       |   2 +
 fs/btrfs/extent-tree.c       |  21 ++++++-
 fs/btrfs/file.c              |   9 ++-
 fs/btrfs/ioctl.c             |   2 +-
 fs/btrfs/qgroup.c            |  63 +++++++++++++-------
 fs/btrfs/relocation.c        |   1 +
 fs/btrfs/tree-log.c          | 137 +++++++++++++++++++++++++++++++++++++++++++
 include/trace/events/btrfs.h |  89 +++++++++++++++++++++++++++-
 9 files changed, 303 insertions(+), 33 deletions(-)

^ permalink raw reply	[flat|nested] 128+ messages in thread

* [GIT PULL] Btrfs
@ 2016-04-01 22:45 Chris Mason
  0 siblings, 0 replies; 128+ messages in thread
From: Chris Mason @ 2016-04-01 22:45 UTC (permalink / raw)
  To: Linus Torvalds, Linux Kernel, linux-btrfs

Hi Linus,

My for-linus-4.6 branch:

git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs.git for-linus-4.6

Has a few fixes Dave Sterba had queued up.  These are all pretty small,
but since they were tested I decided against waiting for more:

Alex Lyakas (2) commits (+18/-10):
    btrfs: do not write corrupted metadata blocks to disk (+13/-2)
    btrfs: csum_tree_block: return proper errno value (+5/-8)

Jiri Kosina (2) commits (+7/-10):
    btrfs: cleaner_kthread() doesn't need explicit freeze (+1/-1)
    btrfs: transaction_kthread() is not freezable (+6/-9)

Total: (4) commits (+25/-20)

 fs/btrfs/disk-io.c | 45 +++++++++++++++++++++++++--------------------
 1 file changed, 25 insertions(+), 20 deletions(-)

^ permalink raw reply	[flat|nested] 128+ messages in thread

* Re: [GIT PULL] Btrfs
  2016-03-22  2:24     ` Chris Mason
@ 2016-03-22  2:38       ` Linus Torvalds
  0 siblings, 0 replies; 128+ messages in thread
From: Linus Torvalds @ 2016-03-22  2:38 UTC (permalink / raw)
  To: Chris Mason, Linus Torvalds, LKML, linux-btrfs

On Mon, Mar 21, 2016 at 7:24 PM, Chris Mason <clm@fb.com> wrote:
>
> Hmmm, rereading my answer I realized I didn't actually answer.  I really
> think this is fixed.  I left the warning only because I originally
> expected something much more exotic.

Ok. It's more that you said the top commit fixes a problem, and the
only case where the top commit makes a difference it will also do that
WARN_ON_ONCE.

But it's pulled, test-built, and pushed out now.

              Linus

^ permalink raw reply	[flat|nested] 128+ messages in thread

* Re: [GIT PULL] Btrfs
  2016-03-22  2:15   ` Chris Mason
@ 2016-03-22  2:24     ` Chris Mason
  2016-03-22  2:38       ` Linus Torvalds
  0 siblings, 1 reply; 128+ messages in thread
From: Chris Mason @ 2016-03-22  2:24 UTC (permalink / raw)
  To: Linus Torvalds, LKML, linux-btrfs

On Mon, Mar 21, 2016 at 10:15:33PM -0400, Chris Mason wrote:
> On Mon, Mar 21, 2016 at 06:16:54PM -0700, Linus Torvalds wrote:
> > On Mon, Mar 21, 2016 at 5:24 PM, Chris Mason <clm@fb.com> wrote:
> > >
> > > I waited an extra day to send this one out because I hit a crash late
> > > last week with CONFIG_DEBUG_PAGEALLOC enabled (fixed in the top commit).
> > 
> > Hmm. If that commit helps, it will spit out a warning.
> > 
> > So is it actually fixed, or just hacked around to the point where you
> > don't get a page fault?

Hmmm, rereading my answer I realized I didn't actually answer.  I really
think this is fixed.  I left the warning only because I originally
expected something much more exotic.

-chris

^ permalink raw reply	[flat|nested] 128+ messages in thread

* Re: [GIT PULL] Btrfs
  2016-03-22  1:16 ` Linus Torvalds
@ 2016-03-22  2:15   ` Chris Mason
  2016-03-22  2:24     ` Chris Mason
  0 siblings, 1 reply; 128+ messages in thread
From: Chris Mason @ 2016-03-22  2:15 UTC (permalink / raw)
  To: Linus Torvalds; +Cc: LKML, linux-btrfs

On Mon, Mar 21, 2016 at 06:16:54PM -0700, Linus Torvalds wrote:
> On Mon, Mar 21, 2016 at 5:24 PM, Chris Mason <clm@fb.com> wrote:
> >
> > I waited an extra day to send this one out because I hit a crash late
> > last week with CONFIG_DEBUG_PAGEALLOC enabled (fixed in the top commit).
> 
> Hmm. If that commit helps, it will spit out a warning.
> 
> So is it actually fixed, or just hacked around to the point where you
> don't get a page fault?
> 
> That WARN_ON_ONCE kind of implies it's a "this happens, but we don't know why".

Hi Linus,

	while (bio_index < bio->bi_vcnt) {
		count = find some crcs
		...
		while (count--) {
			...
			page_bytes_left -= root->sectorsize;
			if (!page_bytes_left) {
				bio_index++;
				/*
				 * make sure we're still inside the
				 * bio before we update page_bytes_left
				 */
				if (bio_index >= bio->bi_vcnt) {
					WARN_ON_ONCE(count);
					goto done;
				}
				bvec++;
				page_bytes_left = bvec->bv_len;
				^^^^^ this was the line that crashed
				      before
			}

		}
	}

done:
	cleanup;
	return;

What should be happening here is we'll goto done when count is zero and
we've walked past the end of the bio.  IOW, both the outer and inner
loops are doing the right tests and the right math, but the inner loop
is improperly accessing a bogus bvec->bv_len because it didn't realize
the outer loop was now completely done.

I don't see a way for it to happen when count != 0, and I ran xfstests
on a few machines to try and triple check that.  If there are new bugs
hiding here, we'll have EIOs returned up to userland because this
function didn't properly fetch the crcs.  If anyone reported the EIOs,
they would send in the WARN_ON output too, so we'd know right away not
to blame their hardware.

I also ran for days with heavy read/write loads without seeing the crc
errors.  I didn't have the WARN_ON, or CONFIG_DEBUG_PAGEALLOC on that
box, but if other things were wrong, we'd have done a lot worse than poke
into bvec->bv_len, and the crc errors would have stopped the test.

-chris


^ permalink raw reply	[flat|nested] 128+ messages in thread

* Re: [GIT PULL] Btrfs
  2016-03-22  0:24 Chris Mason
@ 2016-03-22  1:16 ` Linus Torvalds
  2016-03-22  2:15   ` Chris Mason
  0 siblings, 1 reply; 128+ messages in thread
From: Linus Torvalds @ 2016-03-22  1:16 UTC (permalink / raw)
  To: Chris Mason, Linus Torvalds, LKML, linux-btrfs

On Mon, Mar 21, 2016 at 5:24 PM, Chris Mason <clm@fb.com> wrote:
>
> I waited an extra day to send this one out because I hit a crash late
> last week with CONFIG_DEBUG_PAGEALLOC enabled (fixed in the top commit).

Hmm. If that commit helps, it will spit out a warning.

So is it actually fixed, or just hacked around to the point where you
don't get a page fault?

That WARN_ON_ONCE kind of implies it's a "this happens, but we don't know why".

                  Linus

^ permalink raw reply	[flat|nested] 128+ messages in thread

* [GIT PULL] Btrfs
@ 2016-03-22  0:24 Chris Mason
  2016-03-22  1:16 ` Linus Torvalds
  0 siblings, 1 reply; 128+ messages in thread
From: Chris Mason @ 2016-03-22  0:24 UTC (permalink / raw)
  To: Linus Torvalds, LKML, linux-btrfs

Hi Linus,

I waited an extra day to send this one out because I hit a crash late
last week with CONFIG_DEBUG_PAGEALLOC enabled (fixed in the top commit). 

Please pull my my for-linus-4.6 branch:

git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs.git for-linus-4.6

We have a good sized cleanup of our internal read ahead code, and the
first series of commits from Chandan to enable PAGE_SIZE > sectorsize

Otherwise, it's a normal series of cleanups and fixes, with many thanks
to Dave Sterba for doing most of the patch wrangling this time.

David Sterba (21) commits (+165/-364):
    btrfs: remove error message from search ioctl for nonexistent tree (+0/-2)
    btrfs: drop unused argument in btrfs_ioctl_get_supported_features (+4/-5)
    btrfs: add GET_SUPPORTED_FEATURES to the control device ioctls (+6/-2)
    btrfs: extent same: use GFP_KERNEL for page array allocations (+2/-2)
    Documentation: btrfs: remove usage specific information (+11/-263)
    btrfs: introduce key type for persistent permanent items (+17/-3)
    btrfs: introduce key type for persistent temporary items (+16/-0)
    btrfs: let callers of btrfs_alloc_root pass gfp flags (+11/-10)
    btrfs: teach print_leaf about temporary item subtypes (+11/-0)
    btrfs: teach print_leaf about permanent item subtypes (+10/-2)
    btrfs: switch dev stats item to the permanent item key (+8/-5)
    btrfs: scrub: use GFP_KERNEL on the submission path (+14/-12)
    btrfs: use proper type for failrec in extent_state (+16/-20)
    btrfs: switch balance item to the temporary item key (+3/-3)
    btrfs: switch to kcalloc in btrfs_cmp_data_prepare (+2/-2)
    btrfs: device add and remove: use GFP_KERNEL (+5/-4)
    btrfs: change max_inline default to 2048 (+1/-1)
    btrfs: send: use GFP_KERNEL everywhere (+19/-19)
    btrfs: reada: use GFP_KERNEL everywhere (+5/-5)
    btrfs: fallocate: use GFP_KERNEL (+3/-3)
    btrfs: readdir: use GFP_KERNEL (+1/-1)

Zhao Lei (18) commits (+168/-167):
    btrfs: reada: Use fs_info instead of root in __readahead_hook's argument (+24/-25)
    btrfs: reada: Jump into cleanup in direct way for __readahead_hook() (+21/-19)
    btrfs: reada: reduce additional fs_info->reada_lock in reada_find_zone (+4/-8)
    btrfs: reada: move reada_extent_put to place after __readahead_hook() (+2/-2)
    btrfs: reada: ignore creating reada_extent for a non-existent device (+8/-9)
    btrfs: reada: Pass reada_extent into __readahead_hook directly (+24/-21)
    btrfs: reada: add all reachable mirrors into reada device list (+9/-11)
    btrfs: reada: avoid undone reada extents in btrfs_reada_wait (+8/-1)
    btrfs: reada: Add missed segment checking in reada_find_zone (+3/-1)
    btrfs: reada: Move is_need_to_readahead contition earlier (+9/-11)
    btrfs: reada: Remove level argument in severial functions (+6/-9)
    btrfs: reada: simplify dev->reada_in_flight processing (+10/-18)
    btrfs: reada: bypass adding extent when all zone failed (+5/-0)
    btrfs: reada: Fix in-segment calculation for reada (+2/-2)
    btrfs: Continue write in case of can_not_nocow (+17/-20)
    btrfs: reada: Avoid many times of empty loop (+1/-1)
    btrfs: reada: limit max works count (+12/-1)
    btrfs: reada: Fix a debug code typo (+3/-8)

Chandan Rajendra (12) commits (+321/-165):
    Btrfs: btrfs_ioctl_clone: Truncate complete page after performing clone operation (+3/-2)
    Btrfs: __btrfs_buffered_write: Reserve/release extents aligned to block size (+33/-13)
    Btrfs: btrfs_submit_direct_hook: Handle map_length < bio vector length (+17/-8)
    Btrfs: Use (eb->start, seq) as search key for tree modification log (+17/-17)
    Btrfs: Search for all ordered extents that could span across a page (+20/-8)
    Btrfs: btrfs_page_mkwrite: Reserve space in sectorsized units (+30/-5)
    Btrfs: Compute and look up csums based on sectorsized blocks (+59/-33)
    Btrfs: Clean pte corresponding to page straddling i_size (+11/-3)
    Btrfs: Direct I/O read: Work on sectorsized blocks (+75/-23)
    Btrfs: fallocate: Work with sectorsized blocks (+55/-51)
    Btrfs: Limit inline extents to root->sectorsize (+1/-1)
    Btrfs: Fix block size returned to user space (+0/-1)

Filipe Manana (7) commits (+167/-43):
    Btrfs: fix listxattrs not listing all xattrs packed in the same item (+41/-24)
    Btrfs: do not collect ordered extents when logging that inode exists (+16/-1)
    Btrfs: fix unreplayable log after snapshot delete + parent dir fsync (+20/-0)
    Btrfs: fix file loss on log replay after renaming a file and fsync (+59/-12)
    Btrfs: fix deadlock between direct IO reads and buffered writes (+23/-2)
    Btrfs: fix extent_same allowing destination offset beyond i_size (+3/-0)
    Btrfs: fix race when checking if we can skip fsync'ing an inode (+5/-4)

Josef Bacik (4) commits (+36/-17):
    Btrfs: check reserved when deciding to background flush (+1/-1)
    Btrfs: add transaction space reservation tracepoints (+5/-1)
    Btrfs: change how we update the global block rsv (+20/-14)
    Btrfs: fix truncate_space_check (+10/-1)

Qu Wenruo (3) commits (+68/-19):
    btrfs: Introduce new mount option usebackuproot to replace recovery (+25/-11)
    btrfs: Introduce new mount option to disable tree log replay (+40/-7)
    btrfs: Introduce new mount option alias for nologreplay (+3/-1)

Byongho Lee (2) commits (+1/-6):
    btrfs: simplify expression in btrfs_calc_trans_metadata_size() (+1/-2)
    btrfs: remove redundant error check (+0/-4)

Anand Jain (2) commits (+22/-10):
    btrfs: rename btrfs_print_info to btrfs_print_mod_info (+2/-2)
    btrfs: move btrfs_compression_type to compression.h (+20/-8)

Kinglong Mee (2) commits (+18/-40):
    btrfs: fix memory leak of fs_info in block group cache (+1/-6)
    btrfs: drop null testing before destroy functions (+17/-34)

Deepa Dinamani (1) commits (+26/-22):
    btrfs: Replace CURRENT_TIME by current_fs_time()

Arnd Bergmann (1) commits (+2/-2):
    btrfs: avoid uninitialized variable warning

Dave Jones (1) commits (+3/-6):
    btrfs: remove open-coded swap() in backref.c:__merge_refs

Liu Bo (1) commits (+105/-84):
    Btrfs: fix lockdep deadlock warning due to dev_replace

Adam Buchbinder (1) commits (+16/-16):
    btrfs: Fix misspellings in comments.

Satoru Takeuchi (1) commits (+3/-0):
    Btrfs: Show a warning message if one of objectid reaches its highest value

Ashish Samant (1) commits (+6/-1):
    btrfs: Print Warning only if ENOSPC_DEBUG is enabled

Sudip Mukherjee (1) commits (+1/-1):
    btrfs: fix build warning

Chris Mason (1) commits (+10/-0):
    btrfs: make sure we stay inside the bvec during __btrfs_lookup_bio_sums

Rasmus Villemoes (1) commits (+3/-6):
    btrfs: use kbasename in btrfsic_mount

Dan Carpenter (1) commits (+1/-1):
    btrfs: scrub: silence an uninitialized variable warning

Total: (82) commits (+1142/-970)

 Documentation/filesystems/btrfs.txt    | 261 ++------------------------
 fs/btrfs/backref.c                     |  12 +-
 fs/btrfs/check-integrity.c             |  12 +-
 fs/btrfs/compression.h                 |   9 +
 fs/btrfs/ctree.c                       |  36 ++--
 fs/btrfs/ctree.h                       |  87 ++++++---
 fs/btrfs/delayed-inode.c               |  10 +-
 fs/btrfs/delayed-ref.c                 |  12 +-
 fs/btrfs/dev-replace.c                 | 134 +++++++-------
 fs/btrfs/dev-replace.h                 |   7 +-
 fs/btrfs/disk-io.c                     |  71 ++++---
 fs/btrfs/extent-tree.c                 |  40 ++--
 fs/btrfs/extent_io.c                   |  40 ++--
 fs/btrfs/extent_io.h                   |   5 +-
 fs/btrfs/extent_map.c                  |   8 +-
 fs/btrfs/file-item.c                   | 103 +++++++----
 fs/btrfs/file.c                        | 158 +++++++++-------
 fs/btrfs/inode-map.c                   |   3 +
 fs/btrfs/inode.c                       | 326 +++++++++++++++++++++++----------
 fs/btrfs/ioctl.c                       |  35 ++--
 fs/btrfs/ordered-data.c                |   6 +-
 fs/btrfs/print-tree.c                  |  23 ++-
 fs/btrfs/props.c                       |   1 +
 fs/btrfs/reada.c                       | 268 +++++++++++++--------------
 fs/btrfs/root-tree.c                   |   2 +-
 fs/btrfs/scrub.c                       |  32 ++--
 fs/btrfs/send.c                        |  37 ++--
 fs/btrfs/super.c                       |  52 ++++--
 fs/btrfs/tests/btrfs-tests.c           |   6 -
 fs/btrfs/tests/free-space-tree-tests.c |   1 +
 fs/btrfs/tests/inode-tests.c           |   1 +
 fs/btrfs/transaction.c                 |  13 +-
 fs/btrfs/tree-log.c                    | 102 +++++++++--
 fs/btrfs/tree-log.h                    |   2 +
 fs/btrfs/volumes.c                     |  51 +++---
 fs/btrfs/xattr.c                       |  67 ++++---
 36 files changed, 1102 insertions(+), 931 deletions(-)

^ permalink raw reply	[flat|nested] 128+ messages in thread

* [GIT PULL] Btrfs
@ 2016-03-04 18:51 Chris Mason
  0 siblings, 0 replies; 128+ messages in thread
From: Chris Mason @ 2016-03-04 18:51 UTC (permalink / raw)
  To: Linus Torvalds, LKML, linux-btrfs

Hi Linus,

We've got a fix in my for-linus-4.5 branch:

git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs.git for-linus-4.5

Filipe nailed down a problem where tree log replay would do some work
that orphan code wasn't expecting to be done yet, leading to BUG_ON.

Filipe Manana (1) commits (+9/-1):
    Btrfs: fix loading of orphan roots leading to BUG_ON

Total: (1) commits (+9/-1)

 fs/btrfs/root-tree.c | 10 +++++++++-
 1 file changed, 9 insertions(+), 1 deletion(-)

^ permalink raw reply	[flat|nested] 128+ messages in thread

* [GIT PULL] Btrfs
@ 2016-02-19 19:08 Chris Mason
  0 siblings, 0 replies; 128+ messages in thread
From: Chris Mason @ 2016-02-19 19:08 UTC (permalink / raw)
  To: Linus Torvalds, LKML, btrfs

Hi Linus,

My for-linus-4.5 branch has a btrfs DIO error passing fix.  I know how
much you love DIO, so I'm going to suggest against reading it.  We'll
follow up with a patch to drop the error arg from dio_end_io in the
next merge window.

git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs.git for-linus-4.5

Filipe Manana (1) commits (+2/-0):
    Btrfs: fix direct IO requests not reporting IO error to user space

Total: (1) commits (+2/-0)

 fs/btrfs/inode.c | 2 ++
 1 file changed, 2 insertions(+)

^ permalink raw reply	[flat|nested] 128+ messages in thread

* [GIT PULL] Btrfs
@ 2016-02-12 16:43 Chris Mason
  0 siblings, 0 replies; 128+ messages in thread
From: Chris Mason @ 2016-02-12 16:43 UTC (permalink / raw)
  To: Linus Torvalds, linux-btrfs, LKML

Hi Linus,

Please pull my for-linus-4.5 branch:

git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs.git for-linus-4.5

This has a few fixes from Filipe, along with a readdir fix from Dave
that we've been testing for some time.

Filipe Manana (4) commits (+115/-68):
    Btrfs: remove no longer used function extent_read_full_page_nolock() (+12/-42)
    Btrfs: fix hang on extent buffer lock caused by the inode_paths ioctl (+6/-4)
    Btrfs: fix page reading in extent_same ioctl leading to csum errors (+21/-8)
    Btrfs: fix invalid page accesses in extent_same (dedup) ioctl (+76/-14)

David Sterba (1) commits (+16/-3):
    btrfs: properly set the termination value of ctx->pos in readdir

Total: (5) commits (+131/-71)

 fs/btrfs/backref.c       |  10 ++--
 fs/btrfs/compression.c   |   6 +--
 fs/btrfs/delayed-inode.c |   3 +-
 fs/btrfs/delayed-inode.h |   2 +-
 fs/btrfs/extent_io.c     |  45 +++++-------------
 fs/btrfs/extent_io.h     |   3 --
 fs/btrfs/inode.c         |  14 +++++-
 fs/btrfs/ioctl.c         | 119 ++++++++++++++++++++++++++++++++++++++---------
 8 files changed, 131 insertions(+), 71 deletions(-)

^ permalink raw reply	[flat|nested] 128+ messages in thread

* [GIT PULL] Btrfs
@ 2016-01-29 18:42 Chris Mason
  0 siblings, 0 replies; 128+ messages in thread
From: Chris Mason @ 2016-01-29 18:42 UTC (permalink / raw)
  To: Linus Torvalds, btrfs, Linux Kernel

Hi Linus,

We have some fixes queued up in my for-linus-4.5 branch:

git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs.git for-linus-4.5

Dave had a small collection of fixes to the new free space tree code,
one of which was keeping our sysfs files more up to date with feature
bits as different things get enabled (lzo, raid5/6, etc).

I should have kept the sysfs stuff for rc3, since we always manage to
trip over something.  This time it was GFP_KERNEL from somewhere that is
NOFS only. Instead of rebasing it out I've put a revert in, and we'll
fix it properly for rc3.

Otherwise, Filipe fixed a btrfs DIO race and Qu Wenruo fixed up a
use-after-free in our tracepoints that Dave Jones reported.

David Sterba (10) commits (+90/-20):
    btrfs: sysfs: check initialization state before updating features (+3/-0)
    btrfs: sysfs: introduce helper for syncing bits with sysfs files (+33/-0)
    btrfs: synchronize incompat feature bits with sysfs files (+17/-0)
    btrfs: sysfs: fix typo in compat_ro attribute definition (+1/-1)
    Revert "btrfs: clear PF_NOFREEZE in cleaner_kthread()" (+0/-1)
    btrfs: add free space tree to the cow-only list (+2/-1)
    btrfs: tweak free space tree bitmap allocation (+16/-2)
    btrfs: sysfs: add free-space-tree bit attribute (+2/-0)
    btrfs: add free space tree to lockdep classes (+1/-0)
    btrfs: tests: switch to GFP_KERNEL (+15/-15)

Chris Mason (2) commits (+1/-18):
    Revert "btrfs: synchronize incompat feature bits with sysfs files" (+0/-17)
    btrfs: don't use GFP_HIGHMEM for free-space-tree bitmap kzalloc (+1/-1)

Filipe Manana (1) commits (+39/-11):
    Btrfs: fix race between fsync and lockless direct IO writes

Qu Wenruo (1) commits (+1/-1):
    btrfs: async-thread: Fix a use-after-free error for trace

Total: (14) commits (+131/-50)

 fs/btrfs/async-thread.c          |  2 +-
 fs/btrfs/disk-io.c               |  2 +-
 fs/btrfs/free-space-tree.c       | 18 ++++++++++++++++--
 fs/btrfs/inode.c                 | 36 ++++++++++++++++++++++++++++--------
 fs/btrfs/relocation.c            |  3 ++-
 fs/btrfs/sysfs.c                 | 35 +++++++++++++++++++++++++++++++++++
 fs/btrfs/sysfs.h                 |  5 ++++-
 fs/btrfs/tests/btrfs-tests.c     | 10 +++++-----
 fs/btrfs/tests/extent-io-tests.c | 12 ++++++------
 fs/btrfs/tests/inode-tests.c     |  8 ++++----
 fs/btrfs/tree-log.c              | 14 +++++++++++---
 11 files changed, 113 insertions(+), 32 deletions(-)

^ permalink raw reply	[flat|nested] 128+ messages in thread

* [GIT PULL] Btrfs
@ 2016-01-22 16:34 Chris Mason
  0 siblings, 0 replies; 128+ messages in thread
From: Chris Mason @ 2016-01-22 16:34 UTC (permalink / raw)
  To: Linus Torvalds, Linux Kernel, btrfs

Hi Linus,

Please pull my for-linus-4.5 branch:

git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs.git for-linus-4.5

These are mostly fixes that we've been testing, but also we grabbed and
tested a few small cleanups that had been on the list for a while.

Zhao Lei's patchset also fixes some early ENOSPC buglets.

Zhao Lei (10) commits (+85/-115):
    btrfs: Use direct way to determine raid56 write/recover mode (+2/-1)
    btrfs: Fix calculation of rbio->dbitmap's size calculation (+3/-3)
    btrfs: Remove unnecessary ClearPageUptodate for raid56 (+0/-2)
    btrfs: delete unused argument in btrfs_copy_from_user (+2/-4)
    btrfs: Use unified stripe_page's index calculation (+21/-22)
    btrfs: merge functions for wait snapshot creation (+22/-21)
    btrfs: use rbio->nr_pages to reduce calculation (+7/-12)
    btrfs: Small cleanup for get index_srcdev loop (+20/-22)
    btrfs: raid56: Use raid_write_end_io for scrub (+5/-27)
    btrfs: Fix no_space in write and rm loop (+3/-1)

Filipe Manana (2) commits (+11/-9):
    Btrfs: fix deadlock running delayed iputs at transaction commit time (+10/-8)
    Btrfs: fix typo in log message when starting a balance (+1/-1)

Qu Wenruo (2) commits (+80/-50):
    btrfs: Enhance super validation check (+48/-49)
    btrfs: Enhance chunk validation check (+32/-1)

Jeff Mahoney (1) commits (+25/-17):
    btrfs: cleanup, stop casting for extent_map->lookup everywhere

Colin Ian King (1) commits (+1/-1):
    btrfs: remove duplicate const specifier

Dan Carpenter (1) commits (+1/-1):
    Btrfs: clean up an error code in btrfs_init_space_info()

Geliang Tang (1) commits (+5/-5):
    btrfs: fix iterator with update error in backref.c

Chandan Rajendra (1) commits (+33/-8):
    Btrfs: Initialize btrfs_root->highest_objectid when loading tree root and subvolume roots

Tsutomu Itoh (1) commits (+22/-7):
    Btrfs: fix output of compression message in btrfs_parse_options()

Sebastian Andrzej Siewior (1) commits (+1/-0):
    btrfs: initialize the seq counter in struct btrfs_device

Total: (21) commits (+264/-213)

 fs/btrfs/backref.c     |  10 ++--
 fs/btrfs/ctree.h       |   3 +-
 fs/btrfs/dev-replace.c |   2 +-
 fs/btrfs/disk-io.c     | 129 ++++++++++++++++++++++++++++++-------------------
 fs/btrfs/extent-tree.c |  37 +++++++++++---
 fs/btrfs/extent_map.c  |   2 +-
 fs/btrfs/extent_map.h  |  10 +++-
 fs/btrfs/file.c        |   6 +--
 fs/btrfs/inode-map.c   |   9 +---
 fs/btrfs/inode-map.h   |   1 +
 fs/btrfs/inode.c       |  24 +--------
 fs/btrfs/ioctl.c       |   4 ++
 fs/btrfs/raid56.c      | 100 ++++++++++++++------------------------
 fs/btrfs/scrub.c       |   4 +-
 fs/btrfs/super.c       |  29 ++++++++---
 fs/btrfs/volumes.c     | 107 +++++++++++++++++++++++++---------------
 16 files changed, 264 insertions(+), 213 deletions(-)

^ permalink raw reply	[flat|nested] 128+ messages in thread

* Re: [GIT PULL] Btrfs
  2016-01-18 10:25 ` Martin Steigerwald
@ 2016-01-18 10:52   ` Holger Hoffstätte
  0 siblings, 0 replies; 128+ messages in thread
From: Holger Hoffstätte @ 2016-01-18 10:52 UTC (permalink / raw)
  To: Martin Steigerwald; +Cc: Btrfs mailing list

(trimmed cc:)

On 01/18/16 11:25, Martin Steigerwald wrote:
> Chris,
> 
> Am Sonntag, 17. Januar 2016, 18:30:34 CET schrieb Chris Mason:
>> For very large filesystems (30T+) our existing free space caching code
>> can end up taking a huge amount of time during commits.  The new tree
>> based code is faster and less work overall to update as the commit
>> progresses.
> 
> Will be interesting to see whether this also helps with:
> 
> [Bug 90401] New: btrfs kworker thread uses up 100% of a Sandybridge core for 
> minutes on random write into big file

Unlikely, because the fst addresses something entirely different. It's much
more likely that whatever CPU spinning was going on there was addressed by
Josef's allocator fixes in 4.4 [1], which removed a lot of looping and
unnecessary/repeated work.

-h

[1] https://git.kernel.org/cgit/linux/kernel/git/mason/linux-btrfs.git/log/?h=for-linus-4.4&ofs=50


^ permalink raw reply	[flat|nested] 128+ messages in thread

* Re: [GIT PULL] Btrfs
  2016-01-17 23:30 Chris Mason
@ 2016-01-18 10:25 ` Martin Steigerwald
  2016-01-18 10:52   ` Holger Hoffstätte
  0 siblings, 1 reply; 128+ messages in thread
From: Martin Steigerwald @ 2016-01-18 10:25 UTC (permalink / raw)
  To: Chris Mason; +Cc: Linus Torvalds, Btrfs mailing list, LKML

Chris,

Am Sonntag, 17. Januar 2016, 18:30:34 CET schrieb Chris Mason:
> For very large filesystems (30T+) our existing free space caching code
> can end up taking a huge amount of time during commits.  The new tree
> based code is faster and less work overall to update as the commit
> progresses.

Will be interesting to see whether this also helps with:

[Bug 90401] New: btrfs kworker thread uses up 100% of a Sandybridge core for 
minutes on random write into big file

https://bugzilla.kernel.org/show_bug.cgi?id=90401

Thanks,
-- 
Martin

^ permalink raw reply	[flat|nested] 128+ messages in thread

* [GIT PULL] Btrfs
@ 2016-01-17 23:30 Chris Mason
  2016-01-18 10:25 ` Martin Steigerwald
  0 siblings, 1 reply; 128+ messages in thread
From: Chris Mason @ 2016-01-17 23:30 UTC (permalink / raw)
  To: Linus Torvalds, Btrfs mailing list, LKML

Hi Linus,

Please pull my for-linus-4.5 branch:

git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs.git for-linus-4.5

This has our usual assortment of fixes and cleanups, but the biggest
change included is Omar Sandoval's free space tree.  It's not the
default yet, mounting -o space_cache=v2 enables it and sets a readonly
compat bit.  The tree can actually be deleted and regenerated if there
are any problems, but it has held up really well in testing so far.

For very large filesystems (30T+) our existing free space caching code
can end up taking a huge amount of time during commits.  The new tree
based code is faster and less work overall to update as the commit
progresses.

Omar worked on this during the summer and we'll hammer on it in
production here at FB over the next few months.

David Sterba (36) commits (+320/-341):
    btrfs: verbose error when we find an unexpected item in sys_array (+3/-0)
    btrfs: statfs: report zero available if metadata are exhausted (+24/-0)
    btrfs tests: replace whole ops structure for free space tests (+8/-6)
    btrfs: preallocate path for snapshot creation at ioctl time (+8/-6)
    btrfs: don't use slab cache for struct btrfs_delalloc_work (+2/-12)
    btrfs: do an allocation earlier during snapshot creation (+9/-11)
    btrfs: constify remaining structs with function pointers (+8/-8)
    btrfs: remove a trivial helper btrfs_set_buffer_uptodate (+3/-9)
    btrfs: make extent_range_clear_dirty_for_io return void (+2/-3)
    btrfs: use GFP_KERNEL for allocations in ioctl handlers (+5/-5)
    btrfs: sink parameter wait to btrfs_alloc_delalloc_work (+4/-4)
    btrfs: cleanup, use enum values for btrfs_path reada (+30/-30)
    btrfs: make extent_clear_unlock_delalloc return void (+3/-4)
    btrfs: make clear_extent_buffer_uptodate return void (+2/-3)
    btrfs: drop unused parameter from lock_extent_bits (+27/-27)
    btrfs: make clear_extent_bit helpers static inline (+38/-48)
    btrfs: use smaller type for btrfs_path lowest_level (+1/-1)
    btrfs: make extent_range_redirty_for_io return void (+2/-3)
    btrfs: use GFP_KERNEL for xattr and acl allocations (+3/-3)
    btrfs: use GFP_KERNEL for allocations of workqueues (+2/-2)
    btrfs: drop duplicate prefix from scrub workqueues (+5/-5)
    btrfs: better packing of btrfs_delayed_extent_op (+12/-15)
    btrfs: make set_extent_buffer_uptodate return void (+2/-3)
    btrfs: remove wait from struct btrfs_delalloc_work (+3/-9)
    btrfs: make set_extent_bit helpers static inline (+46/-56)
    btrfs: allocate root item at snapshot ioctl time (+13/-6)
    btrfs: cleanup, remove stray return statements (+0/-9)
    btrfs: handle invalid num_stripes in sys_array (+8/-0)
    btrfs: use smaller type for btrfs_path locks (+1/-1)
    btrfs: use smaller type for btrfs_path reada (+1/-1)
    btrfs: make end_extent_writepage return void (+3/-6)
    btrfs: make set_range_writeback return void (+1/-2)
    btrfs: put delayed item hook into inode (+29/-31)
    btrfs: make btrfs_close_one_device static (+2/-2)
    btrfs: make lock_extent static inline (+6/-6)
    btrfs: constify static arrays (+4/-4)

Filipe Manana (13) commits (+209/-74):
    Btrfs: fix race between free space endio workers and space cache writeout (+19/-0)
    Btrfs: fix fitrim discarding device area reserved for boot loader's use (+10/-10)
    Btrfs: fix unprotected list operations at btrfs_write_dirty_block_groups (+17/-2)
    Btrfs: fix race when finishing dev replace leading to transaction abort (+15/-2)
    Btrfs: fix error path when failing to submit bio for direct IO write (+27/-27)
    Btrfs: fix leaking of ordered extents after direct IO write error (+38/-5)
    Btrfs: fix deadlock between direct IO write and defrag/readpages (+13/-17)
    Btrfs: fix transaction handle leak on failure to create hard link (+4/-2)
    Btrfs: fix number of transaction units required to create symlink (+3/-1)
    Btrfs: don't leave dangling dentry if symlink creation failed (+7/-4)
    Btrfs: send, don't BUG_ON() when an empty symlink is found (+15/-1)
    Btrfs: fix memory leaks after transaction is aborted (+17/-0)
    Btrfs: fix locking bugs when defragging leaves (+24/-3)

Omar Sandoval (9) commits (+2926/-108):
    Btrfs: wire up the free space tree to the extent tree (+33/-3)
    Btrfs: introduce the free space B-tree on-disk format (+40/-1)
    Btrfs: add extent buffer bitmap sanity tests (+160/-16)
    Btrfs: add helpers for read-only compat bits (+82/-0)
    Btrfs: add extent buffer bitmap operations (+155/-0)
    Btrfs: add free space tree sanity tests (+646/-48)
    Btrfs: add free space tree mount option (+88/-10)
    Btrfs: implement the free space B-tree (+1686/-4)
    Btrfs: refactor caching_thread() (+36/-26)

Chris Mason (3) commits (+31/-17):
    btrfs: don't run delayed references while we are creating the free space tree (+28/-16)
    btrfs: fix warning on uninit variable in btrfs_finish_chunk_alloc (+1/-1)
    btrfs: fix compiling with CONFIG_BTRFS_DEBUG enabled. (+2/-0)

Alexandru Moise (3) commits (+12/-12):
    btrfs: switch __btrfs_fs_incompat return type from int to bool (+1/-1)
    btrfs: pass proper enum type to start_transaction() (+10/-5)
    btrfs: zero out delayed node upon allocation (+1/-6)

Geliang Tang (3) commits (+36/-106):
    btrfs: use list_for_each_entry_safe in free-space-cache.c (+4/-10)
    btrfs: use list_for_each_entry* in check-integrity.c (+26/-79)
    btrfs: use list_for_each_entry* in backref.c (+6/-17)

Byongho Lee (2) commits (+149/-180):
    btrfs: remove unused inode argument from uncompress_inline() (+2/-3)
    Btrfs: use linux/sizes.h to represent constants (+147/-177)

Anand Jain (1) commits (+1/-0):
    Btrfs: add missing brelse when superblock checksum fails

Zhao Lei (1) commits (+0/-8):
    btrfs: Support convert to -d dup for btrfs-convert

Josef Bacik (1) commits (+15/-2):
    Btrfs: igrab inode in writepage

Sam Tygier (1) commits (+7/-0):
    Btrfs: Check metadata redundancy on balance

Total: (73) commits (+3706/-848)

 fs/btrfs/Makefile                      |    5 +-
 fs/btrfs/acl.c                         |    4 +-
 fs/btrfs/async-thread.c                |    4 +-
 fs/btrfs/backref.c                     |   23 +-
 fs/btrfs/btrfs_inode.h                 |    4 +
 fs/btrfs/check-integrity.c             |  105 +--
 fs/btrfs/ctree.c                       |   11 +-
 fs/btrfs/ctree.h                       |  178 +++-
 fs/btrfs/delayed-inode.c               |    7 +-
 fs/btrfs/delayed-ref.c                 |    4 +-
 fs/btrfs/delayed-ref.h                 |    8 +-
 fs/btrfs/disk-io.c                     |   49 +-
 fs/btrfs/disk-io.h                     |    5 +-
 fs/btrfs/extent-tree.c                 |  200 ++--
 fs/btrfs/extent-tree.h                 |    0
 fs/btrfs/extent_io.c                   |  310 ++++---
 fs/btrfs/extent_io.h                   |  136 ++-
 fs/btrfs/file-item.c                   |    4 +-
 fs/btrfs/file.c                        |    8 +-
 fs/btrfs/free-space-cache.c            |   28 +-
 fs/btrfs/free-space-cache.h            |    2 +-
 fs/btrfs/free-space-tree.c             | 1591 ++++++++++++++++++++++++++++++++
 fs/btrfs/free-space-tree.h             |   72 ++
 fs/btrfs/inode-map.c                   |    8 +-
 fs/btrfs/inode.c                       |  312 ++++---
 fs/btrfs/ioctl.c                       |   74 +-
 fs/btrfs/locking.c                     |    2 -
 fs/btrfs/raid56.c                      |    2 -
 fs/btrfs/relocation.c                  |   12 +-
 fs/btrfs/scrub.c                       |   16 +-
 fs/btrfs/send.c                        |   16 +-
 fs/btrfs/send.h                        |    4 +-
 fs/btrfs/super.c                       |   84 +-
 fs/btrfs/tests/btrfs-tests.c           |   58 ++
 fs/btrfs/tests/btrfs-tests.h           |   10 +
 fs/btrfs/tests/extent-io-tests.c       |  149 ++-
 fs/btrfs/tests/free-space-tests.c      |  239 ++---
 fs/btrfs/tests/free-space-tree-tests.c |  571 ++++++++++++
 fs/btrfs/tests/inode-tests.c           |    2 +-
 fs/btrfs/tests/qgroup-tests.c          |   20 +-
 fs/btrfs/transaction.c                 |   50 +-
 fs/btrfs/transaction.h                 |    2 +
 fs/btrfs/tree-defrag.c                 |   27 +-
 fs/btrfs/volumes.c                     |   93 +-
 fs/btrfs/volumes.h                     |    3 +-
 fs/btrfs/xattr.c                       |    4 +-
 include/trace/events/btrfs.h           |    3 +-
 47 files changed, 3690 insertions(+), 829 deletions(-)

^ permalink raw reply	[flat|nested] 128+ messages in thread

* [GIT PULL] Btrfs
@ 2015-12-18 17:28 Chris Mason
  0 siblings, 0 replies; 128+ messages in thread
From: Chris Mason @ 2015-12-18 17:28 UTC (permalink / raw)
  To: Linus Torvalds, linux-kernel, linux-btrfs

Hi Linus,

A couple of small fixes in my for-linus-4.4 branch:

git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs.git for-linus-4.4

Chris Mason (2) commits (+19/-7):
    Btrfs: check for empty bitmap list in setup_cluster_bitmaps (+5/-3)
    Btrfs: check prepare_uptodate_page() error code earlier (+14/-4)

Filipe Manana (2) commits (+9/-7):
    Btrfs: fix unprotected list move from unused_bgs to deleted_bgs list (+8/-5)
    Btrfs: fix transaction handle leak in balance (+1/-2)

Holger Hoffstätte (1) commits (+1/-1):
    btrfs: fix misleading warning when space cache failed to load

Total: (5) commits (+29/-15)

 fs/btrfs/extent-tree.c      | 10 +++++++---
 fs/btrfs/file.c             | 18 ++++++++++++++----
 fs/btrfs/free-space-cache.c | 10 ++++++----
 fs/btrfs/transaction.c      |  1 -
 fs/btrfs/transaction.h      |  2 +-
 fs/btrfs/volumes.c          |  3 +--
 6 files changed, 29 insertions(+), 15 deletions(-)

^ permalink raw reply	[flat|nested] 128+ messages in thread

* [GIT PULL] Btrfs
@ 2015-11-27 21:13 Chris Mason
  0 siblings, 0 replies; 128+ messages in thread
From: Chris Mason @ 2015-11-27 21:13 UTC (permalink / raw)
  To: Linus Torvalds, linux-btrfs, LKML

Hi Linus,

I have a few fixes ready in my for-linus-4.4 branch.

git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs.git for-linus-4.4

This has Mark Fasheh's patches to fix quota accounting during subvol
deletion, which we've been working on for a while now.  The patch is
pretty small but it's a key fix.

Otherwise it's a random assortment.

Filipe Manana (5) commits (+146/-49):
    Btrfs: fix the number of transaction units needed to remove a block group (+38/-5)
    Btrfs: use global reserve when deleting unused block group after ENOSPC (+52/-26)
    Btrfs: fix scrub preventing unused block groups from being deleted (+24/-1)
    Btrfs: fix race between cleaner kthread and space cache writeout (+16/-13)
    Btrfs: fix race between scrub and block group deletion (+16/-4)

David Sterba (3) commits (+10/-8):
    btrfs: fix clashing number of the enhanced balance usage filter (+1/-1)
    btrfs: fix signed overflows in btrfs_sync_file (+7/-3)
    btrfs: fix rcu warning during device replace (+2/-4)

Zhaolei (1) commits (+18/-2):
    btrfs: Continue replace when set_block_ro failed

Mark Fasheh (1) commits (+42/-7):
    btrfs: qgroup: account shared subtree during snapshot delete

Justin Maggard (1) commits (+2/-1):
    btrfs: qgroup: fix quota disable during rescan

Holger Hoffstätte (1) commits (+2/-2):
    btrfs: fix balance range usage filters in 4.4-rc

Dan Carpenter (1) commits (+3/-1):
    Btrfs: tests: checking for NULL instead of IS_ERR()

Josef Bacik (1) commits (+1/-1):
    Btrfs: use btrfs_get_fs_root in resolve_indirect_ref

Total: (14) commits (+224/-71)

 fs/btrfs/backref.c                |   2 +-
 fs/btrfs/ctree.h                  |   4 ++
 fs/btrfs/extent-tree.c            | 123 +++++++++++++++++++++++++++++++-------
 fs/btrfs/file.c                   |  10 +++-
 fs/btrfs/inode.c                  |  24 +-------
 fs/btrfs/qgroup.c                 |   5 +-
 fs/btrfs/scrub.c                  |  62 +++++++++++++++++--
 fs/btrfs/tests/free-space-tests.c |   4 +-
 fs/btrfs/transaction.c            |  32 ++++++++++
 fs/btrfs/transaction.h            |   4 ++
 fs/btrfs/volumes.c                |  13 ++--
 fs/btrfs/volumes.h                |   2 +-
 12 files changed, 219 insertions(+), 66 deletions(-)

^ permalink raw reply	[flat|nested] 128+ messages in thread

* [GIT PULL] Btrfs
@ 2015-11-13 20:37 Chris Mason
  0 siblings, 0 replies; 128+ messages in thread
From: Chris Mason @ 2015-11-13 20:37 UTC (permalink / raw)
  To: Linus Torvalds, linux-btrfs, LKML

Hi Linus,

My for-linus-4.4 branch is ready for pulling:

git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs.git for-linus-4.4

Some of this got cherry-picked from a github repo this week, but I
verified the patches.  We have three small scrub cleanups and a
collection of fixes.

Zhao Lei (9) commits (+97/-122):
    btrfs: Use scrub_checksum_data and scrub_checksum_tree_block for scrub_recheck_block_checksum (+36/-94)
    btrfs: Reset sblock->xxx_error stats before calling scrub_recheck_block_checksum (+4/-0)
    btrfs: scrub: set error stats when tree block spanning stripes (+6/-0)
    btrfs: Reduce unnecessary arguments in scrub_recheck_block (+8/-20)
    btrfs: Fix lost-data-profile caused by auto removing bg (+5/-2)
    btrfs: Use fs_info directly in btrfs_delete_unused_bgs (+2/-2)
    btrfs: scrub: setup all fields for sblock_to_check (+12/-0)
    btrfs: Fix lost-data-profile caused by balance bg (+21/-0)
    btrfs: Remove len argument from scrub_find_csum (+3/-4)

Filipe Manana (6) commits (+61/-25):
    Btrfs: fix race leading to incorrect item deletion when dropping extents (+12/-4)
    Btrfs: fix race leading to BUG_ON when running delalloc for nodatacow (+8/-2)
    Btrfs: fix sleeping inside atomic context in qgroup rescan worker (+0/-1)
    Btrfs: fix extent accounting for partial direct IO writes (+37/-15)
    Btrfs: fix race waiting for qgroup rescan worker (+1/-2)
    Btrfs: fix race when listing an inode's xattrs (+3/-1)

Justin Maggard (1) commits (+9/-3):
    btrfs: qgroup: exit the rescan worker during umount

Total: (16) commits (+167/-150)

 fs/btrfs/disk-io.c     |   3 +
 fs/btrfs/extent-tree.c |  11 +--
 fs/btrfs/file.c        |  16 +++--
 fs/btrfs/inode.c       |  62 ++++++++++++-----
 fs/btrfs/qgroup.c      |  13 ++--
 fs/btrfs/scrub.c       | 179 ++++++++++++++++++-------------------------------
 fs/btrfs/volumes.c     |  21 ++++++
 fs/btrfs/xattr.c       |   4 +-
 8 files changed, 163 insertions(+), 146 deletions(-)

^ permalink raw reply	[flat|nested] 128+ messages in thread

* [GIT PULL] Btrfs
@ 2015-11-06 18:44 Chris Mason
  0 siblings, 0 replies; 128+ messages in thread
From: Chris Mason @ 2015-11-06 18:44 UTC (permalink / raw)
  To: Linus Torvalds, linux-btrfs, LKML

Hi Linus,

Please pull my for-linus-4.4 branch:

git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs.git for-linus-4.4

My branch was based on 4.3-rc5, and it ended up with a minor conflict
against the btrfs changes sent in for a later rc.  I put a sample merge
resolution up here:

git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs.git for-linus-4.4-merged

The only non-obvious part of all this is in fs/btrfs/volumes.h.  Both
sides of the merge ended up creating the BTRFS_BALANCE_ARGS_MASK
definition, which was my fault (sorry) for letting a duplicate patch in
the mix.  When you merge, please keep the longer of the two definitions,
since we added to it later in the for-linus-4.4 branch.

I'm happy to redo things merged with 4.3-final if you don't want to
bother with this, sorry for the hassle.

On to the fun part, we have a lot of subvolume quota improvements in here,
along with big piles of cleanups from Dave Sterba and Anand Jain and
others.

Josef pitched in a batch of allocator fixes based on production use here
at FB.  We found that mount -o ssd_spread greatly improved our
performance on hardware raid5/6, but it exposed some CPU bottlenecks in
the allocator.  These patches make a huge difference.

Qu Wenruo (24) commits (+1031/-375):
    btrfs: extent-tree: Add new version of btrfs_check_data_free_space and btrfs_free_reserved_data_space. (+79/-9)
    btrfs: extent-tree: Switch to new check_data_free_space and free_reserved_data_space (+27/-19)
    btrfs: qgroup: Avoid calling btrfs_free_reserved_data_space in clear_bit_hook (+22/-12)
    btrfs: delayed_ref: Add new function to record reserved space into delayed ref (+43/-0)
    btrfs: extent-tree: Add new version of btrfs_delalloc_reserve/release_space (+61/-0)
    btrfs: extent_io: Introduce needed structure for recoding set/clear bits (+12/-0)
    btrfs: qgroup: Introduce functions to release/free qgroup reserve data (+62/-0)
    btrfs: extent-tree: Switch to new delalloc space reserve and release (+38/-25)
    btrfs: delayed_ref: release and free qgroup reserved at proper timing (+34/-4)
    btrfs: qgroup: Fix a race in delayed_ref which leads to abort trans (+32/-21)
    btrfs: extent_io: Introduce new function clear_record_extent_bits() (+42/-11)
    btrfs: qgroup: Fix a rebase bug which will cause qgroup double free (+0/-4)
    btrfs: extent_io: Introduce new function set_record_extent_bits (+56/-18)
    btrfs: qgroup: Introduce new functions to reserve/free metadata (+48/-0)
    btrfs: qgroup: Don't copy extent buffer to do qgroup rescan (+16/-10)
    btrfs: qgroup: Add new trace point for qgroup data reserve (+130/-2)
    btrfs: qgroup: Introduce btrfs_qgroup_reserve_data function (+52/-0)
    btrfs: fallocate: Add support to accurate qgroup reserve (+117/-44)
    btrfs: qgroup: Check if qgroup reserved space leaked (+34/-0)
    btrfs: qgroup: Cleanup old inaccurate facilities (+60/-156)
    btrfs: qgroup: Add handler for NOCOW and inline (+21/-1)
    btrfs: qgroup: Use new metadata reservation. (+13/-36)
    btrfs: Fix a data space underflow warning (+8/-3)
    btrfs: Add handler for invalidate page (+24/-0)

David Sterba (17) commits (+393/-112):
    btrfs: introduce ratelimited _in_rcu variants of message printing functions (+38/-0)
    btrfs: remove waitqueue_active check from btrfs_rm_dev_replace_unblocked (+1/-2)
    btrfs: add balance filters limits, stripes and usage to supported mask (+4/-1)
    btrfs: comment the rest of implicit barriers before waitqueue_active (+22/-0)
    btrfs: introduce ratelimited variants of message printing functions (+21/-0)
    btrfs: switch message printers to ratelimited _in_rcu variants (+16/-16)
    btrfs: introduce _in_rcu variants of message printing functions (+29/-0)
    btrfs: extend balance filter usage to take minimum and maximum (+60/-4)
    btrfs: extend balance filter limit to take minimum and maximum (+67/-3)
    btrfs: add barrier for waitqueue_active in clear_btree_io_tree (+6/-0)
    btrfs: add comments to barriers before waitqueue_active (+16/-2)
    btrfs: switch message printers to ratelimited variants (+31/-33)
    btrfs: check unsupported filters in balance arguments (+13/-0)
    btrfs: switch message printers to _in_rcu variants (+27/-27)
    btrfs: remove extra barrier before waitqueue_active (+6/-2)
    btrfs: comment waitqueue_active implied by locks (+11/-1)
    btrfs: switch more printks to our helpers (+25/-21)

Anand Jain (14) commits (+205/-184):
    Btrfs: __btrfs_std_error() logic should be consistent w/out CONFIG_PRINTK defined (+5/-22)
    Btrfs: use BTRFS_ERROR_DEV_MISSING_NOT_FOUND when missing device is not found (+2/-4)
    Btrfs: kernel operation should come after user input has been verified (+13/-13)
    Btrfs: enhance btrfs_scratch_superblock to scratch all superblocks (+27/-13)
    Btrfs: rename btrfs_kobj_add_device to btrfs_sysfs_add_device_link (+5/-5)
    Btrfs: rename btrfs_sysfs_remove_one to btrfs_sysfs_remove_mounted (+5/-5)
    Btrfs: rename btrfs_kobj_rm_device to btrfs_sysfs_rm_device_link (+8/-8)
    Btrfs: add btrfs_read_dev_one_super() to read one specific SB (+35/-20)
    Btrfs: SB read failure should return EIO for __bread failure (+19/-7)
    Btrfs: rename btrfs_sysfs_add_one to btrfs_sysfs_add_mounted (+3/-3)
    Btrfs: consolidate btrfs_error() to btrfs_std_error() (+26/-33)
    Btrfs: don't log error from btrfs_get_bdev_and_sb (+0/-1)
    Btrfs: add helper for closing one device (+37/-30)
    Btrfs: rename super_kobj to fsid_kobj (+20/-20)

Josef Bacik (12) commits (+468/-132):
    Btrfs: don't keep trying to build clusters if we are fragmented (+82/-24)
    Btrfs: don't continue setting up space cache when enospc (+20/-0)
    Btrfs: fix prealloc under heavy fragmentation conditions (+9/-0)
    Btrfs: change how we wait for pending ordered extents (+60/-64)
    Btrfs: don't do extra bitmap search in one bit case (+15/-13)
    Btrfs: keep track of max_extent_size per space_info (+34/-1)
    Btrfs: keep track of largest extent in bitmaps (+39/-1)
    Btrfs: cut down on loops through the allocator (+36/-3)
    Btrfs: add a flags field to btrfs_transaction (+16/-18)
    Btrfs: don't loop in allocator for space cache (+1/-1)
    Btrfs: add fragment=* debug mount option (+150/-7)
    Btrfs: fix qgroup sanity tests (+6/-0)

Alexandru Moise (8) commits (+30/-46):
    btrfs: use a single if() statement for one outcome in get_block_rsv() (+3/-7)
    btrfs: declare rsv_count as unsigned int instead of int (+1/-1)
    btrfs: change num_items type from u64 to unsigned int (+8/-6)
    btrfs: cleanup btrfs_balance profile validity checks (+12/-9)
    btrfs: trimming some start_transaction() code away (+1/-14)
    btrfs: memset cur_trans->delayed_refs to zero (+2/-6)
    btrfs: Fixed dsize and last_off declarations (+2/-2)
    btrfs: Fixed declaration of old_len (+1/-1)

Filipe Manana (7) commits (+583/-220):
    Btrfs: fix file corruption and data loss after cloning inline extents (+152/-43)
    Btrfs: send, fix file corruption due to incorrect cloning operations (+173/-27)
    Btrfs: fix regression running delayed references when using qgroups (+44/-134)
    Btrfs: fix double range unlock of hole region when reading page (+6/-2)
    Btrfs: fix hole punching when using the no-holes feature (+13/-0)
    Btrfs: fix truncation of compressed and inlined extents (+68/-14)
    Btrfs: fix regression when running delayed references (+127/-0)

Byongho Lee (4) commits (+55/-56):
    btrfs: compress: put variables defined per compress type in struct to make cache friendly (+48/-46)
    btrfs: replace unnecessary list_for_each_entry_safe to list_for_each_entry (+1/-2)
    btrfs: cleanup iterating over prop_handlers array (+6/-7)
    btrfs: remove unnecessary list_del (+0/-1)

Zhao Lei (3) commits (+125/-98):
    btrfs: use btrfs_raid_array for btrfs_get_num_tolerated_disk_barrier_failures() (+30/-13)
    btrfs: use btrfs_raid_array in btrfs_reduce_alloc_profile (+22/-26)
    btrfs: Move btrfs_raid_array to public (+73/-59)

Luis de Bethencourt (2) commits (+7/-5):
    btrfs: check-integrity: Fix returned errno codes (+2/-2)
    btrfs: reada: Fix returned errno code (+5/-3)

chandan (1) commits (+6/-1):
    Btrfs: find_free_extent: Do not erroneously skip LOOP_CACHING_WAIT state

Liu Bo (1) commits (+4/-4):
    Btrfs: move kobj stuff out of dev_replace lock range

Shan Hai (1) commits (+0/-3):
    btrfs/file.c: remove an unsed varialbe first_index

Chris Mason (1) commits (+3/-5):
    btrfs: fix use after free iterating extrefs

Robin Ruede (1) commits (+8/-2):
    btrfs: fix resending received snapshot with parent

Geliang Tang (1) commits (+1/-1):
    btrfs: fix a comment typo

Jiri Kosina (1) commits (+1/-0):
    btrfs: clear PF_NOFREEZE in cleaner_kthread()

Gabríel Arthúr Pétursson (1) commits (+37/-2):
    btrfs: add balance filter for stripes

Chandan Rajendra (1) commits (+2/-2):
    Btrfs: btrfs_submit_bio_hook: Use btrfs_wq_endio_type values instead of integer constants

Total: (100) commits (+2959/-1248)

 fs/btrfs/backref.c                |  14 +-
 fs/btrfs/check-integrity.c        |   8 +-
 fs/btrfs/compression.c            |  97 ++++---
 fs/btrfs/ctree.c                  |  10 +-
 fs/btrfs/ctree.h                  | 180 ++++++++++--
 fs/btrfs/delayed-inode.c          |   4 +
 fs/btrfs/delayed-ref.c            | 190 +++++++++++--
 fs/btrfs/delayed-ref.h            |  23 +-
 fs/btrfs/dev-replace.c            |  55 ++--
 fs/btrfs/disk-io.c                | 166 ++++++-----
 fs/btrfs/disk-io.h                |   2 +
 fs/btrfs/extent-tree.c            | 572 ++++++++++++++++++++++++++++----------
 fs/btrfs/extent_io.c              | 155 ++++++++---
 fs/btrfs/extent_io.h              |  19 ++
 fs/btrfs/file.c                   | 228 ++++++++++-----
 fs/btrfs/free-space-cache.c       |  79 ++++--
 fs/btrfs/free-space-cache.h       |   1 +
 fs/btrfs/inode-item.c             |   2 +-
 fs/btrfs/inode-map.c              |   6 +-
 fs/btrfs/inode.c                  | 194 ++++++++++---
 fs/btrfs/ioctl.c                  | 285 +++++++++++--------
 fs/btrfs/locking.c                |  12 +
 fs/btrfs/ordered-data.c           |  70 ++++-
 fs/btrfs/ordered-data.h           |   2 +
 fs/btrfs/props.c                  |  13 +-
 fs/btrfs/qgroup.c                 | 229 +++++++++++++--
 fs/btrfs/qgroup.h                 |  31 ++-
 fs/btrfs/raid56.c                 |   6 +-
 fs/btrfs/reada.c                  |   8 +-
 fs/btrfs/relocation.c             |  26 +-
 fs/btrfs/root-tree.c              |  11 +-
 fs/btrfs/scrub.c                  |  42 +--
 fs/btrfs/send.c                   | 212 ++++++++++++--
 fs/btrfs/super.c                  |  57 ++--
 fs/btrfs/sysfs.c                  |  52 ++--
 fs/btrfs/sysfs.h                  |   4 +-
 fs/btrfs/tests/free-space-tests.c |  22 +-
 fs/btrfs/transaction.c            | 129 +++------
 fs/btrfs/transaction.h            |  20 +-
 fs/btrfs/tree-log.c               |  24 +-
 fs/btrfs/volumes.c                | 427 ++++++++++++++++++----------
 fs/btrfs/volumes.h                |  24 +-
 include/trace/events/btrfs.h      | 113 ++++++++
 include/uapi/linux/btrfs.h        |  31 ++-
 44 files changed, 2783 insertions(+), 1072 deletions(-)

^ permalink raw reply	[flat|nested] 128+ messages in thread

* [GIT PULL] Btrfs
@ 2015-10-23 12:47 Chris Mason
  0 siblings, 0 replies; 128+ messages in thread
From: Chris Mason @ 2015-10-23 12:47 UTC (permalink / raw)
  To: Linus Torvalds, btrfs, lkml

Hi Linus,

I have two more small fixes this week in my for-linus-4.3 branch:

git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs.git for-linus-4.3

Qu's fix avoids unneeded COW during fallocate, and Christian
found a memory leak in the error handling of an earlier fix.

Qu Wenruo (1) commits (+1/-1):
    btrfs: Avoid truncate tailing page if fallocate range doesn't exceed inode size

Christian Engelmayer (1) commits (+4/-1):
    btrfs: fix possible leak in btrfs_ioctl_balance()

Total: (2) commits (+5/-2)

 fs/btrfs/file.c  | 2 +-
 fs/btrfs/ioctl.c | 5 ++++-
 2 files changed, 5 insertions(+), 2 deletions(-)


^ permalink raw reply	[flat|nested] 128+ messages in thread

* [GIT PULL] Btrfs
@ 2015-10-16 17:34 Chris Mason
  0 siblings, 0 replies; 128+ messages in thread
From: Chris Mason @ 2015-10-16 17:34 UTC (permalink / raw)
  To: Linus Torvalds, LKML, linux-btrfs

Hi Linus,

I have two more in my for-linus-4.3 branch

git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs.git for-linus-4.3

My commit fixes a bug we hit last week at FB, a combination of lots of
hard links and an admin command to resolve inode numbers.

Dave is adding checks to make sure balance on current kernels ignores
filters it doesn't understand.  The penalty for being wrong is just
doing more work (not crashing etc), but it's a good fix.

Chris Mason (1) commits (+3/-5):
    btrfs: fix use after free iterating extrefs

David Sterba (1) commits (+13/-0):
    btrfs: check unsupported filters in balance arguments

Total: (2) commits (+16/-5)

 fs/btrfs/backref.c | 8 +++-----
 fs/btrfs/ioctl.c   | 5 +++++
 fs/btrfs/volumes.h | 8 ++++++++
 3 files changed, 16 insertions(+), 5 deletions(-)

^ permalink raw reply	[flat|nested] 128+ messages in thread

* [GIT PULL] Btrfs
@ 2015-10-09 17:42 Chris Mason
  0 siblings, 0 replies; 128+ messages in thread
From: Chris Mason @ 2015-10-09 17:42 UTC (permalink / raw)
  To: Linus Torvalds, linux-kernel, linux-btrfs

Hi Linus,

I have a few fixes in my for-linus-4.3 branch:

git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs.git for-linus-4.3

These are small and assorted.  Neil's is the oldest, I dropped the ball
thinking he was going to send it in.

Filipe Manana (3) commits (+26/-12):
    Btrfs: update fix for read corruption of compressed and shared extents (+11/-8)
    Btrfs: send, fix corner case for reference overwrite detection (+5/-3)
    Btrfs: fix deadlock when finalizing block group creation (+10/-1)

NeilBrown (1) commits (+5/-5):
    BTRFS: support NFSv2 export

chandan (1) commits (+4/-0):
    Btrfs: open_ctree: Fix possible memory leak

Total: (5) commits (+35/-17)

 fs/btrfs/disk-io.c     |  4 ++++
 fs/btrfs/export.c      | 10 +++++-----
 fs/btrfs/extent-tree.c |  9 ++++++++-
 fs/btrfs/extent_io.c   | 19 +++++++++++--------
 fs/btrfs/send.c        |  8 +++++---
 fs/btrfs/transaction.c |  1 +
 fs/btrfs/transaction.h |  1 +
 7 files changed, 35 insertions(+), 17 deletions(-)

^ permalink raw reply	[flat|nested] 128+ messages in thread

* [GIT PULL] Btrfs
@ 2015-09-25 17:35 Chris Mason
  0 siblings, 0 replies; 128+ messages in thread
From: Chris Mason @ 2015-09-25 17:35 UTC (permalink / raw)
  To: Linus Torvalds, LKML, linux-btrfs

Hi Linus,

My for-linus-4.3 branch has a few fixes:

git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs.git for-linus-4.3

This is an assorted set I've been queuing up:

Jeff Mahoney tracked down a tricky one where we ended up starting IO on
the wrong mapping for special files in btrfs_evict_inode.  A few people
reported this one on the list.

Filipe found (and provided a test for) a difficult bug in reading
compressed extents, and Josef fixed up some quota record keeping with
snapshot deletion.  Chandan killed off an accounting bug during DIO that
lead to WARN_ONs as we freed inodes.

Filipe Manana (3) commits (+58/-16):
    Btrfs: remove unnecessary locking of cleaner_mutex to avoid deadlock (+0/-4)
    Btrfs: don't initialize a space info as full to prevent ENOSPC (+1/-4)
    Btrfs: fix read corruption of compressed and shared extents (+57/-8)

Josef Bacik (1) commits (+37/-2):
    Btrfs: keep dropped roots in cache until transaction commit

Jeff Mahoney (1) commits (+2/-1):
    btrfs: skip waiting on ordered range for special files

chandan (1) commits (+21/-23):
    Btrfs: Direct I/O: Fix space accounting

Total: (6) commits (+118/-42)

 fs/btrfs/btrfs_inode.h |  2 --
 fs/btrfs/disk-io.c     |  2 --
 fs/btrfs/extent-tree.c |  7 ++----
 fs/btrfs/extent_io.c   | 65 +++++++++++++++++++++++++++++++++++++++++++-------
 fs/btrfs/inode.c       | 45 +++++++++++++++++-----------------
 fs/btrfs/super.c       |  2 --
 fs/btrfs/transaction.c | 32 +++++++++++++++++++++++++
 fs/btrfs/transaction.h |  5 +++-
 8 files changed, 118 insertions(+), 42 deletions(-)

^ permalink raw reply	[flat|nested] 128+ messages in thread

* [GIT PULL] Btrfs
@ 2015-09-11 18:44 Chris Mason
  0 siblings, 0 replies; 128+ messages in thread
From: Chris Mason @ 2015-09-11 18:44 UTC (permalink / raw)
  To: Linus Torvalds, LKML, linux-btrfs

Hi Linus,

We have a few more for the btrfs tree in my for-linus-4.3 branch:

git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs.git for-linus-4.3

These are small cleanups, and also some fixes for our async worker
thread initialization.

I was having some trouble testing these, but it ended up being a
combination of changing around my test servers and a shiny new schedule
while atomic from the new start/finish_plug in writeback_sb_inodes().

That one only hits on btrfs raid5/6 or MD raid10, and if I wasn't
changing a bunch of things in my test setup at once it would have
been really clear.  Fix for writeback_sb_inodes() on the way as well.

Zhao Lei (4) commits (+66/-88):
    btrfs: Remove noused chunk_tree and chunk_objectid from scrub_enumerate_chunks and scrub_chunk (+2/-8)
    btrfs: Cleanup for btrfs_calc_num_tolerated_disk_barrier_failures (+33/-40)
    btrfs: Update out-of-date "skip parity stripe" comment (+1/-1)
    btrfs: Add raid56 support for updating (+30/-39)

Qu Wenruo (1) commits (+35/-24):
    btrfs: async_thread: Fix workqueue 'max_active' value when initializing

Tsutomu Itoh (1) commits (+3/-6):
    Btrfs: cleanup: remove unnecessary check before btrfs_free_path is called

Total: (6) commits (+104/-118)

 fs/btrfs/async-thread.c | 57 ++++++++++++++++++++++---------------
 fs/btrfs/async-thread.h |  2 +-
 fs/btrfs/dev-replace.c  |  3 +-
 fs/btrfs/disk-io.c      | 76 +++++++++++++++++++++++--------------------------
 fs/btrfs/disk-io.h      |  1 +
 fs/btrfs/inode.c        |  3 +-
 fs/btrfs/scrub.c        | 12 ++------
 fs/btrfs/tree-defrag.c  |  3 +-
 fs/btrfs/volumes.c      | 21 +++-----------
 9 files changed, 82 insertions(+), 96 deletions(-)

^ permalink raw reply	[flat|nested] 128+ messages in thread

* [GIT PULL] Btrfs
@ 2015-08-08 19:41 Chris Mason
  0 siblings, 0 replies; 128+ messages in thread
From: Chris Mason @ 2015-08-08 19:41 UTC (permalink / raw)
  To: Linus Torvalds, linux-btrfs, LKML

Hi Linus,

We have a btrfs quota regression fix in my for-linus-4.2 branch:

git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs.git for-linus-4.2

I merged this one on Thursday and have run it through tests against
current master.

Normally I wouldn't have sent this while you were finalizing rc6, but I'm
feeding mosquitoes in the adirondacks next week, so I wanted to get this
one out before leaving.  I'll leave longer tests running and check on
things during the week, but I don't expect any problems.

Qu Wenruo (1) commits (+5/-0):
    btrfs: qgroup: Fix a regression in qgroup reserved space.

Total: (1) commits (+5/-0)

 fs/btrfs/qgroup.c | 5 +++++
 1 file changed, 5 insertions(+)

^ permalink raw reply	[flat|nested] 128+ messages in thread

* [GIT PULL] Btrfs
@ 2015-07-31 18:21 Chris Mason
  0 siblings, 0 replies; 128+ messages in thread
From: Chris Mason @ 2015-07-31 18:21 UTC (permalink / raw)
  To: Linus Torvalds, linux-kernel, linux-btrfs

Hi Linus,

Please pull the fixes from my for-linus-4.2 branch:

git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs.git for-linus-4.2

Filipe fixed up a hard to trigger ENOSPC regression from our merge
window pull, and we have a few other smaller fixes.

Zhao Lei (2) commits (+4/-2):
    btrfs: Avoid NULL pointer dereference of free_extent_buffer when read_tree_block() fail (+2/-1)
    btrfs: Fix lockdep warning of btrfs_run_delayed_iputs() (+2/-1)

Anand Jain (1) commits (+1/-1):
    btrfs: its btrfs_err() instead of btrfs_error()

Filipe Manana (1) commits (+18/-0):
    Btrfs: fix quick exhaustion of the system array in the superblock

Total: (4) commits (+23/-3)

 fs/btrfs/dev-replace.c |  2 +-
 fs/btrfs/disk-io.c     |  3 ++-
 fs/btrfs/extent-tree.c | 18 ++++++++++++++++++
 fs/btrfs/transaction.c |  3 ++-
 4 files changed, 23 insertions(+), 3 deletions(-)


^ permalink raw reply	[flat|nested] 128+ messages in thread

* [GIT PULL] Btrfs
@ 2015-07-17 19:38 Chris Mason
  0 siblings, 0 replies; 128+ messages in thread
From: Chris Mason @ 2015-07-17 19:38 UTC (permalink / raw)
  To: Linus Torvalds, linux-kernel, btrfs

Hi Linus,

We have some fixes in my for-linus-4.2 branch:

git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs.git for-linus-4.2

These are all from Filipe, and cover a few problems we've had reported
on the list recently (along with ones he found on his own).

Filipe Manana (5) commits (+34/-6):
    Btrfs: fix shrinking truncate when the no_holes feature is enabled (+2/-3)
    Btrfs: fix file corruption after cloning inline extents (+14/-0)
    Btrfs: fix list transaction->pending_ordered corruption (+2/-2)
    Btrfs: fix order by which delayed references are run (+13/-0)
    Btrfs: fix memory leak in the extent_same ioctl (+3/-1)

Total: (5) commits (+34/-6)

 fs/btrfs/extent-tree.c | 13 +++++++++++++
 fs/btrfs/inode.c       |  5 ++---
 fs/btrfs/ioctl.c       | 18 +++++++++++++++++-
 fs/btrfs/transaction.c |  4 ++--
 4 files changed, 34 insertions(+), 6 deletions(-)

^ permalink raw reply	[flat|nested] 128+ messages in thread

* [GIT PULL] Btrfs
@ 2015-07-10 19:15 Chris Mason
  0 siblings, 0 replies; 128+ messages in thread
From: Chris Mason @ 2015-07-10 19:15 UTC (permalink / raw)
  To: Linus Torvalds, linux-kernel, linux-btrfs

Hi Linus,

Please pull my for-linus-4.2 branch:

git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs.git for-linus-4.2

This is an assortment of fixes.  Most of the commits are from Filipe
(fsync, the inode allocation cache and a few others).  Mark kicked in a
series fixing corners in the extent sharing ioctls, and everyone else
fixed up on assorted other problems.

Filipe Manana (9) commits (+375/-36):
    Btrfs: fix race between caching kthread and returning inode to inode cache (+11/-4)
    Btrfs: fix memory corruption on failure to submit bio for direct IO (+52/-18)
    Btrfs: fix crash on close_ctree() if cleaner starts new transaction (+29/-0)
    Btrfs: fix fsync after truncate when no_holes feature is enabled (+108/-0)
    Btrfs: fix race between balance and unused block group deletion (+58/-6)
    Btrfs: fix a comment in inode.c:evict_inode_truncate_pages() (+3/-2)
    Btrfs: use kmem_cache_free when freeing entry in inode cache (+1/-1)
    Btrfs: fix fsync xattr loss in the fast fsync path (+104/-0)
    Btrfs: fix fsync data loss after append write (+9/-5)

Mark Fasheh (4) commits (+193/-58):
    btrfs: fix deadlock with extent-same and readpage (+117/-31)
    btrfs: don't update mtime/ctime on deduped inodes (+14/-10)
    btrfs: pass unaligned length to btrfs_cmp_data() (+2/-1)
    btrfs: allow dedupe of same inode (+60/-16)

Liu Bo (2) commits (+15/-6):
    Btrfs: fix hang when failing to submit bio of directIO (+0/-3)
    Btrfs: fix warning of bytes_may_use (+15/-3)

Zhao Lei (2) commits (+21/-20):
    btrfs: cleanup noused initialization of dev in btrfs_end_bio() (+1/-1)
    btrfs: add error handling for scrub_workers_get() (+20/-19)

Yang Dongsheng (1) commits (+41/-8):
    btrfs: qgroup: allow user to clear the limitation on qgroup

Shilong Wang (1) commits (+1/-1):
    Btrfs: fix wrong check for btrfs_force_chunk_alloc()

Total: (19) commits (+646/-129)

 fs/btrfs/btrfs_inode.h  |   2 +
 fs/btrfs/ctree.h        |   1 +
 fs/btrfs/disk-io.c      |  41 +++++++-
 fs/btrfs/extent-tree.c  |   3 +
 fs/btrfs/inode-map.c    |  17 +++-
 fs/btrfs/inode.c        |  89 ++++++++++++------
 fs/btrfs/ioctl.c        | 241 +++++++++++++++++++++++++++++++++++++-----------
 fs/btrfs/ordered-data.c |   5 +
 fs/btrfs/qgroup.c       |  49 ++++++++--
 fs/btrfs/relocation.c   |   2 +-
 fs/btrfs/scrub.c        |  39 ++++----
 fs/btrfs/tree-log.c     | 226 ++++++++++++++++++++++++++++++++++++++++++++-
 fs/btrfs/volumes.c      |  50 ++++++++--
 13 files changed, 641 insertions(+), 124 deletions(-)

^ permalink raw reply	[flat|nested] 128+ messages in thread

* [GIT PULL] Btrfs
@ 2015-06-29 21:11 Chris Mason
  0 siblings, 0 replies; 128+ messages in thread
From: Chris Mason @ 2015-06-29 21:11 UTC (permalink / raw)
  To: Linus Torvalds, LKML, linux-btrfs

Hi Linus,

Please pull my for-linus-4.2 branch:

git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs.git for-linus-4.2

Outside of our usual batch of fixes, this integrates the subvolume quota
updates that Qu Wenruo from Fujitsu has been working on for a few
releases now.  He gets an extra gold star for making btrfs smaller this
time, and fixing a number of quota corners in the process.

Dave Sterba tested and integrated Anand Jain's sysfs improvements.
Outside of exporting a symbol (ack'd by Greg) these are all internal to
btrfs and it's mostly cleanups and fixes.  Anand also attached some of
our sysfs objects to our internal device management structs instead of
an object off the super block.  It will make device management easier
overall and it's a better fit for how the sysfs files are used.  None of
the existing sysfs files are moved around.

Thanks for all the fixes everyone:

Anand Jain (28) commits (+304/-115):
    Btrfs: sysfs: move super_kobj and device_dir_kobj from fs_info to btrfs_fs_devices (+56/-43)
    Btrfs: sysfs: fix, btrfs_release_super_kobj() should to clean up the kobject data (+2/-0)
    Btrfs: sysfs: introduce function btrfs_sysfs_add_fsid() to create sysfs fsid (+14/-1)
    Btrfs: sysfs: fix, fs_info kobject_unregister has init_completion() twice (+0/-1)
    Btrfs: sysfs btrfs_kobj_rm_device() pass fs_devices instead of fs_info (+10/-10)
    Btrfs: sysfs: rename __btrfs_sysfs_remove_one to btrfs_sysfs_remove_fsid (+4/-4)
    Btrfs: sysfs: fix, kobject pointer clean up needed after kobject release (+1/-0)
    Btrfs: sysfs btrfs_kobj_add_device() pass fs_devices instead of fs_info (+6/-7)
    Btrfs: sysfs: don't fail seeding for the sake of sysfs kobject issue (+1/-1)
    Btrfc: sysfs: fix, check if device_dir_kobj is init before destroy (+6/-4)
    Btrfs: sysfs: provide framework to remove all fsid sysfs kobject (+16/-1)
    Btrfs: sysfs: separate device kobject and its attribute creation (+15/-6)
    Btrfs: sysfs: add support to show replacing target in the sysfs (+7/-1)
    Btrfs: check error before reporting missing device and add uuid (+2/-1)
    Btrfs: sysfs: add pointer to access fs_info from fs_devices (+25/-0)
    Btrfs: sysfs: btrfs_sysfs_remove_fsid() make it non static (+2/-1)
    Btrfs: sysfs: let default_attrs be separate from the kset (+8/-4)
    Btrfs: sysfs: separate kobject and attribute creation (+19/-14)
    Btrfs: sysfs: make btrfs_sysfs_add_device() non static (+1/-0)
    Btrfs: sysfs: make btrfs_sysfs_add_fsid() non static (+3/-1)
    Btrfs: introduce btrfs_get_fs_uuids to get fs_uuids (+5/-0)
    Btrfs: Check if kobject is initialized before put (+5/-3)
    Btrfs: sysfs: add support to add parent for fsid (+2/-2)
    Btrfs: sysfs: reorder the kobject creations (+13/-10)
    Btrfs: sysfs: fix, undo sysfs device links (+17/-0)
    Btrfs: log when missing device is created (+2/-0)
    lib: export symbol kobject_move() (+1/-0)
    Btrfs: free the stale device (+61/-0)

Qu Wenruo (19) commits (+879/-1542):
    btrfs: extent-tree: Use ref_node to replace unneeded parameters in __inc_extent_ref() and __free_extent() (+21/-21)
    btrfs: qgroup: Make snapshot accounting work with new extent-oriented (+33/-20)
    btrfs: qgroup: Add the ability to skip given qgroup for old/new_roots. (+40/-0)
    btrfs: qgroup: Switch self test to extent-oriented qgroup mechanism. (+89/-27)
    btrfs: delayed-ref: Use list to replace the ref_root in ref_head. (+114/-123)
    btrfs: qgroup: Cleanup open-coded old/new_refcnt update and read. (+54/-41)
    btrfs: qgroup: Switch to new extent-oriented qgroup mechanism. (+28/-100)
    btrfs: qgroup: Record possible quota-related extent for qgroup. (+95/-7)
    btrfs: backref: Don't merge refs which are not for same block. (+3/-3)
    btrfs: qgroup: Cleanup the old ref_node-oriented mechanism. (+3/-972)
    btrfs: backref: Add special time_seq == (u64)-1 case for (+29/-6)
    btrfs: qgroup: Add function qgroup_update_counters(). (+120/-0)
    btrfs: qgroup: Add new function to record old_roots. (+29/-0)
    btrfs: delayed-ref: Cleanup the unneeded functions. (+0/-174)
    btrfs: qgroup: Add new qgroup calculation function (+118/-0)
    btrfs: qgroup: Add function qgroup_update_refcnt(). (+58/-0)
    btrfs: qgroup: Switch rescan to new mechanism. (+7/-36)
    btrfs: ulist: Add ulist_del() function. (+37/-11)
    btrfs: Fix superblock csum type check. (+1/-1)

Filipe Manana (14) commits (+340/-76):
    Btrfs: incremental send, check if orphanized dir inode needs delayed rename (+37/-19)
    Btrfs: fix necessary chunk tree space calculation when allocating a chunk (+7/-12)
    Btrfs: wake up extent state waiters on unlock through clear_extent_bits (+6/-1)
    Btrfs: incremental send, fix clone operations for compressed extents (+17/-1)
    Btrfs: incremental send, don't delay directory renames unnecessarily (+46/-2)
    Btrfs: fix chunk allocation regression leading to transaction abort (+19/-3)
    Btrfs: fix mutex unlock without prior lock on space cache truncation (+6/-8)
    Btrfs: avoid syncing log in the fast fsync path when not necessary (+23/-3)
    Btrfs: fix hang during inode eviction due to concurrent readahead (+21/-5)
    Btrfs: check pending chunks when shrinking fs to avoid corruption (+40/-9)
    Btrfs: don't attach unnecessary extents to transaction on fsync (+15/-1)
    Btrfs: fix block group ->space_info null pointer dereference (+23/-2)
    Btrfs: fix -ENOSPC when finishing block group creation (+50/-2)
    Btrfs: fix -ENOSPC on block group removal (+30/-8)

Omar Sandoval (7) commits (+257/-142):
    Btrfs: don't invalidate root dentry when subvolume deletion fails (+1/-3)
    Btrfs: fail on mismatched subvol and subvolid mount options (+25/-8)
    Btrfs: remove all subvol options before mounting top-level (+20/-36)
    Btrfs: lock superblock before remounting for rw subvol (+2/-0)
    Btrfs: clean up error handling in mount_subvol() (+33/-28)
    Btrfs: show subvol= and subvolid= in /proc/mounts (+5/-0)
    Btrfs: unify subvol= and subvolid= mounting (+171/-67)

David Sterba (5) commits (+36/-22):
    btrfs: add 'cold' compiler annotations to all error handling functions (+7/-0)
    btrfs: fix warnings after changes in btrfs_abort_transaction (+4/-4)
    btrfs: report exact callsite where transaction abort occurs (+9/-11)
    btrfs: make root id query unprivileged (+16/-4)
    btrfs: let tree defrag work in SSD mode (+0/-3)

Liu Bo (4) commits (+57/-46):
    Btrfs: fix up read_tree_block to return proper error (+54/-29)
    Btrfs: fix use-after-free in btrfs_replay_log (+2/-1)
    Btrfs: add missing free_extent_buffer (+1/-0)
    Btrfs: remove csum_bytes_left (+0/-16)

Zhao Lei (2) commits (+30/-3):
    btrfs: Fix lockdep warning of wr_ctx->wr_lock in scrub_free_wr_ctx() (+27/-3)
    btrfs: wait for delayed iputs on no space (+3/-0)

chandan (2) commits (+2/-2):
    Btrfs: btrfs_defrag_file: Fix calculation of max_to_defrag. (+1/-1)
    Btrfs: btrfs_defrag_file: Fix ra_index computation. (+1/-1)

Josef Bacik (2) commits (+23/-4):
    Btrfs: set UNWRITTEN for prealloc'ed extents in fiemap (+2/-0)
    Btrfs: use received_uuid of parent during send (+21/-4)

Sasha Levin (1) commits (+2/-2):
    btrfs: use after free when closing devices

Mark Fasheh (1) commits (+14/-6):
    btrfs: Handle unaligned length in extent_same

Christian Engelmayer (1) commits (+4/-4):
    btrfs: qgroup: Fix possible leak in btrfs_add_qgroup_relation()

Dan Carpenter (1) commits (+11/-9):
    btrfs: delayed-ref: double free in btrfs_add_delayed_tree_ref()

Total: (87) commits

 fs/btrfs/async-thread.c       |    1 +
 fs/btrfs/async-thread.h       |    2 +
 fs/btrfs/backref.c            |   59 ++-
 fs/btrfs/ctree.c              |   16 +-
 fs/btrfs/ctree.h              |   28 +-
 fs/btrfs/delayed-ref.c        |  372 +++++----------
 fs/btrfs/delayed-ref.h        |   29 +-
 fs/btrfs/dev-replace.c        |    7 +-
 fs/btrfs/disk-io.c            |   56 ++-
 fs/btrfs/extent-tree.c        |  308 ++++++------
 fs/btrfs/extent-tree.h        |    0
 fs/btrfs/extent_io.c          |    9 +-
 fs/btrfs/file.c               |    9 +-
 fs/btrfs/free-space-cache.c   |   14 +-
 fs/btrfs/inode.c              |   26 +-
 fs/btrfs/ioctl.c              |   50 +-
 fs/btrfs/ordered-data.c       |   37 +-
 fs/btrfs/ordered-data.h       |    6 +-
 fs/btrfs/qgroup.c             | 1052 +++++++++++------------------------------
 fs/btrfs/qgroup.h             |   61 +--
 fs/btrfs/relocation.c         |   19 +-
 fs/btrfs/scrub.c              |   26 +-
 fs/btrfs/send.c               |  147 +++++-
 fs/btrfs/super.c              |  397 ++++++++++------
 fs/btrfs/sysfs.c              |  148 ++++--
 fs/btrfs/sysfs.h              |    8 +-
 fs/btrfs/tests/qgroup-tests.c |  109 ++++-
 fs/btrfs/transaction.c        |   79 +++-
 fs/btrfs/transaction.h        |   24 +
 fs/btrfs/tree-defrag.c        |    3 -
 fs/btrfs/tree-log.c           |    6 -
 fs/btrfs/ulist.c              |   47 +-
 fs/btrfs/ulist.h              |    1 +
 fs/btrfs/volumes.c            |  186 +++++++-
 fs/btrfs/volumes.h            |    9 +
 fs/seq_file.c                 |    1 +
 include/trace/events/btrfs.h  |   55 ---
 lib/kobject.c                 |    1 +
 38 files changed, 1697 insertions(+), 1711 deletions(-)

^ permalink raw reply	[flat|nested] 128+ messages in thread

* Re: [GIT PULL] Btrfs
  2015-06-02 14:02     ` Josh Boyer
@ 2015-06-26 14:21       ` David Sterba
  0 siblings, 0 replies; 128+ messages in thread
From: David Sterba @ 2015-06-26 14:21 UTC (permalink / raw)
  To: Josh Boyer; +Cc: Chris Mason, Linus Torvalds, linux-btrfs, LKML

On Tue, Jun 02, 2015 at 10:02:49AM -0400, Josh Boyer wrote:
> >>> Chris Mason (1) commits (+18/-0):
> >>>     Btrfs: fix regression in raid level conversion
> >>
> >> Shouldn't this be CC'd to stable since it fixes a broken commit in 4.0?
> >
> > Yes, I'm retesting two of these against 4.0
> 
> Did you finish up testing the two commits?  I might have missed it,
> but I haven't seen anything being requested to the 4.0.y stable tree
> yet.

JFYI, fixed in 4.0.6 .

^ permalink raw reply	[flat|nested] 128+ messages in thread

* Re: [GIT PULL] Btrfs
  2015-05-26 12:54   ` Chris Mason
@ 2015-06-02 14:02     ` Josh Boyer
  2015-06-26 14:21       ` David Sterba
  0 siblings, 1 reply; 128+ messages in thread
From: Josh Boyer @ 2015-06-02 14:02 UTC (permalink / raw)
  To: Chris Mason; +Cc: Linus Torvalds, linux-btrfs, LKML

On Tue, May 26, 2015 at 8:54 AM, Chris Mason <clm@fb.com> wrote:
> On 05/26/2015 08:33 AM, Josh Boyer wrote:
>> On Fri, May 22, 2015 at 9:14 PM, Chris Mason <clm@fb.com> wrote:
>>> Hi Linus,
>>>
>>> My for-linus-4.1 branch has three more fixes:
>>>
>>> git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs.git for-linus-4.1
>>>
>>> I fixed up a regression from 4.0 where conversion between different raid
>>> levels would sometimes bail out without converting.
>>>
>>> Filipe tracked down a race where it was possible to double allocate
>>> chunks on the drive.
>>>
>>> Mark has a fix for fiemap.  All three will get bundled off for stable as
>>> well.
>>>
>>> Chris Mason (1) commits (+18/-0):
>>>     Btrfs: fix regression in raid level conversion
>>
>> Shouldn't this be CC'd to stable since it fixes a broken commit in 4.0?
>
> Yes, I'm retesting two of these against 4.0

Did you finish up testing the two commits?  I might have missed it,
but I haven't seen anything being requested to the 4.0.y stable tree
yet.

josh

^ permalink raw reply	[flat|nested] 128+ messages in thread

* Re: [GIT PULL] Btrfs
  2015-05-26 12:33 ` Josh Boyer
@ 2015-05-26 12:54   ` Chris Mason
  2015-06-02 14:02     ` Josh Boyer
  0 siblings, 1 reply; 128+ messages in thread
From: Chris Mason @ 2015-05-26 12:54 UTC (permalink / raw)
  To: Josh Boyer, Linus Torvalds, linux-btrfs, LKML

On 05/26/2015 08:33 AM, Josh Boyer wrote:
> On Fri, May 22, 2015 at 9:14 PM, Chris Mason <clm@fb.com> wrote:
>> Hi Linus,
>>
>> My for-linus-4.1 branch has three more fixes:
>>
>> git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs.git for-linus-4.1
>>
>> I fixed up a regression from 4.0 where conversion between different raid
>> levels would sometimes bail out without converting.
>>
>> Filipe tracked down a race where it was possible to double allocate
>> chunks on the drive.
>>
>> Mark has a fix for fiemap.  All three will get bundled off for stable as
>> well.
>>
>> Chris Mason (1) commits (+18/-0):
>>     Btrfs: fix regression in raid level conversion
> 
> Shouldn't this be CC'd to stable since it fixes a broken commit in 4.0?

Yes, I'm retesting two of these against 4.0

-chris


^ permalink raw reply	[flat|nested] 128+ messages in thread

* Re: [GIT PULL] Btrfs
  2015-05-23  1:14 Chris Mason
@ 2015-05-26 12:33 ` Josh Boyer
  2015-05-26 12:54   ` Chris Mason
  0 siblings, 1 reply; 128+ messages in thread
From: Josh Boyer @ 2015-05-26 12:33 UTC (permalink / raw)
  To: Chris Mason, Linus Torvalds, linux-btrfs, LKML

On Fri, May 22, 2015 at 9:14 PM, Chris Mason <clm@fb.com> wrote:
> Hi Linus,
>
> My for-linus-4.1 branch has three more fixes:
>
> git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs.git for-linus-4.1
>
> I fixed up a regression from 4.0 where conversion between different raid
> levels would sometimes bail out without converting.
>
> Filipe tracked down a race where it was possible to double allocate
> chunks on the drive.
>
> Mark has a fix for fiemap.  All three will get bundled off for stable as
> well.
>
> Chris Mason (1) commits (+18/-0):
>     Btrfs: fix regression in raid level conversion

Shouldn't this be CC'd to stable since it fixes a broken commit in 4.0?

josh

^ permalink raw reply	[flat|nested] 128+ messages in thread

* [GIT PULL] Btrfs
@ 2015-05-23  1:14 Chris Mason
  2015-05-26 12:33 ` Josh Boyer
  0 siblings, 1 reply; 128+ messages in thread
From: Chris Mason @ 2015-05-23  1:14 UTC (permalink / raw)
  To: torvalds, linux-btrfs, LKML

Hi Linus,

My for-linus-4.1 branch has three more fixes:

git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs.git for-linus-4.1

I fixed up a regression from 4.0 where conversion between different raid
levels would sometimes bail out without converting.

Filipe tracked down a race where it was possible to double allocate
chunks on the drive.

Mark has a fix for fiemap.  All three will get bundled off for stable as
well.

Chris Mason (1) commits (+18/-0):
    Btrfs: fix regression in raid level conversion

Filipe Manana (1) commits (+3/-0):
    Btrfs: fix racy system chunk allocation when setting block group ro

Mark Fasheh (1) commits (+17/-0):
    btrfs: clear 'ret' in btrfs_check_shared() loop

Total: (3) commits

 fs/btrfs/backref.c     | 17 +++++++++++++++++
 fs/btrfs/extent-tree.c | 20 ++++++++++++++++++++
 fs/btrfs/volumes.c     |  1 +
 3 files changed, 38 insertions(+)

^ permalink raw reply	[flat|nested] 128+ messages in thread

* [GIT PULL] Btrfs
@ 2015-03-06 21:45 Chris Mason
  0 siblings, 0 replies; 128+ messages in thread
From: Chris Mason @ 2015-03-06 21:45 UTC (permalink / raw)
  To: torvalds; +Cc: linux-btrfs, LKML

Hi Linus,

My for-linus branch has some btrfs fixes:

git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs.git for-linus

I did rebase a patch out of the queue last night after tracking down
some problems Dave Sterba was seeing during xfstests (the top three are
obviously rebased).  It was an isolated patch and we've retested since I
removed it.

Outside of misc fixes, Filipe has a few fsync corners and we're pulling in
one more of Josef's fixes from production use here.

Filipe Manana (6) commits (+224/-57):
    Btrfs: do not ignore errors from btrfs_lookup_xattr in do_setxattr (+6/-2)
    Btrfs: incremental send, don't rename a directory too soon (+156/-15)
    Btrfs: fix fsync race leading to ordered extent memory leaks (+2/-5)
    Btrfs: fix off-by-one logic error in btrfs_realloc_node (+4/-4)
    Btrfs: add missing inode update when punching hole (+28/-3)
    Btrfs: fix data loss in the fast fsync path (+28/-28)

Josef Bacik (2) commits (+16/-3):
    Btrfs: abort the transaction if we fail to update the free space cache inode (+16/-0)
    Btrfs: remove extra run_delayed_refs in update_cowonly_root (+0/-3)

David Sterba (1) commits (+0/-1):
    btrfs: fix lost return value due to variable shadowing

Quentin Casasnovas (1) commits (+1/-1):
    Btrfs:__add_inode_ref: out of bounds memory read when looking for extended ref.

Total: (10) commits (+241/-62)

 fs/btrfs/ctree.c        |   8 +--
 fs/btrfs/extent-tree.c  |  16 +++++
 fs/btrfs/file.c         |  87 +++++++++++++++---------
 fs/btrfs/inode.c        |   1 -
 fs/btrfs/ordered-data.c |   7 +-
 fs/btrfs/send.c         | 171 +++++++++++++++++++++++++++++++++++++++++++-----
 fs/btrfs/transaction.c  |   3 -
 fs/btrfs/tree-log.c     |   2 +-
 fs/btrfs/xattr.c        |   8 ++-
 9 files changed, 241 insertions(+), 62 deletions(-)

^ permalink raw reply	[flat|nested] 128+ messages in thread

* [GIT PULL] Btrfs
@ 2015-02-26  2:01 Chris Mason
  0 siblings, 0 replies; 128+ messages in thread
From: Chris Mason @ 2015-02-26  2:01 UTC (permalink / raw)
  To: torvalds, LKML, linux-btrfs

Hi Linus,

I'm still testing more fixes, but I wanted to get out the fix for the
btrfs raid5/6 memory corruption I mentioned in my merge window pull.

Please pull my for-linus:

git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs.git for-linus

Chris Mason (1) commits (+8/-1):
    Btrfs: fix allocation size calculations in alloc_btrfs_bio

Total: (1) commits (+8/-1)

 fs/btrfs/volumes.c | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

^ permalink raw reply	[flat|nested] 128+ messages in thread

* Re: [GIT PULL] Btrfs
  2015-02-19 20:36 Chris Mason
@ 2015-02-20 10:09 ` Markus Trippelsdorf
  0 siblings, 0 replies; 128+ messages in thread
From: Markus Trippelsdorf @ 2015-02-20 10:09 UTC (permalink / raw)
  To: Chris Mason, linux-btrfs, LKML

On 2015.02.19 at 15:36 -0500, Chris Mason wrote:
> Hi Linus,
> 
> Please pull my for-linus branch:
> 
> git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs.git for-linus

I get the following warnings during Firefox LTO build. lto1-wpa-stream
outputs the final object files in parallel and therefore stresses the
filessystem.
These warnings started with the git merge above.

The disk is a conventional drive:

[    2.438132] scsi 1:0:0:0: Direct-Access     ATA      ST2000DM001-1CH1 CC29 PQ: 0 ANSI: 5
[    2.438308] sd 1:0:0:0: [sda] 3907029168 512-byte logical blocks: (2.00 TB/1.81 TiB)
[    2.438310] sd 1:0:0:0: [sda] 4096-byte physical blocks

/dev/sda2      btrfs     1.9T  905G  946G  49% /var
/dev/sda2 on /var type btrfs (rw,relatime,compress=lzo,noacl,space_cache)


[ 4155.708579] ------------[ cut here ]------------
[ 4155.708590] WARNING: CPU: 1 PID: 8850 at fs/btrfs/inode.c:8693 btrfs_destroy_inode+0x278/0x2a0()
[ 4155.708593] CPU: 1 PID: 8850 Comm: lto1-wpa-stream Not tainted 3.19.0-08975-g3d883483dc0a-dirty #101
[ 4155.708594] Hardware name: System manufacturer System Product Name/M4A78T-E, BIOS 3503    04/13/2011
[ 4155.708595]  0000000000000000 ffffffff81999aad ffffffff8168d303 0000000000000000
[ 4155.708597]  ffffffff8106d2d2 ffff8800dad9bb78 ffff88018554ccc0 ffff880215e2e000
[ 4155.708599]  ffff880215f23000 0000000000000000 ffffffff8121b6f8 0000000000000000
[ 4155.708601] Call Trace:
[ 4155.708606]  [<ffffffff8168d303>] ? dump_stack+0x40/0x50
[ 4155.708609]  [<ffffffff8106d2d2>] ? warn_slowpath_common+0x72/0xc0
[ 4155.708611]  [<ffffffff8121b6f8>] ? btrfs_destroy_inode+0x278/0x2a0
[ 4155.708614]  [<ffffffff81129381>] ? dispose_list+0x41/0x60
[ 4155.708615]  [<ffffffff81129669>] ? prune_icache_sb+0x49/0x60
[ 4155.708618]  [<ffffffff8111205a>] ? super_cache_scan+0x13a/0x1a0
[ 4155.708621]  [<ffffffff810e0a1b>] ? shrink_slab.part.52.constprop.62+0x19b/0x240
[ 4155.708623]  [<ffffffff810e3049>] ? shrink_zone+0x89/0xa0
[ 4155.708625]  [<ffffffff810e3241>] ? try_to_free_pages+0x1e1/0x320
[ 4155.708626]  [<ffffffff810daa82>] ? __alloc_pages_nodemask+0x382/0x680
[ 4155.708629]  [<ffffffff810f597d>] ? handle_mm_fault+0xbbd/0xe60
[ 4155.708631]  [<ffffffff81092e15>] ? put_prev_task_fair+0x75/0x320
[ 4155.708632]  [<ffffffff810903b0>] ? __dequeue_entity+0x30/0x40
[ 4155.708633]  [<ffffffff81094975>] ? pick_next_task_fair+0x415/0x480
[ 4155.708636]  [<ffffffff81064144>] ? __do_page_fault+0x104/0x3a0
[ 4155.708637]  [<ffffffff8168fb77>] ? __schedule+0x257/0x860
[ 4155.708639]  [<ffffffff8169518f>] ? page_fault+0x1f/0x30
[ 4155.708640] ---[ end trace 265993ee076d84aa ]---
[ 4155.708641] ------------[ cut here ]------------
[ 4155.708643] WARNING: CPU: 1 PID: 8850 at fs/btrfs/inode.c:8694 btrfs_destroy_inode+0x1f2/0x2a0()
[ 4155.708644] CPU: 1 PID: 8850 Comm: lto1-wpa-stream Tainted: G        W       3.19.0-08975-g3d883483dc0a-dirty #101
[ 4155.708645] Hardware name: System manufacturer System Product Name/M4A78T-E, BIOS 3503    04/13/2011
[ 4155.708645]  0000000000000000 ffffffff81999aad ffffffff8168d303 0000000000000000
[ 4155.708647]  ffffffff8106d2d2 ffff8800dad9bb78 ffff88018554ccc0 ffff880215e2e000
[ 4155.708648]  ffff880215f23000 0000000000000000 ffffffff8121b672 0000000000000000
[ 4155.708649] Call Trace:
[ 4155.708651]  [<ffffffff8168d303>] ? dump_stack+0x40/0x50
[ 4155.708652]  [<ffffffff8106d2d2>] ? warn_slowpath_common+0x72/0xc0
[ 4155.708654]  [<ffffffff8121b672>] ? btrfs_destroy_inode+0x1f2/0x2a0
[ 4155.708655]  [<ffffffff81129381>] ? dispose_list+0x41/0x60
[ 4155.708656]  [<ffffffff81129669>] ? prune_icache_sb+0x49/0x60
[ 4155.708658]  [<ffffffff8111205a>] ? super_cache_scan+0x13a/0x1a0
[ 4155.708659]  [<ffffffff810e0a1b>] ? shrink_slab.part.52.constprop.62+0x19b/0x240
[ 4155.708661]  [<ffffffff810e3049>] ? shrink_zone+0x89/0xa0
[ 4155.708662]  [<ffffffff810e3241>] ? try_to_free_pages+0x1e1/0x320
[ 4155.708664]  [<ffffffff810daa82>] ? __alloc_pages_nodemask+0x382/0x680
[ 4155.708665]  [<ffffffff810f597d>] ? handle_mm_fault+0xbbd/0xe60
[ 4155.708667]  [<ffffffff81092e15>] ? put_prev_task_fair+0x75/0x320
[ 4155.708668]  [<ffffffff810903b0>] ? __dequeue_entity+0x30/0x40
[ 4155.708669]  [<ffffffff81094975>] ? pick_next_task_fair+0x415/0x480
[ 4155.708670]  [<ffffffff81064144>] ? __do_page_fault+0x104/0x3a0
[ 4155.708672]  [<ffffffff8168fb77>] ? __schedule+0x257/0x860
[ 4155.708673]  [<ffffffff8169518f>] ? page_fault+0x1f/0x30
[ 4155.708674] ---[ end trace 265993ee076d84ab ]---
[ 4156.021127] ------------[ cut here ]------------
[ 4156.021136] WARNING: CPU: 3 PID: 35 at fs/btrfs/inode.c:8693 btrfs_destroy_inode+0x278/0x2a0()
[ 4156.021139] CPU: 3 PID: 35 Comm: kswapd0 Tainted: G        W       3.19.0-08975-g3d883483dc0a-dirty #101
[ 4156.021140] Hardware name: System manufacturer System Product Name/M4A78T-E, BIOS 3503    04/13/2011
[ 4156.021141]  0000000000000000 ffffffff81999aad ffffffff8168d303 0000000000000000
[ 4156.021143]  ffffffff8106d2d2 ffff8802160dfcb8 ffff88006b07a690 ffff880215e2e000
[ 4156.021145]  ffff880215f23000 0000000000000000 ffffffff8121b6f8 0000000000000000
[ 4156.021146] Call Trace:
[ 4156.021151]  [<ffffffff8168d303>] ? dump_stack+0x40/0x50
[ 4156.021154]  [<ffffffff8106d2d2>] ? warn_slowpath_common+0x72/0xc0
[ 4156.021156]  [<ffffffff8121b6f8>] ? btrfs_destroy_inode+0x278/0x2a0
[ 4156.021159]  [<ffffffff81129381>] ? dispose_list+0x41/0x60
[ 4156.021160]  [<ffffffff81129669>] ? prune_icache_sb+0x49/0x60
[ 4156.021163]  [<ffffffff8111205a>] ? super_cache_scan+0x13a/0x1a0
[ 4156.021166]  [<ffffffff810e0a1b>] ? shrink_slab.part.52.constprop.62+0x19b/0x240
[ 4156.021168]  [<ffffffff810e3049>] ? shrink_zone+0x89/0xa0
[ 4156.021169]  [<ffffffff810e3698>] ? kswapd+0x318/0x6c0
[ 4156.021171]  [<ffffffff810e3380>] ? try_to_free_pages+0x320/0x320
[ 4156.021173]  [<ffffffff81084c3c>] ? kthread+0xbc/0xe0
[ 4156.021175]  [<ffffffff81084b80>] ? __kthread_parkme+0x80/0x80
[ 4156.021177]  [<ffffffff81693bec>] ? ret_from_fork+0x7c/0xb0
[ 4156.021178]  [<ffffffff81084b80>] ? __kthread_parkme+0x80/0x80
[ 4156.021179] ---[ end trace 265993ee076d84ac ]---
[ 4156.021180] ------------[ cut here ]------------
[ 4156.021182] WARNING: CPU: 3 PID: 35 at fs/btrfs/inode.c:8694 btrfs_destroy_inode+0x1f2/0x2a0()
[ 4156.021183] CPU: 3 PID: 35 Comm: kswapd0 Tainted: G        W       3.19.0-08975-g3d883483dc0a-dirty #101
[ 4156.021184] Hardware name: System manufacturer System Product Name/M4A78T-E, BIOS 3503    04/13/2011
[ 4156.021184]  0000000000000000 ffffffff81999aad ffffffff8168d303 0000000000000000
[ 4156.021186]  ffffffff8106d2d2 ffff8802160dfcb8 ffff88006b07a690 ffff880215e2e000
[ 4156.021187]  ffff880215f23000 0000000000000000 ffffffff8121b672 0000000000000000
[ 4156.021188] Call Trace:
[ 4156.021190]  [<ffffffff8168d303>] ? dump_stack+0x40/0x50
[ 4156.021191]  [<ffffffff8106d2d2>] ? warn_slowpath_common+0x72/0xc0
[ 4156.021192]  [<ffffffff8121b672>] ? btrfs_destroy_inode+0x1f2/0x2a0
[ 4156.021194]  [<ffffffff81129381>] ? dispose_list+0x41/0x60
[ 4156.021195]  [<ffffffff81129669>] ? prune_icache_sb+0x49/0x60
[ 4156.021197]  [<ffffffff8111205a>] ? super_cache_scan+0x13a/0x1a0
[ 4156.021198]  [<ffffffff810e0a1b>] ? shrink_slab.part.52.constprop.62+0x19b/0x240
[ 4156.021200]  [<ffffffff810e3049>] ? shrink_zone+0x89/0xa0
[ 4156.021201]  [<ffffffff810e3698>] ? kswapd+0x318/0x6c0
[ 4156.021203]  [<ffffffff810e3380>] ? try_to_free_pages+0x320/0x320
[ 4156.021204]  [<ffffffff81084c3c>] ? kthread+0xbc/0xe0
[ 4156.021205]  [<ffffffff81084b80>] ? __kthread_parkme+0x80/0x80
[ 4156.021207]  [<ffffffff81693bec>] ? ret_from_fork+0x7c/0xb0
[ 4156.021208]  [<ffffffff81084b80>] ? __kthread_parkme+0x80/0x80
[ 4156.021209] ---[ end trace 265993ee076d84ad ]---

-- 
Markus

^ permalink raw reply	[flat|nested] 128+ messages in thread

* [GIT PULL] Btrfs
@ 2015-02-19 20:36 Chris Mason
  2015-02-20 10:09 ` Markus Trippelsdorf
  0 siblings, 1 reply; 128+ messages in thread
From: Chris Mason @ 2015-02-19 20:36 UTC (permalink / raw)
  To: torvalds, linux-btrfs, LKML

Hi Linus,

Please pull my for-linus branch:

git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs.git for-linus

This was held up a little trying to track down a use-after-free in btrfs
raid5/6.  It's not clear yet if this is just made easier to trigger with
this pull or if its a new bug from the raid5/6 cleanups.  Dave Sterba is
the only one to trigger it so far, but he has a consistent way to
reproduce, so we'll get it nailed shortly.

This pull is mostly cleanups and fixes.

The raid5/6 cleanups from Zhao Lei fixup some long standing warts in the
code and add improvements on top of the scrubbing support from 3.19.

Josef has round one of our ENOSPC fixes coming from large btrfs clusters
here at FB.

Dave Sterba continues a long series of cleanups (thanks Dave), and
Filipe continues hammering on corner cases in fsync and others.

David Sterba (25) commits (+332/-306):
    btrfs: more superblock checks, lower bounds on devices and sectorsize/nodesize (+19/-0)
    btrfs: sink blocksize parameter to btrfs_find_create_tree_block (+17/-12)
    btrfs: cleanup, rename a few variables in btrfs_read_sys_array (+16/-15)
    btrfs: sink blocksize parameter to reada_tree_block_flagged (+4/-4)
    btrfs: sink blocksize parameter to btrfs_init_new_buffer (+4/-5)
    btrfs: sink blocksize parameter to readahead_tree_block (+8/-11)
    btrfs: sink blocksize parameter to tree_block_processed (+5/-4)
    btrfs: use GFP_NOFS in __alloc_extent_buffer directly (+5/-5)
    btrfs: set proper message level for skinny metadata (+1/-1)
    btrfs: expand btrfs_find_item if found_key is NULL (+21/-8)
    btrfs: update message levels after checksum errors (+2/-2)
    btrfs: remove a no-op unfreeze superbock callback (+0/-6)
    btrfs: update message levels during failed mount (+8/-8)
    btrfs: sink parameter len to alloc_extent_buffer (+8/-8)
    btrfs: add more checks to btrfs_read_sys_array (+23/-3)
    btrfs: switch extent_state state to unsigned (+55/-55)
    btrfs: cleanup, remove inode_item_info helper (+5/-15)
    btrfs: cleanup, remove inode_ref_info helper (+6/-11)
    btrfs: add checks for sys_chunk_array sizes (+19/-0)
    btrfs: fix leak of path in btrfs_find_item (+22/-15)
    btrfs: unify extent buffer allocation api (+35/-23)
    btrfs: remove blocksize from reada_extent (+6/-9)
    btrfs: kill btrfs_inode_*time helpers (+33/-69)
    btrfs: update message levels for errors (+6/-5)
    btrfs: simplify insert_orphan_item (+4/-12)

Zhao Lei (16) commits (+332/-400):
    Btrfs: Separate finding-right-mirror and writing-to-target's process in scrub_handle_errored_block() (+17/-27)
    Btrfs: Break loop when reach BTRFS_MAX_MIRRORS in scrub_setup_recheck_block() (+1/-1)
    Btrfs: Introduce BTRFS_BLOCK_GROUP_RAID56_MASK to check raid56 simply (+19/-28)
    Btrfs: Remove noneed force_write in scrub_write_block_to_dev_replace (+7/-12)
    Btrfs: Fix a jump typo of nodatasum_case to avoid wrong WARN_ON() (+2/-1)
    Btrfs: Make raid_map array be inlined in btrfs_bio structure (+105/-125)
    Btrfs: Combine per-page recover in dev-replace and scrub (+48/-72)
    Btrfs: btrfs_rm_dev_replace_blocked(): Use wait_event() (+2/-11)
    Btrfs: Simplify scrub_setup_recheck_block()'s argument (+9/-16)
    Btrfs: add ref_count and free function for btrfs_bio (+57/-54)
    Btrfs: sort raid_map before adding tgtdev stripes (+8/-14)
    Btrfs: Cleanup btrfs_bio_counter_inc_blocked() (+6/-6)
    Btrfs: fix a out-of-bound access of raid_map (+5/-2)
    Rename all ref_count to refs in struct (+13/-13)
    Btrfs: Include map_type in raid_bio (+22/-18)
    btrfs: Fix out-of-space bug (+11/-0)

Filipe Manana (12) commits (+257/-65):
    Btrfs: fix fsync log replay for inodes with a mix of regular refs and extrefs (+43/-5)
    Btrfs: fix race between transaction commit and empty block group removal (+22/-1)
    Btrfs: lookup for block group only if needed when freeing a tree block (+6/-4)
    Btrfs: don't remove extents and xattrs when logging new names (+27/-12)
    Btrfs: fix fsync when extend references are added to an inode (+16/-11)
    Btrfs: fix fsync data loss after adding hard link to inode (+73/-9)
    Btrfs: fix directory inconsistency after fsync log replay (+18/-2)
    Btrfs: fix setup_leaf_for_split() to avoid leaf corruption (+4/-2)
    Btrfs: fix scrub race leading to use-after-free (+15/-1)
    Btrfs: add missing cleanup on sysfs init failure (+9/-1)
    Btrfs: fix scheduler warning when syncing log (+1/-1)
    Btrfs: scrub, fix sleep in atomic context (+23/-16)

Josef Bacik (5) commits (+177/-147):
    Btrfs: only adjust outstanding_extents when we do a short write (+6/-5)
    Btrfs: don't set and clear delalloc for O_DIRECT writes (+2/-6)
    Btrfs: track dirty block groups on their own list (+72/-124)
    Btrfs: account for large extents with enospc (+76/-7)
    Btrfs: change how we track dirty roots (+21/-5)

Shaohua Li (1) commits (+5/-8):
    btrfs: delete chunk allocation attemp when setting block group ro

Yang Dongsheng (1) commits (+1/-2):
    btrfs: qgroup: move WARN_ON() to the correct location.

Anand Jain (1) commits (+0/-4):
    Btrfs: fix unused members in struct btrfs_root

Liu Bo (1) commits (+1/-4):
    Btrfs: cleanup unused run_most

Satoru Takeuchi (1) commits (+1/-2):
    Btrfs: Remove unnecessary placeholder in btrfs_err_code

chandan r (1) commits (+36/-2):
    Btrfs: Add code to support file creation time

Forrest Liu (1) commits (+2/-1):
    Btrfs: fix BUG_ON in btrfs_orphan_add() when delete unused block group

chandan (1) commits (+1/-1):
    Btrfs: insert_new_root: Fix lock type of the extent buffer.

Naohiro Aota (1) commits (+3/-1):
    btrfs: clear bio reference after submit_one_bio()

Gui Hecheng (1) commits (+1/-4):
    btrfs: cleanup init for list in free-space-cache

Total: (68) commits (+1149/-947)

 fs/btrfs/backref.c                   |  28 +---
 fs/btrfs/backref.h                   |   3 -
 fs/btrfs/btrfs_inode.h               |   3 +
 fs/btrfs/ctree.c                     |  55 +++----
 fs/btrfs/ctree.h                     |  39 ++---
 fs/btrfs/delayed-inode.c             |  38 +++--
 fs/btrfs/dev-replace.c               |  25 +--
 fs/btrfs/disk-io.c                   | 102 +++++++++---
 fs/btrfs/disk-io.h                   |   6 +-
 fs/btrfs/extent-tree.c               | 250 ++++++++++++----------------
 fs/btrfs/extent_io.c                 |  87 ++++++----
 fs/btrfs/extent_io.h                 |  65 ++++----
 fs/btrfs/free-space-cache.c          |  13 +-
 fs/btrfs/inode-item.c                |   9 +-
 fs/btrfs/inode.c                     | 156 +++++++++++++-----
 fs/btrfs/qgroup.c                    |   3 +-
 fs/btrfs/raid56.c                    | 103 ++++--------
 fs/btrfs/raid56.h                    |  11 +-
 fs/btrfs/reada.c                     |  19 +--
 fs/btrfs/relocation.c                |  12 +-
 fs/btrfs/scrub.c                     | 309 ++++++++++++++++-------------------
 fs/btrfs/send.c                      |   9 +-
 fs/btrfs/super.c                     |   6 -
 fs/btrfs/sysfs.c                     |  10 +-
 fs/btrfs/tests/extent-buffer-tests.c |   2 +-
 fs/btrfs/tests/extent-io-tests.c     |   3 +-
 fs/btrfs/tests/inode-tests.c         |   4 +-
 fs/btrfs/tests/qgroup-tests.c        |  23 ++-
 fs/btrfs/transaction.c               |  27 ++-
 fs/btrfs/transaction.h               |   7 +
 fs/btrfs/tree-log.c                  | 234 ++++++++++++++++++++------
 fs/btrfs/volumes.c                   | 242 +++++++++++++++------------
 fs/btrfs/volumes.h                   |  18 +-
 include/uapi/linux/btrfs.h           |   3 +-
 34 files changed, 1063 insertions(+), 861 deletions(-)

^ permalink raw reply	[flat|nested] 128+ messages in thread

* [GIT PULL] Btrfs
@ 2014-11-09  1:17 Chris Mason
  0 siblings, 0 replies; 128+ messages in thread
From: Chris Mason @ 2014-11-09  1:17 UTC (permalink / raw)
  To: Linus Torvalds, linux-btrfs, Linux Kernel Mailing List

Hi Linus,

Please pull my for-linus branch:

git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs.git for-linus

It's a one liner for an error cleanup path that leads to crashes.

Chris Mason (1) commits (+1/-1):
    Btrfs: fix kfree on list_head in btrfs_lookup_csums_range error cleanup

Total: (1) commits (+1/-1)

 fs/btrfs/file-item.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

^ permalink raw reply	[flat|nested] 128+ messages in thread

* [GIT PULL] Btrfs
@ 2014-10-11  0:41 Chris Mason
  0 siblings, 0 replies; 128+ messages in thread
From: Chris Mason @ 2014-10-11  0:41 UTC (permalink / raw)
  To: Linus Torvalds, linux-btrfs, Linux Kernel Mailing List


Hi Linus,

Please pull my for-linus branch:

git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs.git for-linus

This is based on 3.17-rc5 because that's when I forked off for -next,
but I've been testing it against linux-next or 3.17 for a while now.

The largest set of changes here come from Miao Xie.  He's cleaning up
and improving read recovery/repair for raid, and has a number of related
fixes.

I've merged another set of fsync fixes from Filipe, and he's also
improved the way we handle metadata write errors to make sure we force
the FS readonly if things go wrong.

Otherwise we have a collection of fixes and cleanups.  Dave Sterba gets
a cookie for removing the most lines (thanks Dave).

Miao Xie (36) commits (+1193/-537):
    Btrfs: cleanup similar code of the buffered data data check and dio read data check (+47/-55)
    Btrfs: cleanup double assignment of device->bytes_used when device replace finishes (+0/-1)
    Btrfs: cleanup the read failure record after write or when the inode is freeing (+41/-0)
    Btrfs: stop mounting the fs if the non-ENOENT errors happen when opening seed fs (+1/-1)
    Btrfs: update the comment of total_bytes and disk_total_bytes of btrfs_devie (+2/-2)
    Btrfs: make the device lock and its protected data in the same cacheline (+12/-13)
    Btrfs: fix unprotected device list access when getting the fs information (+7/-1)
    Btrfs: fix use-after-free problem of the device during device replace (+8/-1)
    Btrfs: Fix wrong free_chunk_space assignment during removing a device (+0/-5)
    Btrfs: Cleanup unused variant and argument of IO failure handlers (+10/-16)
    Btrfs: cleanup unused latest_devid and latest_trans in fs_devices (+11/-34)
    Btrfs: Fix the problem that the dirty flag of dev stats is cleared (+20/-6)
    Btrfs: load checksum data once when submitting a direct read io (+35/-34)
    Btrfs: fix unprotected device list access when cloning fs devices (+3/-0)
    Btrfs: fix wrong generation check of super block on a seed device (+5/-1)
    Btrfs: fix missing error handler if submiting re-read bio fails (+5/-0)
    Btrfs: Set real mirror number for read operation on RAID0/5/6 (+5/-0)
    Btrfs: fix unprotected device's variants on 32bits machine (+124/-29)
    Btrfs: modify clean_io_failure and make it suit direct io (+19/-21)
    Btrfs: make the logic of source device removing more clear (+8/-14)
    Btrfs: update free_chunk_space during allocting a new chunk (+5/-5)
    Btrfs: implement repair function when direct read fails (+281/-29)
    Btrfs: modify repair_io_failure and make it suit direct io (+7/-4)
    Btrfs: modify rw_devices counter under chunk_mutex context (+2/-2)
    Btrfs: move the missing device to its own fs device list (+52/-26)
    Btrfs: split bio_readpage_error into several functions (+123/-64)
    Btrfs: fix unprotected assignment of the target device (+28/-28)
    Btrfs: fix wrong device bytes_used in the super block (+37/-1)
    Btrfs: fix wrong disk size when writing super blocks (+83/-5)
    Btrfs: cleanup unused num_can_discard in fs_devices (+2/-15)
    Btrfs: fix unprotected system chunk array insertion (+6/-1)
    Btrfs: fix writing data into the seed filesystem (+36/-16)
    Btrfs: fix unprotected device->bytes_used update (+3/-1)
    Btrfs: do file data check by sub-bio's self (+87/-29)
    Btrfs: fix wrong fsid check of scrub (+13/-5)
    Btrfs: Fix misuse of chunk mutex (+65/-72)

David Sterba (32) commits (+507/-584):
    btrfs: remove unused parameter blocksize from btrfs_find_tree_block (+9/-12)
    btrfs: remove unlikely from data-dependent branches and slow paths (+10/-10)
    btrfs: remove obsolete comment in btrfs_clean_one_deleted_snapshot (+1/-4)
    btrfs: drop constant param from btrfs_release_extent_buffer_page (+6/-9)
    btrfs: remove blocksize from btrfs_alloc_free_block and rename (+21/-27)
    btrfs: clenaup: don't call btrfs_release_path before free_path (+0/-1)
    btrfs: remove stale define after removing ordered operations (+0/-7)
    btrfs: hide typecast to definition of BTRFS_SEND_TRANS_STUB (+4/-5)
    btrfs: remove unused parameter from readahead_tree_block (+8/-16)
    btrfs: remove parameter blocksize from read_tree_block (+18/-37)
    btrfs: use DIV_ROUND_UP instead of open-coded variants (+22/-32)
    btrfs: remove unused members from struct scrub_warning (+2/-15)
    btrfs: remove unused variable from btrfs_parse_options (+1/-3)
    btrfs: inline code of reada_tree_block and remove it (+2/-10)
    btrfs: wake up transaction thread from SYNC_FS ioctl (+6/-0)
    btrfs: new define for the inline extent data start (+9/-10)
    btrfs: defrag, use unsigned type for extent thresh (+4/-4)
    btrfs: move checks for DUMMY_ROOT into a helper (+23/-21)
    btrfs: use nodesize everywhere, kill leafsize (+89/-141)
    btrfs: cleanup ino cache members of btrfs_root (+52/-52)
    btrfs: use enum for wq endio metadata type (+14/-18)
    btrfs: return void from readahead_tree_block (+4/-8)
    btrfs: kill the key type accessor helpers (+60/-60)
    btrfs: use slab for end_io_wq structures (+38/-10)
    btrfs: let merge_reloc_roots return void (+1/-2)
    btrfs: fix error labels in init_btrfs_fs (+2/-2)
    btrfs: kill extent_buffer_page helper (+26/-35)
    btrfs: remove unlikely from NULL checks (+6/-6)
    btrfs: remove unused extent state bits (+0/-4)
    btrfs: clean away stripe_align helper (+1/-10)
    btrfs: make close_ctree return void (+3/-11)
    btrfs: add more superblock checks (+65/-2)

Filipe Manana (15) commits (+1071/-183):
    Btrfs: add missing compression property remove in btrfs_ioctl_setflags (+3/-0)
    Btrfs: be aware of btree inode write errors to avoid fs corruption (+114/-12)
    Btrfs: add missing end_page_writeback on submit_extent_page failure (+1/-0)
    Btrfs: fix data corruption after fast fsync and writeback error (+166/-102)
    Btrfs: improve free space cache management and space allocation (+653/-1)
    Btrfs: fix fsync race leading to invalid data after log replay (+63/-15)
    Btrfs: send, don't delay dir move if there's a new parent inode (+1/-1)
    Btrfs: avoid unnecessary switch of path locks to blocking mode (+1/-2)
    Btrfs: make btrfs_search_forward return with nodes unlocked (+7/-15)
    Btrfs: unlock nodes earlier when inserting items in a btree (+6/-6)
    Btrfs: send, lower mem requirements for processing xattrs (+32/-8)
    Btrfs: set error return value in btrfs_get_blocks_direct (+3/-1)
    Btrfs: shrink further sizeof(struct extent_buffer) (+0/-2)
    Btrfs: fix directory recovery from fsync log (+1/-0)
    Btrfs: reduce size of struct extent_state (+20/-18)

Anand Jain (14) commits (+80/-38):
    btrfs: rw_devices shouldn't be incremented for seed fs in btrfs_rm_dev_replace_srcdev() (+2/-1)
    btrfs: replace seed device followed by unmount causes kernel WARNING (+7/-1)
    btrfs: preparatory to make btrfs_rm_dev_replace_srcdev() seed aware (+9/-5)
    btrfs: update sprout seed pointer when seed fs is relinquished (+21/-0)
    btrfs: sysfs label interface should check for read only FS (+3/-0)
    btrfs: fix memory leak when there is no more seed device (+2/-0)
    btrfs: code optimize: BTRFS_ATTR could handle the mode (+14/-11)
    btrfs: code optimize: BTRFS_ATTR_RW could set the mode (+5/-4)
    btrfs: fix rw_devices miss match after seed replace (+2/-0)
    btrfs: use BTRFS_ATTR instead of btrfs_no_store() (+3/-10)
    btrfs: rename total_bytes to avoid confusion (+5/-5)
    btrfs: device delete must be sysloged (+3/-0)
    btrfs: fix typo in the log message (+1/-1)
    btrfs: device add must be sysloged (+3/-0)

Liu Bo (8) commits (+48/-34):
    Btrfs: show real function name in btrfs workqueue tracepoint (+1/-1)
    Btrfs: add work_struct information for workqueue tracepoint (+6/-3)
    Btrfs: cleanup the same name in end_bio_extent_readpage (+4/-4)
    Btrfs: fix crash of btrfs_release_extent_buffer_page (+1/-0)
    Btrfs: fix wrong parse of extent map's tracepoint (+7/-6)
    Btrfs: cleanup for btrfs workqueue tracepoints (+0/-7)
    Btrfs: fix loop writing of async reclaim (+14/-3)
    Btrfs: fix up bounds checking in lseek (+15/-10)

Wang Shilong (7) commits (+80/-22):
    Btrfs: clear compress-force when remounting with compress option (+7/-0)
    Btrfs: print btrfs specific info for some fatal error cases (+7/-7)
    Btrfs: fall into nocompression codes quickly if possible (+1/-4)
    Btrfs: fix wrong skipping compression for an inode (+20/-5)
    Btrfs: make defragment work with nodatacow option (+42/-3)
    Btrfs: fix off-by-one in cow_file_range_inline() (+2/-2)
    Btrfs: fix wrong max inline data size limit (+1/-1)

Josef Bacik (6) commits (+414/-117):
    Btrfs: fix build_backref_tree issue with multiple shared blocks (+4/-1)
    Btrfs: make fiemap not blow when you have lots of snapshots (+116/-36)
    Btrfs: cleanup error handling in build_backref_tree (+59/-29)
    Btrfs: remove empty block groups automatically (+226/-49)
    Btrfs: don't do async reclaim during log replay (+7/-1)
    Btrfs: try not to ENOSPC on log replay (+2/-1)

Fabian Frederick (5) commits (+9/-12):
    Btrfs: remove redundant btrfs_verify_qgroup_counts declaration. (+0/-2)
    Btrfs: fix compilation errors under DEBUG (+2/-2)
    btrfs: fix shadow warning on cmp (+4/-4)
    btrfs: use PTR_ERR_OR_ZERO (+1/-3)
    Btrfs: fix sparse warning (+2/-1)

Qu Wenruo (5) commits (+159/-29):
    btrfs: Make btrfs handle security mount options internally to avoid losing security label. (+97/-5)
    btrfs: Fix and enhance merge_extent_mapping() to insert best fitted extent map (+57/-22)
    btrfs: Fix the wrong condition judgment about subset extent map (+1/-1)
    btrfs: Fix compile error when CONFIG_SECURITY is not set. (+2/-0)
    btrfs: Fix a deadlock in btrfs_dev_replace_finishing() (+2/-1)

Mark Fasheh (2) commits (+69/-2):
    btrfs: don't go readonly on existing qgroup items (+8/-2)
    btrfs: add trace for qgroup accounting (+61/-0)

Satoru Takeuchi (2) commits (+14/-5):
    btrfs: use IS_ALIGNED() for assertion in btrfs_lookup_csums_range() for simplicity (+2/-2)
    btrfs: label should not contain return char (+12/-3)

HIMANGI SARAOGI (1) commits (+2/-2):
    Btrfs: use BUG_ON

Sage Weil (1) commits (+9/-3):
    Btrfs: fix race in WAIT_SYNC ioctl

Filipe David Borba Manana (1) commits (+3/-2):
    Btrfs: set default max_inline to 8KiB instead of 8MiB

Li RongQing (1) commits (+0/-4):
    btrfs: remove the wrong comments

Chris Mason (1) commits (+2/-3):
    Btrfs: fix compiles when CONFIG_BTRFS_FS_RUN_SANITY_TESTS is off

Sergey Senozhatsky (1) commits (+68/-70):
    btrfs compression: merge inflate and deflate z_streams

Andrey Utkin (1) commits (+1/-1):
    btrfs: Drop stray check of fixup_workers creation

Total: (139) commits

 fs/btrfs/async-thread.c           |  11 +-
 fs/btrfs/async-thread.h           |   1 +
 fs/btrfs/backref.c                | 123 +++++--
 fs/btrfs/backref.h                |   3 +
 fs/btrfs/btrfs_inode.h            |  27 +-
 fs/btrfs/check-integrity.c        |  18 +-
 fs/btrfs/compression.c            |  21 +-
 fs/btrfs/ctree.c                  | 106 +++---
 fs/btrfs/ctree.h                  |  93 +++---
 fs/btrfs/delayed-inode.c          |   8 +-
 fs/btrfs/dev-replace.c            |  82 +++--
 fs/btrfs/dir-item.c               |  12 +-
 fs/btrfs/disk-io.c                | 284 +++++++++-------
 fs/btrfs/disk-io.h                |  16 +-
 fs/btrfs/export.c                 |   4 +-
 fs/btrfs/extent-tree.c            | 265 +++++++++++----
 fs/btrfs/extent_io.c              | 483 +++++++++++++++++----------
 fs/btrfs/extent_io.h              |  60 ++--
 fs/btrfs/file-item.c              |  30 +-
 fs/btrfs/file.c                   | 151 ++++++---
 fs/btrfs/free-space-cache.c       | 157 ++++++++-
 fs/btrfs/hash.c                   |   4 +-
 fs/btrfs/inode-item.c             |  12 +-
 fs/btrfs/inode-map.c              |  68 ++--
 fs/btrfs/inode.c                  | 648 ++++++++++++++++++++++++++++--------
 fs/btrfs/ioctl.c                  |  60 ++--
 fs/btrfs/lzo.c                    |   3 +-
 fs/btrfs/orphan.c                 |   4 +-
 fs/btrfs/print-tree.c             |   3 +-
 fs/btrfs/qgroup.c                 |  30 +-
 fs/btrfs/raid56.c                 |   8 +-
 fs/btrfs/reada.c                  |   2 +-
 fs/btrfs/relocation.c             | 142 ++++----
 fs/btrfs/scrub.c                  |  67 ++--
 fs/btrfs/send.c                   |  47 ++-
 fs/btrfs/super.c                  | 137 +++++++-
 fs/btrfs/sysfs.c                  |  41 ++-
 fs/btrfs/sysfs.h                  |  16 +-
 fs/btrfs/tests/free-space-tests.c | 516 ++++++++++++++++++++++++++++-
 fs/btrfs/transaction.c            |  52 ++-
 fs/btrfs/transaction.h            |   2 +-
 fs/btrfs/tree-log.c               | 259 +++++++++------
 fs/btrfs/tree-log.h               |   2 +
 fs/btrfs/uuid-tree.c              |   1 -
 fs/btrfs/volumes.c                | 676 ++++++++++++++++++++++++--------------
 fs/btrfs/volumes.h                | 166 ++++++++--
 fs/btrfs/xattr.c                  |   4 +-
 fs/btrfs/zlib.c                   | 141 ++++----
 include/trace/events/btrfs.h      |  85 ++++-
 49 files changed, 3617 insertions(+), 1534 deletions(-)

^ permalink raw reply	[flat|nested] 128+ messages in thread

* Re: [GIT PULL] Btrfs
  2014-08-14 18:10 ` Linus Torvalds
@ 2014-08-14 18:17   ` Chris Mason
  0 siblings, 0 replies; 128+ messages in thread
From: Chris Mason @ 2014-08-14 18:17 UTC (permalink / raw)
  To: Linus Torvalds, linux-btrfs, Linux Kernel Mailing List

On 08/14/2014 02:10 PM, Linus Torvalds wrote:
> On Thu, Aug 14, 2014 at 11:59 AM, Chris Mason <clm@fb.com> wrote:
>> Hi Linus,
>>
>> Please pull my for-linus branch:
> 
> Yeah, I think this will be for the next merge window.
> 
> This clearly got rebased today. At the end of the merge window. After
> I told people that I was traveling, and asked people to send big
> things early.
> 

[ resend with full cc ]

Hi Linus,

This did get rebased this week (two days ago), but I've been running it
through tests for some time.  It was delayed by my own schedule problems
(vacation and others) that made it very difficult for me to have it
ready early in the window.

Aside from a small number of cleanup patches, these are all fixes.  I'm
happy to pull out the cleanups and focus on the fixes.

-chris

^ permalink raw reply	[flat|nested] 128+ messages in thread

* Re: [GIT PULL] Btrfs
  2014-08-14 17:59 Chris Mason
@ 2014-08-14 18:10 ` Linus Torvalds
  2014-08-14 18:17   ` Chris Mason
  0 siblings, 1 reply; 128+ messages in thread
From: Linus Torvalds @ 2014-08-14 18:10 UTC (permalink / raw)
  To: Chris Mason; +Cc: Linux Kernel Mailing List, linux-btrfs

On Thu, Aug 14, 2014 at 11:59 AM, Chris Mason <clm@fb.com> wrote:
> Hi Linus,
>
> Please pull my for-linus branch:

Yeah, I think this will be for the next merge window.

This clearly got rebased today. At the end of the merge window. After
I told people that I was traveling, and asked people to send big
things early.

So please re-send this for 3.18, and send just stable fixes for this release.

             Linus

^ permalink raw reply	[flat|nested] 128+ messages in thread

* [GIT PULL] Btrfs
@ 2014-08-14 17:59 Chris Mason
  2014-08-14 18:10 ` Linus Torvalds
  0 siblings, 1 reply; 128+ messages in thread
From: Chris Mason @ 2014-08-14 17:59 UTC (permalink / raw)
  To: Linus Torvalds, Linux Kernel Mailing List, linux-btrfs

Hi Linus,

Please pull my for-linus branch:

git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs.git for-linus

These are fixes and cleanups, including a first stab at fixing some
deadlocks we've hit since v3.15 in the btrfs workqueues.  We have one
more fix cooking on that side not included here.

Mark Fasheh has fixed more problems with quotas during snapshot
deletion, it is working much better now.

Miao Xie (25) commits (+806/-361):
    Btrfs: cleanup similar code of the buffered data data check and dio read data check (+47/-55)
    Btrfs: cleanup the read failure record after write or when the inode is freeing (+41/-0)
    Btrfs: update the comment of total_bytes and disk_total_bytes of btrfs_devie (+2/-2)
    Btrfs: make the device lock and its protected data in the same cacheline (+12/-13)
    Btrfs: fix unzeroed members in fs_devices when creating a fs from seed fs (+3/-0)
    Btrfs: don't consider the missing device when allocating new chunks (+2/-14)
    Btrfs: Fix the problem that the replace destroys the seed filesystem (+6/-2)
    Btrfs: cleanup unused latest_devid and latest_trans in fs_devices (+11/-34)
    Btrfs: Fix the problem that the dirty flag of dev stats is cleared (+20/-6)
    Btrfs: Cleanup unused variant and argument of IO failure handlers (+10/-16)
    Btrfs: fix wrong generation check of super block on a seed device (+5/-1)
    Btrfs: load checksum data once when submitting a direct read io (+35/-34)
    Btrfs: fix missing error handler if submiting re-read bio fails (+5/-0)
    Btrfs: don't write any data into a readonly device when scrub (+11/-0)
    Btrfs: Set real mirror number for read operation on RAID0/5/6 (+5/-0)
    Btrfs: Fix wrong device size when we are resizing the device (+3/-2)
    Btrfs: modify clean_io_failure and make it suit direct io (+19/-21)
    Btrfs: implement repair function when direct read fails (+300/-39)
    Btrfs: modify repair_io_failure and make it suit direct io (+7/-4)
    Btrfs: split bio_readpage_error into several functions (+123/-64)
    Btrfs: fix put dio bio twice when we submit dio bio fail (+2/-3)
    Btrfs: fix writing data into the seed filesystem (+36/-16)
    Btrfs: fix wrong missing device counter decrease (+1/-1)
    Btrfs: do file data check by sub-bio's self (+87/-29)
    Btrfs: fix wrong fsid check of scrub (+13/-5)

Filipe Manana (13) commits (+147/-89):
    Btrfs: ensure tmpfile inode is always persisted with link count of 0 (+15/-0)
    Btrfs: fix csum tree corruption, duplicate and outdated checksums (+1/-1)
    Btrfs: avoid unnecessary switch of path locks to blocking mode (+1/-2)
    Btrfs: make btrfs_search_forward return with nodes unlocked (+7/-15)
    Btrfs: unlock nodes earlier when inserting items in a btree (+6/-6)
    Btrfs: send, lower mem requirements for processing xattrs (+34/-8)
    Btrfs: race free update of commit root for ro snapshots (+36/-33)
    Btrfs: set error return value in btrfs_get_blocks_direct (+3/-1)
    Btrfs: read lock extent buffer while walking backrefs (+3/-0)
    Btrfs: clone, don't create invalid hole extent map (+2/-1)
    Btrfs: don't monopolize a core when evicting inode (+6/-0)
    Btrfs: fix hole detection during file fsync (+13/-4)
    Btrfs: reduce size of struct extent_state (+20/-18)

Anand Jain (13) commits (+129/-32):
    btrfs: replace seed device followed by unmount causes kernel WARNING (+13/-0)
    btrfs: replace seed device followed by unmount causes kernel WARNING (+7/-1)
    btrfs: preparatory to make btrfs_rm_dev_replace_srcdev() seed aware (+9/-5)
    btrfs: update sprout seed pointer when seed fs is relinquished (+19/-0)
    Btrfs: device_list_add() should not update list when mounted (+27/-0)
    btrfs: sysfs label interface should check for read only FS (+3/-0)
    btrfs: check generation as replace duplicates devid+uuid (+21/-1)
    btrfs: code optimize: BTRFS_ATTR could handle the mode (+14/-11)
    btrfs: code optimize: BTRFS_ATTR_RW could set the mode (+5/-4)
    btrfs: fix rw_devices miss match after seed replace (+2/-0)
    btrfs: use BTRFS_ATTR instead of btrfs_no_store() (+3/-10)
    btrfs: device delete must be sysloged (+3/-0)
    btrfs: device add must be sysloged (+3/-0)

David Sterba (10) commits (+279/-317):
    btrfs: remove obsolete comment in btrfs_clean_one_deleted_snapshot (+1/-4)
    btrfs: clenaup: don't call btrfs_release_path before free_path (+0/-1)
    btrfs: adjust statfs calculations according to raid profiles (+45/-6)
    btrfs: use DIV_ROUND_UP instead of open-coded variants (+22/-32)
    btrfs: wake up transaction thread from SYNC_FS ioctl (+6/-0)
    btrfs: use nodesize everywhere, kill leafsize (+89/-141)
    btrfs: cleanup ino cache members of btrfs_root (+52/-52)
    btrfs: kill the key type accessor helpers (+60/-60)
    btrfs: clean away stripe_align helper (+1/-10)
    btrfs: make close_ctree return void (+3/-11)

Wang Shilong (9) commits (+84/-23):
    Btrfs: clear compress-force when remounting with compress option (+7/-0)
    Btrfs: fix wrong write range for filemap_fdatawrite_range() (+2/-1)
    Btrfs: print btrfs specific info for some fatal error cases (+7/-7)
    Btrfs: fall into nocompression codes quickly if possible (+1/-4)
    Btrfs: fix wrong skipping compression for an inode (+20/-5)
    Btrfs: make defragment work with nodatacow option (+42/-3)
    Btrfs: fix off-by-one in cow_file_range_inline() (+2/-2)
    Btrfs: fix wrong extent mapping for DirectIO (+2/-0)
    Btrfs: fix wrong max inline data size limit (+1/-1)

Liu Bo (4) commits (+19/-11):
    Btrfs: add work_struct information for workqueue tracepoint (+6/-3)
    Btrfs: fix compressed write corruption on enospc (+12/-0)
    Btrfs: cleanup for btrfs workqueue tracepoints (+0/-7)
    Btrfs: fix regression of btrfs device replace (+1/-1)

Qu Wenruo (4) commits (+148/-14):
    btrfs: cancel scrub/replace if the user space process receive SIGKILL. (+25/-4)
    btrfs: Return right extent when fiemap gives unaligned offset and len. (+2/-2)
    btrfs: Use right extent length when inserting overlap extent map. (+5/-6)
    btrfs: Add show_path function for btrfs_super_ops. (+116/-2)

Mark Fasheh (3) commits (+498/-5):
    btrfs: qgroup: account shared subtrees during snapshot delete (+429/-1)
    btrfs: correctly handle return from ulist_add (+9/-4)
    btrfs: add trace for qgroup accounting (+60/-0)

Fabian Frederick (2) commits (+3/-4):
    btrfs: use PTR_ERR_OR_ZERO (+1/-3)
    Btrfs: fix sparse warning (+2/-1)

Satoru Takeuchi (2) commits (+14/-5):
    btrfs: use IS_ALIGNED() for assertion in btrfs_lookup_csums_range() for simplicity (+2/-2)
    btrfs: label should not contain return char (+12/-3)

chandan (1) commits (+1/-2):
    Btrfs: fill_holes: Fix slot number passed to hole_mergeable() call.

HIMANGI SARAOGI (1) commits (+2/-2):
    Btrfs: use BUG_ON

Chris Mason (1) commits (+6/-267):
    btrfs: disable strict file flushes for renames and truncates

Sergey Senozhatsky (1) commits (+68/-70):
    btrfs compression: merge inflate and deflate z_streams

Josef Bacik (1) commits (+23/-25):
    Btrfs: __btrfs_mod_ref should always use no_quota

Takashi Iwai (1) commits (+20/-6):
    Btrfs: Fix memory corruption by ulist_add_merge() on 32bit arch

Andrey Utkin (1) commits (+1/-1):
    btrfs: Drop stray check of fixup_workers creation

Total: (92) commits (+2248/-1234)

 fs/btrfs/backref.c           |  26 +-
 fs/btrfs/btrfs_inode.h       |  22 +-
 fs/btrfs/check-integrity.c   |  16 +-
 fs/btrfs/compression.c       |  10 +-
 fs/btrfs/ctree.c             |  64 ++--
 fs/btrfs/ctree.h             |  42 +--
 fs/btrfs/delayed-inode.c     |   8 +-
 fs/btrfs/dev-replace.c       |  15 +
 fs/btrfs/dir-item.c          |  12 +-
 fs/btrfs/disk-io.c           | 178 +++++------
 fs/btrfs/disk-io.h           |   3 +-
 fs/btrfs/export.c            |   4 +-
 fs/btrfs/extent-tree.c       | 354 ++++++++++++++++++----
 fs/btrfs/extent_io.c         | 297 ++++++++++++-------
 fs/btrfs/extent_io.h         |  39 ++-
 fs/btrfs/file-item.c         |  32 +-
 fs/btrfs/file.c              |  58 +---
 fs/btrfs/free-space-cache.c  |  17 +-
 fs/btrfs/hash.c              |   4 +-
 fs/btrfs/inode-item.c        |  12 +-
 fs/btrfs/inode-map.c         |  68 ++---
 fs/btrfs/inode.c             | 684 +++++++++++++++++++++++++++++++++----------
 fs/btrfs/ioctl.c             |  80 ++---
 fs/btrfs/lzo.c               |   3 +-
 fs/btrfs/ordered-data.c      | 123 --------
 fs/btrfs/ordered-data.h      |   5 -
 fs/btrfs/orphan.c            |   4 +-
 fs/btrfs/print-tree.c        |   4 +-
 fs/btrfs/qgroup.c            | 179 ++++++++++-
 fs/btrfs/qgroup.h            |   1 +
 fs/btrfs/raid56.c            |   8 +-
 fs/btrfs/reada.c             |   2 +-
 fs/btrfs/relocation.c        |  22 +-
 fs/btrfs/scrub.c             |  87 ++++--
 fs/btrfs/send.c              |  45 ++-
 fs/btrfs/super.c             | 179 ++++++++++-
 fs/btrfs/sysfs.c             |  43 +--
 fs/btrfs/sysfs.h             |  16 +-
 fs/btrfs/transaction.c       |  40 +--
 fs/btrfs/transaction.h       |   1 -
 fs/btrfs/tree-log.c          |  28 +-
 fs/btrfs/ulist.h             |  15 +
 fs/btrfs/uuid-tree.c         |   1 -
 fs/btrfs/volumes.c           | 217 ++++++++++----
 fs/btrfs/volumes.h           |  56 ++--
 fs/btrfs/xattr.c             |   4 +-
 fs/btrfs/zlib.c              | 141 +++++----
 include/trace/events/btrfs.h |  73 ++++-
 48 files changed, 2178 insertions(+), 1164 deletions(-)

^ permalink raw reply	[flat|nested] 128+ messages in thread

* Re: [GIT PULL] Btrfs
  2014-07-20 14:33 Chris Mason
@ 2014-07-21  3:07 ` Duncan
  0 siblings, 0 replies; 128+ messages in thread
From: Duncan @ 2014-07-21  3:07 UTC (permalink / raw)
  To: linux-kernel; +Cc: linux-btrfs

Chris Mason posted on Sun, 20 Jul 2014 10:33:24 -0400 as excerpted:

> I was hoping to also include a fix for a btrfs deadlock with compression
> enabled, but we're still nailing that one down.

FWIW, I might be (rarely but twice, now) hitting that one myself, 
compress=lzo, but /not/ with the rsync that has been your current primary 
trigger.

The last time I hit it, it was trying to start firefox shortly after a 
fresh boot.  Firefox didn't come up, and when I tried starting it again, 
I got the dialog saying it was already running, quit the running instance 
and try again, or reboot.

But the running firefox instance was stuck unkillable in D state, with a 
zombie child.  Three of my six cores were stuck in 100% IO-wait.

I finished what I was doing and shut down X, but of course the D-state 
and zombie firefox reparented to systemd.  The time before when that 
happened with firefox, I ended up losing several of the firefox state 
files and it forgot my extensions, which I had to restore from backup.  
So this time I mounted a reiserfs I use for other things and did a backup 
of the entire ~/.mozilla/ subdir before finishing the shutdown and 
reboot.  That backup went fine (surprised me, I thought it might hang 
too), and I umounted the reiserfs.  But when I went to finish the 
shutdown of course the affected btrfs wouldn't umount due to the stuck 
firefox.  So I did the magic-SRQ REISUB thing, and saw the emergency sync 
and the remount-read-only complete.

After that I force-rebooted.  Luckily, this time I didn't need that 
backup of the ~/.mozilla subfolder I had made -- firefox came up fine 
after the reboot.  But I did lose the read state on a few messages in my 
feed (rss/atom) and news (nntp) readers, so I think btrfs did lose the 
log from after the last root-tree commit point.

-- 
Duncan - List replies preferred.   No HTML msgs.
"Every nonfree program has a lord, a master --
and if you use the program, he is your master."  Richard Stallman


^ permalink raw reply	[flat|nested] 128+ messages in thread

* [GIT PULL] Btrfs
@ 2014-07-20 14:33 Chris Mason
  2014-07-21  3:07 ` Duncan
  0 siblings, 1 reply; 128+ messages in thread
From: Chris Mason @ 2014-07-20 14:33 UTC (permalink / raw)
  To: Linus Torvalds, linux-btrfs, Linux Kernel Mailing List


Hi Linus,

We have two more fixes in my for-linus branch:

git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs.git for-linus

I was hoping to also include a fix for a btrfs deadlock with compression
enabled, but we're still nailing that one down.

Liu Bo (1) commits (+11/-0):
    Btrfs: fix abnormal long waiting in fsync

Eric Sandeen (1) commits (+4/-4):
    btrfs: test for valid bdev before kobj removal in btrfs_rm_device

Total: (2) commits (+15/-4)

 fs/btrfs/ordered-data.c | 11 +++++++++++
 fs/btrfs/volumes.c      |  8 ++++----
 2 files changed, 15 insertions(+), 4 deletions(-)

^ permalink raw reply	[flat|nested] 128+ messages in thread

* [GIT PULL] Btrfs
@ 2014-07-04 14:42 Chris Mason
  0 siblings, 0 replies; 128+ messages in thread
From: Chris Mason @ 2014-07-04 14:42 UTC (permalink / raw)
  To: Linus Torvalds, linux-btrfs, Linux Kernel Mailing List


Hi Linus,

We've queued up a few fixes in my for-linus branch, please pull:

git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs.git for-linus

Anand Jain (7) commits (+68/-10):
    btrfs: fix null pointer dereference in btrfs_show_devname when name is null (+2/-0)
    btrfs: fix null pointer dereference in clone_fs_devices when name is null (+7/-5)
    btrfs: create sprout should rename fsid on the sysfs as well (+10/-0)
    btrfs: rename add_device_membership to btrfs_kobj_add_device (+2/-2)
    btrfs: dev replace should replace the sysfs entry (+5/-0)
    btrfs: dev delete should remove sysfs entry (+26/-0)
    btrfs: dev add should add its sysfs entry (+16/-3)

Filipe Manana (4) commits (+24/-20):
    Btrfs: fix use-after-free when cloning a trailing file hole (+9/-11)
    Btrfs: atomically set inode->i_flags in btrfs_update_iflags (+10/-7)
    Btrfs: assert send doesn't attempt to start transactions (+4/-2)
    Btrfs: fix crash when starting transaction (+1/-0)

Liu Bo (2) commits (+4/-6):
    Btrfs: fix crash when mounting raid5 btrfs with missing disks (+3/-2)
    Btrfs: fix race of using total_bytes_pinned (+1/-4)

Josef Bacik (2) commits (+7/-5):
    btrfs: only unlock block in verify_parent_transid if we locked it (+2/-1)
    Btrfs: fix btrfs_print_leaf for skinny metadata (+5/-4)

David Sterba (2) commits (+1/-6):
    btrfs: remove stale comment from btrfs_flush_all_pending_stuffs (+0/-5)
    btrfs: use E2BIG instead of EIO if compression does not help (+1/-1)

Eric Sandeen (1) commits (+2/-1):
    btrfs: fix nossd and ssd_spread mount option regression

Sergey Senozhatsky (1) commits (+1/-1):
    btrfs compression: reuse recently used workspace

Wang Shilong (1) commits (+4/-0):
    Btrfs: fix race between balance recovery and root deletion

Total: (20) commits

 fs/btrfs/compression.c     |  2 +-
 fs/btrfs/dev-replace.c     |  5 +++++
 fs/btrfs/disk-io.c         |  5 ++++-
 fs/btrfs/extent-tree.c     |  5 +----
 fs/btrfs/ioctl.c           | 37 +++++++++++++++++++------------------
 fs/btrfs/print-tree.c      |  9 +++++----
 fs/btrfs/raid56.c          |  5 +++--
 fs/btrfs/super.c           |  7 ++++++-
 fs/btrfs/sysfs.c           | 32 +++++++++++++++++++++++++++++---
 fs/btrfs/sysfs.h           |  4 ++++
 fs/btrfs/transaction.c     | 12 +++++-------
 fs/btrfs/volumes.c         | 30 +++++++++++++++++++++++++-----
 fs/btrfs/zlib.c            |  2 +-
 include/uapi/linux/btrfs.h |  1 +
 14 files changed, 109 insertions(+), 47 deletions(-)

^ permalink raw reply	[flat|nested] 128+ messages in thread

* [GIT PULL] Btrfs
@ 2014-06-20 15:53 Chris Mason
  0 siblings, 0 replies; 128+ messages in thread
From: Chris Mason @ 2014-06-20 15:53 UTC (permalink / raw)
  To: Linus Torvalds, linux-btrfs, Linux Kernel Mailing List

Hi Linus,

Please pull my for-linus branch:

git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs.git for-linus

This fixes some lockups in btrfs reported with rc1.  It probably has
some performance impact because it is backing off our spinning locks
more often and switching to a blocking lock.  I'll be able to nail that
down next week, but for now I want to get the lockups taken care of.

Otherwise some more stack reduction and assorted fixes.

Miao Xie (5) commits (+304/-126):
    Btrfs: fix wrong error handle when the device is missing or is not writeable (+15/-7)
    Btrfs: make free space cache write out functions more readable (+93/-66)
    Btrfs: fix broken free space cache after the system crashed (+186/-44)
    Btrfs: fix deadlock when mounting a degraded fs (+9/-1)
    Btrfs: use bio_endio_nodec instead of open code (+1/-8)

Chris Mason (1) commits (+46/-34):
    Btrfs: fix deadlocks with trylock on tree nodes

Wang Shilong (1) commits (+6/-7):
    Btrfs: fix NULL pointer crash when running balance and scrub concurrently

Filipe Manana (1) commits (+0/-1):
    Btrfs: remove unused wait queue in struct extent_buffer

Qu Wenruo (1) commits (+9/-10):
    btrfs: Skip scrubbing removed chunks to avoid -ENOENT.

Total: (9) commits (+365/-178)

 fs/btrfs/ctree.h            |  13 ++-
 fs/btrfs/extent-tree.c      | 143 ++++++++++++++++++++++++++-------
 fs/btrfs/extent_io.h        |   1 -
 fs/btrfs/extent_map.c       |   2 +
 fs/btrfs/extent_map.h       |   1 +
 fs/btrfs/free-space-cache.c | 192 +++++++++++++++++++++++++++++---------------
 fs/btrfs/inode.c            |  41 +++++++---
 fs/btrfs/locking.c          |  80 ++++++++++--------
 fs/btrfs/scrub.c            |  19 +++--
 fs/btrfs/volumes.c          |  36 +++++----
 fs/btrfs/volumes.h          |   3 +
 11 files changed, 359 insertions(+), 172 deletions(-)

^ permalink raw reply	[flat|nested] 128+ messages in thread

* [GIT PULL] Btrfs
@ 2014-05-20 19:25 Chris Mason
  0 siblings, 0 replies; 128+ messages in thread
From: Chris Mason @ 2014-05-20 19:25 UTC (permalink / raw)
  To: Linus Torvalds, linux-btrfs, Linux Kernel Mailing List

Hi Linus

Please pull my for-linus branch:

git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs.git for-linus

It has two fixes that we've been testing for 3.16, but since both are safe 
and fix real bugs, it makes sense to send for 3.15 instead

Liu Bo (1) commits (+5/-1):
    Btrfs: fix EIO on reading file after ioctl clone works on it

Filipe Manana (1) commits (+1/-1):
    Btrfs: send, fix incorrect ref access when using extrefs

Total: (2) commits (+6/-2)

 fs/btrfs/ioctl.c | 6 +++++-
 fs/btrfs/send.c  | 2 +-
 2 files changed, 6 insertions(+), 2 deletions(-)

^ permalink raw reply	[flat|nested] 128+ messages in thread

* [GIT PULL] Btrfs
@ 2014-04-26 23:31 Chris Mason
  0 siblings, 0 replies; 128+ messages in thread
From: Chris Mason @ 2014-04-26 23:31 UTC (permalink / raw)
  To: Linus Torvalds, Linux Kernel Mailing List, linux-btrfs


Hi Linus,

Please pull these fixes from my for-linus branch:

git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs.git for-linus

Wang Shilong (3) commits (+24/-20):
    Btrfs: avoid triggering bug_on() when we fail to start inode caching task (+5/-1)
    Btrfs: move btrfs_{set,clear}_and_info() to ctree.h (+14/-14)
    Btrfs: fix possible memory leaks in open_ctree() (+5/-5)

Filipe Manana (2) commits (+5/-1):
    Btrfs: use correct key when repeating search for extent item (+2/-0)
    Btrfs: correctly set profile flags on seqlock retry (+3/-1)

Christoph Jaeger (1) commits (+6/-2):
    btrfs: fix use-after-free in mount_subvol()

Chris Mason (1) commits (+5/-0):
    Btrfs: limit the path size in send to PATH_MAX

Qu Wenruo (1) commits (+1/-1):
    btrfs: Change the hole range to a more accurate value.

David Sterba (1) commits (+5/-5):
    btrfs: replace error code from btrfs_drop_extents

Miao Xie (1) commits (+2/-16):
    Btrfs: fix inode caching vs tree log

Total: (10) commits (+48/-45)

 fs/btrfs/ctree.h       | 14 ++++++++++++++
 fs/btrfs/disk-io.c     | 10 +++++-----
 fs/btrfs/extent-tree.c |  6 +++++-
 fs/btrfs/file.c        |  8 ++++----
 fs/btrfs/inode-map.c   | 24 +++++++-----------------
 fs/btrfs/ioctl.c       |  4 ++--
 fs/btrfs/send.c        |  5 +++++
 fs/btrfs/super.c       | 22 ++++++----------------
 8 files changed, 48 insertions(+), 45 deletions(-)

^ permalink raw reply	[flat|nested] 128+ messages in thread

* [GIT PULL] Btrfs
@ 2014-02-16 13:13 Chris Mason
  0 siblings, 0 replies; 128+ messages in thread
From: Chris Mason @ 2014-02-16 13:13 UTC (permalink / raw)
  To: Linus Torvalds, linux-btrfs, linux-kernel

Hi Linus,

We have a small collection of fixes in my for-linus branch:

git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs.git for-linus

The big thing that stands out is a revert of a new ioctl.  Users haven't
shipped yet in btrfs-progs, and Dave Sterba found a better way to export
the information.

Anand Jain (1) commits (+8/-2):
    btrfs: fix null pointer deference at btrfs_sysfs_add_one+0x105

Liu Bo (1) commits (+0/-1):
    Btrfs: fix a lockdep warning when cleaning up aborted transaction

Filipe David Borba Manana (1) commits (+10/-0):
    Btrfs: use right clone root offset for compressed extents

Mitch Harder (1) commits (+1/-1):
    Btrfs: fix max_inline mount option

Chris Mason (1) commits (+0/-17):
    Revert "btrfs: add ioctl to export size of global metadata reservation"

Josef Bacik (1) commits (+9/-2):
    Btrfs: unset DCACHE_DISCONNECTED when mounting default subvol

Total: (6) commits (+28/-23)

 fs/btrfs/disk-io.c         |  1 -
 fs/btrfs/inode.c           |  2 +-
 fs/btrfs/ioctl.c           | 16 ----------------
 fs/btrfs/send.c            | 10 ++++++++++
 fs/btrfs/super.c           | 11 +++++++++--
 fs/btrfs/sysfs.c           | 10 ++++++++--
 include/uapi/linux/btrfs.h |  1 -
 7 files changed, 28 insertions(+), 23 deletions(-)

^ permalink raw reply	[flat|nested] 128+ messages in thread

* [GIT PULL] Btrfs
@ 2014-02-09 19:13 Chris Mason
  0 siblings, 0 replies; 128+ messages in thread
From: Chris Mason @ 2014-02-09 19:13 UTC (permalink / raw)
  To: Linus Torvalds, linux-kernel, linux-btrfs


Hi Linus,

Please pull my for-linus branch:

git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs.git for-linus

This is a small collection of fixes

Josef Bacik (2) commits (+4/-5):
    Btrfs: don't loop forever if we can't run because of the tree mod log (+1/-0)
    Btrfs: fix assert screwup for the pending move stuff (+3/-5)

David Sterba (1) commits (+1/-1):
    btrfs: reserve no transaction units in btrfs_ioctl_set_features

Filipe David Borba Manana (1) commits (+2/-0):
    Btrfs: fix data corruption when reading/updating compressed extents

Jeff Mahoney (1) commits (+2/-2):
    btrfs: commit transaction after setting label and features

Total: (5) commits (+9/-8)

 fs/btrfs/compression.c | 2 ++
 fs/btrfs/extent-tree.c | 1 +
 fs/btrfs/ioctl.c       | 6 +++---
 fs/btrfs/send.c        | 8 +++-----
 4 files changed, 9 insertions(+), 8 deletions(-)

^ permalink raw reply	[flat|nested] 128+ messages in thread

* Re: [GIT PULL] Btrfs
  2014-02-04 19:50     ` Greg KH
@ 2014-02-04 19:52       ` Chris Mason
  0 siblings, 0 replies; 128+ messages in thread
From: Chris Mason @ 2014-02-04 19:52 UTC (permalink / raw)
  To: Greg KH; +Cc: dsterba, Linus Torvalds, linux-kernel, linux-btrfs, stable



On 02/04/2014 02:50 PM, Greg KH wrote:
> On Mon, Feb 03, 2014 at 01:18:40PM -0500, Chris Mason wrote:
>> On Mon 03 Feb 2014 12:54:05 PM EST, David Sterba wrote:
>>> On Thu, Jan 30, 2014 at 04:52:54PM -0500, Chris Mason wrote:
>>>> Chris Mason (3) commits (+64/-32):
>>>>      Btrfs: setup inode location during btrfs_init_inode_locked (+9/-9)
>>>>      Btrfs: don't use ram_bytes for uncompressed inline items (+52/-22)
>>>
>>> The patches are CC: stable, but haven't gone through the mailinglist.
>>> Are they still going to be picked by stable?
>>
>> We do need both in -stable, I'll help with backports.
>
> Very few of the patches you marked for -stable, actually would apply (or
> build once applied.)  Can you please send a set of patches you want
> applied?

Yes, I'll make a tree for you to pull.  Between the acls and the block 
layer changes, we had a lot of little things that will make it hard to 
apply them directly, but the backports are pretty easy.

-chris


^ permalink raw reply	[flat|nested] 128+ messages in thread

* Re: [GIT PULL] Btrfs
  2014-02-03 18:18   ` Chris Mason
@ 2014-02-04 19:50     ` Greg KH
  2014-02-04 19:52       ` Chris Mason
  0 siblings, 1 reply; 128+ messages in thread
From: Greg KH @ 2014-02-04 19:50 UTC (permalink / raw)
  To: Chris Mason; +Cc: dsterba, Linus Torvalds, linux-kernel, linux-btrfs, stable

On Mon, Feb 03, 2014 at 01:18:40PM -0500, Chris Mason wrote:
> On Mon 03 Feb 2014 12:54:05 PM EST, David Sterba wrote:
> >On Thu, Jan 30, 2014 at 04:52:54PM -0500, Chris Mason wrote:
> >>Chris Mason (3) commits (+64/-32):
> >>     Btrfs: setup inode location during btrfs_init_inode_locked (+9/-9)
> >>     Btrfs: don't use ram_bytes for uncompressed inline items (+52/-22)
> >
> >The patches are CC: stable, but haven't gone through the mailinglist.
> >Are they still going to be picked by stable?
> 
> We do need both in -stable, I'll help with backports.

Very few of the patches you marked for -stable, actually would apply (or
build once applied.)  Can you please send a set of patches you want
applied?

thanks,

greg k-h

^ permalink raw reply	[flat|nested] 128+ messages in thread

* [GIT PULL] Btrfs
@ 2014-02-04 17:59 Chris Mason
  0 siblings, 0 replies; 128+ messages in thread
From: Chris Mason @ 2014-02-04 17:59 UTC (permalink / raw)
  To: Linus Torvalds, linux-btrfs, linux-kernel


Hi Linus,

Please pull my for-linus:

git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs.git for-linus

Filipe is fixing compile and boot problems with our crc32c rework, and
Josef has disabled snapshot aware defrag for now.  As the number of
snapshots increases, we're hitting OOM.  For the short term we're
disabling things until a bigger fix is ready.

Filipe David Borba Manana (2) commits (+7/-7):
    Btrfs: use btrfs_crc32c everywhere instead of libcrc32c (+6/-6)
    Btrfs: use late_initcall instead of module_init (+1/-1)

Josef Bacik (1) commits (+1/-1):
    Btrfs: disable snapshot aware defrag for now

Total: (3) commits (+8/-8)

 fs/btrfs/check-integrity.c | 4 ++--
 fs/btrfs/disk-io.c         | 4 ++--
 fs/btrfs/inode.c           | 2 +-
 fs/btrfs/send.c            | 4 ++--
 fs/btrfs/super.c           | 2 +-
 5 files changed, 8 insertions(+), 8 deletions(-)

^ permalink raw reply	[flat|nested] 128+ messages in thread

* Re: [GIT PULL] Btrfs
  2014-02-03 17:54 ` David Sterba
@ 2014-02-03 18:18   ` Chris Mason
  2014-02-04 19:50     ` Greg KH
  0 siblings, 1 reply; 128+ messages in thread
From: Chris Mason @ 2014-02-03 18:18 UTC (permalink / raw)
  To: dsterba; +Cc: Linus Torvalds, linux-kernel, linux-btrfs, stable

On Mon 03 Feb 2014 12:54:05 PM EST, David Sterba wrote:
> On Thu, Jan 30, 2014 at 04:52:54PM -0500, Chris Mason wrote:
>> Chris Mason (3) commits (+64/-32):
>>      Btrfs: setup inode location during btrfs_init_inode_locked (+9/-9)
>>      Btrfs: don't use ram_bytes for uncompressed inline items (+52/-22)
>
> The patches are CC: stable, but haven't gone through the mailinglist.
> Are they still going to be picked by stable?

We do need both in -stable, I'll help with backports.

-chris


^ permalink raw reply	[flat|nested] 128+ messages in thread

* Re: [GIT PULL] Btrfs
  2014-01-30 21:52 Chris Mason
  2014-02-02  0:15 ` David Rientjes
@ 2014-02-03 17:54 ` David Sterba
  2014-02-03 18:18   ` Chris Mason
  1 sibling, 1 reply; 128+ messages in thread
From: David Sterba @ 2014-02-03 17:54 UTC (permalink / raw)
  To: Chris Mason; +Cc: Linus Torvalds, linux-kernel, linux-btrfs, stable

On Thu, Jan 30, 2014 at 04:52:54PM -0500, Chris Mason wrote:
> Chris Mason (3) commits (+64/-32):
>     Btrfs: setup inode location during btrfs_init_inode_locked (+9/-9)
>     Btrfs: don't use ram_bytes for uncompressed inline items (+52/-22)

The patches are CC: stable, but haven't gone through the mailinglist.
Are they still going to be picked by stable?

The commit ids:
90d3e592e99b8e374ead2b45148abf506493a959
514ac8ad8793a097c0c9d89202c642479d6dfa34

but unfortunatelly neither applies directly to anything 3.10+


david

^ permalink raw reply	[flat|nested] 128+ messages in thread

* Re: [GIT PULL] Btrfs
  2014-02-02  1:28   ` Filipe David Manana
  2014-02-02  2:40     ` David Rientjes
@ 2014-02-02  8:09     ` Chris Samuel
  1 sibling, 0 replies; 128+ messages in thread
From: Chris Samuel @ 2014-02-02  8:09 UTC (permalink / raw)
  To: linux-btrfs, fdmanana
  Cc: David Rientjes, Chris Mason, Linus Torvalds, linux-kernel

[-- Attachment #1: Type: text/plain, Size: 660 bytes --]

On Sun, 2 Feb 2014 01:28:07 AM Filipe David Manana wrote:

> One of the kbuild test robots reported this a few days ago too.
> The following patch, sent shortly after the robot's warning, fixes it:
> 
> https://patchwork.kernel.org/patch/3554671/

I can confirm that fixes the bug for me (with a different config than my usual to 
trigger the bug) at v3.13-11307-g5cb480f. Much obliged!

Tested-by: Chris Samuel <chris@csamuel.org>

All the best,
Chris
-- 
 Chris Samuel  :  http://www.csamuel.org/  :  Melbourne, VIC

This email may come with a PGP signature as a file. Do not panic.
For more info see: http://en.wikipedia.org/wiki/OpenPGP

[-- Attachment #2: This is a digitally signed message part. --]
[-- Type: application/pgp-signature, Size: 482 bytes --]

^ permalink raw reply	[flat|nested] 128+ messages in thread

* Re: [GIT PULL] Btrfs
  2014-02-02  1:28   ` Filipe David Manana
@ 2014-02-02  2:40     ` David Rientjes
  2014-02-02  8:09     ` Chris Samuel
  1 sibling, 0 replies; 128+ messages in thread
From: David Rientjes @ 2014-02-02  2:40 UTC (permalink / raw)
  To: Filipe David Manana
  Cc: Chris Mason, Linus Torvalds, linux-kernel, linux-btrfs

On Sun, 2 Feb 2014, Filipe David Manana wrote:

> >>     Btrfs: fix btrfs boot when compiled as built-in (+73/-9)
> >
> > This one, 14a958e678cd ("Btrfs: fix btrfs boot when compiled as
> > built-in"), breaks the build if CONFIG_LIBCRC32C=m:
> >
> > fs/built-in.o: In function `btrfs_check_super_csum':
> > disk-io.c:(.text+0x1a1c8b): undefined reference to `crc32c'
> > fs/built-in.o: In function `write_dev_supers.isra.120':
> > disk-io.c:(.text+0x1a2054): undefined reference to `crc32c'
> > fs/built-in.o: In function `csum_tree_block.isra.122':
> > disk-io.c:(.text+0x1a22c4): undefined reference to `crc32c'
> > fs/built-in.o: In function `btrfs_csum_data':
> > (.text+0x1a2a46): undefined reference to `crc32c'
> > fs/built-in.o: In function `send_cmd':
> > send.c:(.text+0x20fe4c): undefined reference to `crc32c'
> 
> One of the kbuild test robots reported this a few days ago too.
> The following patch, sent shortly after the robot's warning, fixes it:
> 
> https://patchwork.kernel.org/patch/3554671/
> 

Acked-by: David Rientjes <rientjes@google.com>

Fixes the build problem for me, thanks!  This needs to get into 3.14 since 
the breakage is currently in Linus's tree.

^ permalink raw reply	[flat|nested] 128+ messages in thread

* Re: [GIT PULL] Btrfs
  2014-02-02  0:15 ` David Rientjes
@ 2014-02-02  1:28   ` Filipe David Manana
  2014-02-02  2:40     ` David Rientjes
  2014-02-02  8:09     ` Chris Samuel
  0 siblings, 2 replies; 128+ messages in thread
From: Filipe David Manana @ 2014-02-02  1:28 UTC (permalink / raw)
  To: David Rientjes; +Cc: Chris Mason, Linus Torvalds, linux-kernel, linux-btrfs

On Sun, Feb 2, 2014 at 12:15 AM, David Rientjes <rientjes@google.com> wrote:
> On Thu, 30 Jan 2014, Chris Mason wrote:
>
>>
>> Hi Linus
>>
>> Please pull my for-linus branch:
>>
>> git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs.git for-linus
>>
>> There are two conflicts right now, one with the ACL code (pick your
>> version) and one with Kent's changes in the block layer pull.  That one
>> is pretty obvious too, just do both our cleanup and Kent's rework.
>>
>> This is a pretty big pull, and most of these changes have been floating
>> in btrfs-next for a long time.  Filipe's properties work is a cool
>> building block for inheriting attributes like compression down on a
>> per inode basis.
>>
>> Jeff Mahoney kicked in code to export filesystem info into sysfs.
>>
>> Otherwise, lots of performance improvements, cleanups and bug fixes.
>>
>> Looks like there are still a few other small pending incrementals, but I
>> wanted to get the bulk of this in first.
>>
>> Filipe David Borba Manana (29) commits (+1856/-301):
>>     Btrfs: fix deadlock when iterating inode refs and running delayed inodes (+12/-7)
>>     Btrfs: fix send file hole detection leading to data corruption (+15/-0)
>>     Btrfs: remove field tree_mod_seq_elem from btrfs_fs_info struct (+0/-1)
>>     Btrfs: make send's file extent item search more efficient (+17/-10)
>>     Btrfs: fix infinite path build loops in incremental send (+518/-21)
>>     Btrfs: reduce btree node locking duration on item update (+14/-10)
>>     Btrfs: return immediately if tree log mod is not necessary (+1/-1)
>>     Btrfs: fix pass of transid with wrong endianness in send.c (+3/-3)
>>     Btrfs: fix btrfs_search_slot_for_read backwards iteration (+3/-1)
>>     Btrfs: fix send to not send non-aligned clone operations (+2/-1)
>>     Btrfs: faster and more efficient extent map insertion (+41/-31)
>>     Btrfs: fix extent boundary check in bio_readpage_error (+1/-1)
>>     Btrfs: faster file extent item search in clone ioctl (+14/-9)
>>     Btrfs: unlock inodes in correct order in clone ioctl (+11/-3)
>>     Btrfs: faster file extent item replace operations (+114/-46)
>>     Btrfs: avoid unnecessary ordered extent cache resets (+2/-1)
>>     Btrfs: fix very slow inode eviction and fs unmount (+84/-14)
>>     Btrfs: fix snprintf usage by send's gen_unique_name (+1/-1)
>>     Btrfs: fix ordered extent check in btrfs_punch_hole (+1/-1)
>>     Btrfs: fix btrfs boot when compiled as built-in (+73/-9)
>
> This one, 14a958e678cd ("Btrfs: fix btrfs boot when compiled as
> built-in"), breaks the build if CONFIG_LIBCRC32C=m:
>
> fs/built-in.o: In function `btrfs_check_super_csum':
> disk-io.c:(.text+0x1a1c8b): undefined reference to `crc32c'
> fs/built-in.o: In function `write_dev_supers.isra.120':
> disk-io.c:(.text+0x1a2054): undefined reference to `crc32c'
> fs/built-in.o: In function `csum_tree_block.isra.122':
> disk-io.c:(.text+0x1a22c4): undefined reference to `crc32c'
> fs/built-in.o: In function `btrfs_csum_data':
> (.text+0x1a2a46): undefined reference to `crc32c'
> fs/built-in.o: In function `send_cmd':
> send.c:(.text+0x20fe4c): undefined reference to `crc32c'

One of the kbuild test robots reported this a few days ago too.
The following patch, sent shortly after the robot's warning, fixes it:

https://patchwork.kernel.org/patch/3554671/

thanks



-- 
Filipe David Manana,

"Reasonable men adapt themselves to the world.
 Unreasonable men adapt the world to themselves.
 That's why all progress depends on unreasonable men."

^ permalink raw reply	[flat|nested] 128+ messages in thread

* Re: [GIT PULL] Btrfs
  2014-01-30 21:52 Chris Mason
@ 2014-02-02  0:15 ` David Rientjes
  2014-02-02  1:28   ` Filipe David Manana
  2014-02-03 17:54 ` David Sterba
  1 sibling, 1 reply; 128+ messages in thread
From: David Rientjes @ 2014-02-02  0:15 UTC (permalink / raw)
  To: Chris Mason, Filipe David Borba Manana
  Cc: Linus Torvalds, linux-kernel, linux-btrfs

On Thu, 30 Jan 2014, Chris Mason wrote:

> 
> Hi Linus
> 
> Please pull my for-linus branch:
> 
> git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs.git for-linus
> 
> There are two conflicts right now, one with the ACL code (pick your
> version) and one with Kent's changes in the block layer pull.  That one
> is pretty obvious too, just do both our cleanup and Kent's rework.
> 
> This is a pretty big pull, and most of these changes have been floating
> in btrfs-next for a long time.  Filipe's properties work is a cool
> building block for inheriting attributes like compression down on a 
> per inode basis.
> 
> Jeff Mahoney kicked in code to export filesystem info into sysfs.
> 
> Otherwise, lots of performance improvements, cleanups and bug fixes.
> 
> Looks like there are still a few other small pending incrementals, but I
> wanted to get the bulk of this in first.
> 
> Filipe David Borba Manana (29) commits (+1856/-301):
>     Btrfs: fix deadlock when iterating inode refs and running delayed inodes (+12/-7)
>     Btrfs: fix send file hole detection leading to data corruption (+15/-0)
>     Btrfs: remove field tree_mod_seq_elem from btrfs_fs_info struct (+0/-1)
>     Btrfs: make send's file extent item search more efficient (+17/-10)
>     Btrfs: fix infinite path build loops in incremental send (+518/-21)
>     Btrfs: reduce btree node locking duration on item update (+14/-10)
>     Btrfs: return immediately if tree log mod is not necessary (+1/-1)
>     Btrfs: fix pass of transid with wrong endianness in send.c (+3/-3)
>     Btrfs: fix btrfs_search_slot_for_read backwards iteration (+3/-1)
>     Btrfs: fix send to not send non-aligned clone operations (+2/-1)
>     Btrfs: faster and more efficient extent map insertion (+41/-31)
>     Btrfs: fix extent boundary check in bio_readpage_error (+1/-1)
>     Btrfs: faster file extent item search in clone ioctl (+14/-9)
>     Btrfs: unlock inodes in correct order in clone ioctl (+11/-3)
>     Btrfs: faster file extent item replace operations (+114/-46)
>     Btrfs: avoid unnecessary ordered extent cache resets (+2/-1)
>     Btrfs: fix very slow inode eviction and fs unmount (+84/-14)
>     Btrfs: fix snprintf usage by send's gen_unique_name (+1/-1)
>     Btrfs: fix ordered extent check in btrfs_punch_hole (+1/-1)
>     Btrfs: fix btrfs boot when compiled as built-in (+73/-9)

This one, 14a958e678cd ("Btrfs: fix btrfs boot when compiled as 
built-in"), breaks the build if CONFIG_LIBCRC32C=m:

fs/built-in.o: In function `btrfs_check_super_csum':
disk-io.c:(.text+0x1a1c8b): undefined reference to `crc32c'
fs/built-in.o: In function `write_dev_supers.isra.120':
disk-io.c:(.text+0x1a2054): undefined reference to `crc32c'
fs/built-in.o: In function `csum_tree_block.isra.122':
disk-io.c:(.text+0x1a22c4): undefined reference to `crc32c'
fs/built-in.o: In function `btrfs_csum_data':
(.text+0x1a2a46): undefined reference to `crc32c'
fs/built-in.o: In function `send_cmd':
send.c:(.text+0x20fe4c): undefined reference to `crc32c'

^ permalink raw reply	[flat|nested] 128+ messages in thread

* [GIT PULL] Btrfs
@ 2014-01-30 21:52 Chris Mason
  2014-02-02  0:15 ` David Rientjes
  2014-02-03 17:54 ` David Sterba
  0 siblings, 2 replies; 128+ messages in thread
From: Chris Mason @ 2014-01-30 21:52 UTC (permalink / raw)
  To: Linus Torvalds, linux-kernel, linux-btrfs


Hi Linus

Please pull my for-linus branch:

git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs.git for-linus

There are two conflicts right now, one with the ACL code (pick your
version) and one with Kent's changes in the block layer pull.  That one
is pretty obvious too, just do both our cleanup and Kent's rework.

This is a pretty big pull, and most of these changes have been floating
in btrfs-next for a long time.  Filipe's properties work is a cool
building block for inheriting attributes like compression down on a 
per inode basis.

Jeff Mahoney kicked in code to export filesystem info into sysfs.

Otherwise, lots of performance improvements, cleanups and bug fixes.

Looks like there are still a few other small pending incrementals, but I
wanted to get the bulk of this in first.

Filipe David Borba Manana (29) commits (+1856/-301):
    Btrfs: fix deadlock when iterating inode refs and running delayed inodes (+12/-7)
    Btrfs: fix send file hole detection leading to data corruption (+15/-0)
    Btrfs: remove field tree_mod_seq_elem from btrfs_fs_info struct (+0/-1)
    Btrfs: make send's file extent item search more efficient (+17/-10)
    Btrfs: fix infinite path build loops in incremental send (+518/-21)
    Btrfs: reduce btree node locking duration on item update (+14/-10)
    Btrfs: return immediately if tree log mod is not necessary (+1/-1)
    Btrfs: fix pass of transid with wrong endianness in send.c (+3/-3)
    Btrfs: fix btrfs_search_slot_for_read backwards iteration (+3/-1)
    Btrfs: fix send to not send non-aligned clone operations (+2/-1)
    Btrfs: faster and more efficient extent map insertion (+41/-31)
    Btrfs: fix extent boundary check in bio_readpage_error (+1/-1)
    Btrfs: faster file extent item search in clone ioctl (+14/-9)
    Btrfs: unlock inodes in correct order in clone ioctl (+11/-3)
    Btrfs: faster file extent item replace operations (+114/-46)
    Btrfs: avoid unnecessary ordered extent cache resets (+2/-1)
    Btrfs: fix very slow inode eviction and fs unmount (+84/-14)
    Btrfs: fix snprintf usage by send's gen_unique_name (+1/-1)
    Btrfs: fix ordered extent check in btrfs_punch_hole (+1/-1)
    Btrfs: fix btrfs boot when compiled as built-in (+73/-9)
    Btrfs: more efficient extent state insertions (+55/-21)
    Btrfs: fix extent_map block_len after merging (+1/-1)
    Btrfs: add missing extent state caching calls (+3/-1)
    Btrfs: try harder to avoid btree node splits (+14/-6)
    Btrfs: fix use of uninitialized err variable (+1/-1)
    Btrfs: add support for inode properties (+545/-10)
    Btrfs: fix max dir item size calculation (+1/-1)
    Btrfs: more efficient push_leaf_right (+13/-0)
    Btrfs: fix tree mod logging (+296/-89)

Wang Shilong (26) commits (+291/-291):
    Btrfs: remove unnecessary filemap writting and waiting after block group relocation (+0/-5)
    Btrfs: fix to search previous metadata extent item since skinny metadata (+46/-2)
    Btrfs: fix wrong search path initialization before searching tree root (+1/-1)
    Btrfs: optimize to remove unnecessary removal with ulist reallocation (+1/-3)
    Btrfs: fix transaction abortion when remounting btrfs from RW to RO (+2/-2)
    Btrfs: fix wrong super generation mismatch when scrubbing supers (+26/-19)
    Btrfs: fix protection between walking backrefs and root deletion (+12/-1)
    Btrfs: handle EAGAIN case properly in btrfs_drop_snapshot() (+1/-1)
    Btrfs: improve forever loop when doing balance relocation (+36/-38)
    Btrfs: fix to catch all errors when resolving indirect ref (+9/-3)
    Btrfs: fix missing skinny metadata check in scrub_stripe() (+4/-1)
    Btrfs: wrap repeated code into scrub_blocked_if_needed() (+19/-27)
    Btrfs: remove unnecessary transaction commit before send (+0/-29)
    Btrfs: only fua the first superblock when writting supers (+4/-1)
    Btrfs: add a reschedule point in btrfs_find_all_roots() (+1/-0)
    Btrfs: fix an oops when we fail to relocate tree blocks (+6/-0)
    Btrfs: remove unused argument from select_reloc_root() (+2/-4)
    Btrfs: fix protection between send and root deletion (+29/-0)
    Btrfs: fix memory leaks on walking backrefs failure (+18/-7)
    Btrfs: fix an oops when we fail to merge reloc roots (+3/-7)
    Btrfs: fix wrong send_in_progress accounting (+13/-3)
    Btrfs: remove dead comments for read_csums() (+0/-6)
    Btrfs: remove transaction from btrfs send (+0/-33)
    Btrfs: rework ulist with list+rb_tree (+55/-88)
    Btrfs: do not export ulist functions (+1/-10)
    Btrfs: fix a warning when iput a file (+2/-0)

Miao Xie (16) commits (+375/-232):
    Btrfs: fix the reserved space leak caused by the race between nonlock dio and buffered io (+84/-47)
    Btrfs: change the members' order of btrfs_space_info structure to reduce the cache miss (+15/-14)
    Btrfs: flush the dirty pages of the ordered extent aggressively during logging csum (+5/-1)
    Btrfs: cleanup the redundant code for the block group allocation and init (+44/-50)
    Btrfs: introduce the delayed inode ref deletion for the single link inode (+157/-6)
    Btrfs: fix wrong block group in trace during the free space allocation (+2/-1)
    Btrfs: cleanup the code of used_block_group in find_free_extent() (+13/-20)
    Btrfs: cleanup unnecessary parameter and variant of prepare_pages() (+6/-8)
    Btrfs: fix the race between write back and nocow buffered write (+5/-2)
    Btrfs: use flags instead of the bool variants in delayed node (+21/-18)
    Btrfs: don't run delayed nodes again after all nodes flush (+1/-0)
    Btrfs: remove residual code in delayed inode async helper (+0/-27)
    Btrfs: cleanup code of btrfs_balance_delayed_items() (+11/-23)
    Btrfs: fix double initialization of the raid kobject (+5/-4)
    Btrfs: remove btrfs_end_transaction_dmeta() (+1/-9)
    Btrfs: fix the wrong nocow range check (+5/-2)

Jeff Mahoney (14) commits (+1068/-94):
    btrfs: use feature attribute names to print better error messages (+64/-6)
    btrfs: add ioctl to export size of global metadata reservation (+17/-0)
    btrfs: add ioctls to query/change feature bits online (+163/-0)
    btrfs: add ability to change features via sysfs (+117/-4)
    btrfs: publish unknown feature bits in sysfs (+107/-1)
    btrfs: publish per-super attributes in sysfs (+57/-0)
    btrfs: publish per-super features in sysfs (+65/-16)
    btrfs: publish supported featured in sysfs (+87/-0)
    btrfs: publish device membership in sysfs (+33/-0)
    btrfs: publish allocation data in sysfs (+238/-5)
    btrfs: fix leaks during sysfs teardown (+73/-60)
    btrfs: fix static checker warnings (+2/-2)
    btrfs: publish fs label in sysfs (+44/-0)
    kobject: export kobj_sysfs_ops (+1/-0)

Josef Bacik (13) commits (+836/-542):
    Btrfs: fix check-integrity to look at the referenced data properly (+12/-4)
    Btrfs: fix extent_from_logical to deal with skinny metadata (+33/-8)
    Btrfs: stop caching thread if extent_commit_sem is contended (+2/-1)
    Btrfs: move the extent buffer radix tree into the fs_info (+34/-39)
    Btrfs: incompatible format change to remove hole extents (+373/-56)
    Btrfs: only process as many file extents as there are refs (+9/-8)
    Btrfs: attach delayed ref updates to delayed ref heads (+267/-405)
    Btrfs: fix qgroup rescan to work with skinny metadata (+13/-5)
    Btrfs: use a bit to track if we're in the radix tree (+5/-3)
    Btrfs: deal with io_tree->mapping being NULL (+16/-8)
    Btrfs: make fsync latency less sucky (+15/-1)
    Btrfs: throttle delayed refs better (+46/-4)
    rwsem: add rwsem_is_contended (+11/-0)

Qu Wenruo (11) commits (+189/-86):
    btrfs: Add "barrier" option to support "-o remount,barrier" (+14/-7)
    btrfs: Cleanup the btrfs_parse_options for remount. (+77/-60)
    btrfs: Add noflushoncommit mount option. (+8/-1)
    btrfs: Add noenospc_debug mount option. (+7/-1)
    btrfs: Add noinode_cache mount option (+22/-2)
    btrfs: Add noautodefrag mount option. (+12/-4)
    btrfs: Add nodiscard mount option. (+10/-3)
    btrfs: Add datasum mount option. (+13/-1)
    btrfs: Add datacow mount option. (+10/-3)
    btrfs: Add treelog mount option. (+9/-2)
    btrfs: Add acl mount option. (+7/-2)

David Sterba (10) commits (+128/-92):
    btrfs: call permission checks earlier in ioctls and return EPERM (+9/-13)
    btrfs: reserve no transaction units in btrfs_feature_attr_store (+1/-1)
    btrfs: Check read-only status of roots during send (+79/-3)
    btrfs: sysfs: don't show reserved incompat feature (+0/-2)
    btrfs: restrict snapshotting to own subvolumes (+6/-0)
    btrfs: check balance of send_in_progress (+20/-18)
    btrfs: replace BUG in can_modify_feature (+3/-1)
    btrfs: sysfs: list the NO_HOLES feature (+2/-0)
    btrfs: remove unused mnt from send_ctx (+0/-4)
    btrfs: send: clean up dead code (+8/-50)

Valentina Giusti (8) commits (+4/-41):
    btrfs: replace path->slots[0] with otherwise unused variable 'slot' (+2/-2)
    btrfs: remove unused variable from setup_cluster_no_bitmap (+0/-2)
    btrfs: remove unused variable from scrub_fixup_nodatasum (+0/-2)
    btrfs: remove unused variable from find_free_extent (+0/-2)
    btrfs: remove unused variable from btrfs_new_inode (+0/-6)
    btrfs: remove unused variables from extent_io.c (+0/-7)
    btrfs: remove unused variables from disk-io.c (+0/-11)
    btrfs: fix unused variables in qgroup.c (+2/-9)

Liu Bo (7) commits (+136/-85):
    Btrfs/tracepoint: fix to report right flags for ordered extent (+11/-11)
    Btrfs: release subvolume's block_rsv before transaction commit (+7/-7)
    Btrfs: return free space to global_rsv as much as possible (+1/-1)
    Btrfs/tracepoint: update new flags for ordered extent TP (+2/-1)
    Btrfs: fix extent state leak on transaction abortion (+9/-5)
    Btrfs: skip merge part for delayed data refs (+7/-0)
    Btrfs: introduce a head ref rbtree (+99/-60)

Chris Mason (3) commits (+64/-32):
    Btrfs: setup inode location during btrfs_init_inode_locked (+9/-9)
    Btrfs: don't use ram_bytes for uncompressed inline items (+52/-22)
    Btrfs: fix spin_unlock in check_ref_cleanup (+3/-1)

Kelley Nielsen (3) commits (+71/-91):
    btrfs: expand btrfs_find_item() to include find_orphan_item functionality (+17/-35)
    btrfs: expand btrfs_find_item() to include find_root_ref functionality (+11/-20)
    btrfs: bootstrap generic btrfs_find_item interface (+43/-36)

Frank Holton (2) commits (+364/-329):
    Btrfs: make btrfs_debug match pr_debug handling related to DEBUG (+6/-0)
    Btrfs: convert printk to btrfs_ and fix BTRFS prefix (+358/-329)

Sergei Trofimovich (1) commits (+0/-71):
    btrfs: cleanup: removed unused 'btrfs_get_inode_ref_index'

Gui Hecheng (1) commits (+1/-1):
    btrfs: fix warning while merging two adjacent extents

Michal Nazarewicz (1) commits (+1/-6):
    btrfs: remove dead code

Anand Jain (1) commits (+7/-4):
    btrfs: undo sysfs when open_ctree() fails

Tsutomu Itoh (1) commits (+21/-7):
    Btrfs: fix error check of btrfs_lookup_dentry()

Wenliang Fan (1) commits (+4/-0):
    fs/btrfs: Integer overflow in btrfs_ioctl_resize()

Justin Maggard (1) commits (+3/-3):
    btrfs: fix defrag 32-bit integer overflow

Total: (149) commits

 Documentation/filesystems/btrfs.txt |  47 +-
 fs/btrfs/Kconfig                    |   3 +-
 fs/btrfs/Makefile                   |   2 +-
 fs/btrfs/acl.c                      |   7 +-
 fs/btrfs/backref.c                  | 195 ++++----
 fs/btrfs/btrfs_inode.h              |   4 +
 fs/btrfs/check-integrity.c          |  12 +-
 fs/btrfs/compression.c              |  12 +-
 fs/btrfs/ctree.c                    | 552 ++++++++++++++++-----
 fs/btrfs/ctree.h                    | 134 +++--
 fs/btrfs/delayed-inode.c            | 208 +++++---
 fs/btrfs/delayed-inode.h            |   8 +-
 fs/btrfs/delayed-ref.c              | 300 +++++------
 fs/btrfs/delayed-ref.h              |  26 +-
 fs/btrfs/dev-replace.c              |  56 ++-
 fs/btrfs/dir-item.c                 |   8 +-
 fs/btrfs/disk-io.c                  | 253 +++++-----
 fs/btrfs/extent-tree.c              | 617 ++++++++++++-----------
 fs/btrfs/extent_io.c                | 228 +++++----
 fs/btrfs/extent_io.h                |   9 +-
 fs/btrfs/extent_map.c               |  74 +--
 fs/btrfs/file-item.c                |   4 +-
 fs/btrfs/file.c                     | 216 +++++---
 fs/btrfs/free-space-cache.c         |  23 +-
 fs/btrfs/hash.c                     |  50 ++
 fs/btrfs/hash.h                     |  11 +-
 fs/btrfs/inode-item.c               |  65 ---
 fs/btrfs/inode.c                    | 446 ++++++++++++-----
 fs/btrfs/ioctl.c                    | 348 +++++++++++--
 fs/btrfs/lzo.c                      |   6 +-
 fs/btrfs/ordered-data.c             |  15 +-
 fs/btrfs/orphan.c                   |  20 -
 fs/btrfs/print-tree.c               |   4 +-
 fs/btrfs/props.c                    | 427 ++++++++++++++++
 fs/btrfs/props.h                    |  42 ++
 fs/btrfs/qgroup.c                   |  57 ++-
 fs/btrfs/reada.c                    |   9 +-
 fs/btrfs/relocation.c               | 105 ++--
 fs/btrfs/root-tree.c                |  19 +-
 fs/btrfs/scrub.c                    | 134 ++---
 fs/btrfs/send.c                     | 961 ++++++++++++++++++++++++++++++------
 fs/btrfs/super.c                    | 241 ++++++---
 fs/btrfs/sysfs.c                    | 617 +++++++++++++++++++++++
 fs/btrfs/sysfs.h                    |  64 +++
 fs/btrfs/tests/btrfs-tests.h        |   2 +-
 fs/btrfs/transaction.c              |  55 ++-
 fs/btrfs/transaction.h              |   3 +-
 fs/btrfs/tree-log.c                 | 209 +++++++-
 fs/btrfs/ulist.c                    | 117 ++---
 fs/btrfs/ulist.h                    |  39 +-
 fs/btrfs/uuid-tree.c                |  13 +-
 fs/btrfs/volumes.c                  |  89 ++--
 fs/btrfs/xattr.c                    |  12 +-
 fs/btrfs/zlib.c                     |   8 +-
 include/linux/rwsem.h               |  11 +
 include/trace/events/btrfs.h        |  23 +-
 include/uapi/linux/btrfs.h          |  13 +
 include/uapi/linux/xattr.h          |   3 +
 lib/kobject.c                       |   1 +
 59 files changed, 5174 insertions(+), 2063 deletions(-)

^ permalink raw reply	[flat|nested] 128+ messages in thread

* [GIT PULL] Btrfs
@ 2013-12-12 21:57 Chris Mason
  0 siblings, 0 replies; 128+ messages in thread
From: Chris Mason @ 2013-12-12 21:57 UTC (permalink / raw)
  To: Linus Torvalds, linux-btrfs, LKML

Hi Linus,

Please pull my for-linus branch (or for-linus signed tag):

git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs.git for-linus

This is a small collection of fixes.  It was rebased this morning, but I
was just fixing signed-off-by tags with the wrong email.

Wang Shilong (3) commits (+57/-24):
    Btrfs: skip building backref tree for uuid and quota tree when doing balance relocation (+3/-1)
    Btrfs: make sure we cleanup all reloc roots if error happens (+7/-0)
    Btrfs: fix an oops when doing balance relocation (+47/-23)

Filipe David Borba Manana (1) commits (+10/-12):
    Btrfs: don't miss skinny extent items on delayed ref head contention

Dan Carpenter (1) commits (+2/-2):
    Btrfs: fix access_ok() check in btrfs_ioctl_send()

Miao Xie (1) commits (+2/-3):
    Btrfs: don't clear the default compression type

David Sterba (1) commits (+2/-1):
    btrfs: call mnt_drop_write after interrupted subvol deletion

Total: (7) commits (+73/-42)

 fs/btrfs/extent-tree.c | 22 +++++++-------
 fs/btrfs/ioctl.c       |  3 +-
 fs/btrfs/relocation.c  | 81 +++++++++++++++++++++++++++++++++++---------------
 fs/btrfs/send.c        |  4 +--
 fs/btrfs/super.c       |  5 ++--
 5 files changed, 73 insertions(+), 42 deletions(-)

^ permalink raw reply	[flat|nested] 128+ messages in thread

* [GIT PULL] Btrfs
@ 2013-11-21 18:35 Chris Mason
  0 siblings, 0 replies; 128+ messages in thread
From: Chris Mason @ 2013-11-21 18:35 UTC (permalink / raw)
  To: Linus Torvalds, Linux Btrfs, lkml

Hi Linus,

Please pull my for-linus branch:

git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs.git for-linus

You'll notice the last two commits were recently rebased, these were
just fixing a typo in the new documentation.

Almost all of these are bug fixes.  Dave Sterba's documentation update
is the big exception because he removed our promises to set any machine
running Btrfs on fire.

Ilya Dryomov (3) commits (+13/-5):
    Btrfs: do not inc uncorrectable_errors counter on ro scrubs (+4/-2)
    Btrfs: disable online raid-repair on ro mounts (+8/-3)
    Btrfs: fix __btrfs_start_workers retval (+1/-0)

Josef Bacik (3) commits (+5/-3):
    Btrfs: only drop modified extents if we logged the whole inode (+1/-1)
    Btrfs: don't BUG_ON() if we get an error walking backrefs (+2/-1)
    Btrfs: make sure to copy everything if we rename (+2/-1)

David Sterba (3) commits (+27/-22):
    Documentation: filesystems: add new btrfs mount options (+11/-1)
    Documentation: filesystems: update btrfs tools section (+6/-16)
    btrfs: update kconfig help text (+10/-5)

Liu Bo (2) commits (+3/-22):
    Btrfs: avoid heavy operations in btrfs_commit_super (+1/-20)
    Btrfs: fix lockdep error in async commit (+2/-2)

Stefan Behrens (1) commits (+17/-8):
    Btrfs: print bytenr instead of page pointer in check-int

Anand Jain (1) commits (+1/-1):
    btrfs: fix typo in the log message

Filipe David Borba Manana (1) commits (+1/-1):
    Btrfs: don't wait for ordered data outside desired range

Wang Shilong (1) commits (+0/-6):
    Btrfs: remove dead codes from ctree.h

Akinobu Mita (1) commits (+1/-1):
    btrfs: fix bio_size_ok() for max_sectors > 0xffff

Miao Xie (1) commits (+1/-0):
    Btrfs: fix list delete warning when removing ordered root from the list

Steven Rostedt (1) commits (+4/-3):
    btrfs: Use trace condition for get_extent tracepoint

Total: (18) commits (+73/-72)

 Documentation/filesystems/btrfs.txt | 34 +++++++++++++++++-----------------
 fs/btrfs/Kconfig                    | 15 ++++++++++-----
 fs/btrfs/async-thread.c             |  1 +
 fs/btrfs/check-integrity.c          | 25 +++++++++++++++++--------
 fs/btrfs/ctree.h                    |  6 ------
 fs/btrfs/dev-replace.c              |  2 +-
 fs/btrfs/disk-io.c                  | 21 +--------------------
 fs/btrfs/extent_io.c                | 11 ++++++++---
 fs/btrfs/inode.c                    |  6 +++---
 fs/btrfs/ordered-data.c             |  3 ++-
 fs/btrfs/scrub.c                    |  6 ++++--
 fs/btrfs/transaction.c              |  4 ++--
 fs/btrfs/tree-log.c                 |  5 +++--
 fs/btrfs/volumes.c                  |  2 +-
 include/trace/events/btrfs.h        |  4 +++-
 15 files changed, 73 insertions(+), 72 deletions(-)

^ permalink raw reply	[flat|nested] 128+ messages in thread

* Re: [GIT PULL] Btrfs
  2013-11-18  9:35             ` Heiko Carstens
@ 2013-11-18 10:30               ` Will Deacon
  0 siblings, 0 replies; 128+ messages in thread
From: Will Deacon @ 2013-11-18 10:30 UTC (permalink / raw)
  To: Heiko Carstens
  Cc: Gleb Natapov, Geert Uytterhoeven, Chris Mason, Linus Torvalds,
	linux-btrfs, lkml, Dulshani Gunawardhana, Paolo Bonzini,
	Mark Brown, Catalin Marinas

On Mon, Nov 18, 2013 at 09:35:55AM +0000, Heiko Carstens wrote:
> From b19687bad7e878aaed6edb786a22c6b05e886b97 Mon Sep 17 00:00:00 2001
> From: Heiko Carstens <heiko.carstens@de.ibm.com>
> Date: Mon, 18 Nov 2013 10:05:57 +0100
> Subject: [PATCH] kvm: kvm_clear_guest_page(): fix empty_zero_page usage
> 
> Using the address of 'empty_zero_page' as source address in order to clear
> a page is wrong. On some architectures empty_zero_page is only the pointer
> to the struct page of the empty_zero_page.
> Therefore the clear page operation would copy the contents of a couple of
> struct pages instead of clearing a page.
> For kvm only arm64 is affected by this bug.

In theory ARM is affected too, but this code doesn't seem to be invoked by
any architecture other than x86 afaict. It looks like there's a similar
issue in drivers/spi/spi-fsl-cpm.c where empty_zero_page is used as a dummy
dma buffer, but that code is basically powerpc only, so again, unlikely to
cause a problem in practice.

Will

> diff --git a/virt/kvm/kvm_main.c b/virt/kvm/kvm_main.c
> index 662f34c3287e..a0aa84b5941a 100644
> --- a/virt/kvm/kvm_main.c
> +++ b/virt/kvm/kvm_main.c
> @@ -1615,8 +1615,9 @@ EXPORT_SYMBOL_GPL(kvm_read_guest_cached);
>  
>  int kvm_clear_guest_page(struct kvm *kvm, gfn_t gfn, int offset, int len)
>  {
> -	return kvm_write_guest_page(kvm, gfn, (const void *) empty_zero_page,
> -				    offset, len);
> +	const void *zero_page = (const void *) __va(page_to_phys(ZERO_PAGE(0)));
> +
> +	return kvm_write_guest_page(kvm, gfn, zero_page, offset, len);
>  }
>  EXPORT_SYMBOL_GPL(kvm_clear_guest_page);

^ permalink raw reply	[flat|nested] 128+ messages in thread

* Re: [GIT PULL] Btrfs
  2013-11-17  9:36           ` Gleb Natapov
@ 2013-11-18  9:35             ` Heiko Carstens
  2013-11-18 10:30               ` Will Deacon
  0 siblings, 1 reply; 128+ messages in thread
From: Heiko Carstens @ 2013-11-18  9:35 UTC (permalink / raw)
  To: Gleb Natapov
  Cc: Geert Uytterhoeven, Chris Mason, Linus Torvalds, linux-btrfs,
	lkml, Dulshani Gunawardhana, Paolo Bonzini, Mark Brown,
	Catalin Marinas, Will Deacon

On Sun, Nov 17, 2013 at 11:36:04AM +0200, Gleb Natapov wrote:
> On Fri, Nov 15, 2013 at 03:57:23PM +0100, Heiko Carstens wrote:
> > On Fri, Nov 15, 2013 at 02:42:08PM +0100, Geert Uytterhoeven wrote:
> > > I was just going to comment that
> > > 
> > > +       const void *zero_page = (const void *) page_to_phys(ZERO_PAGE(0));
> > > 
> > > won't fly. You can't just cast a physical address to "void *".
> > 
> > Ouch.. I think that only works on s390 because we have a 1:1 mapping for
> > physical to virtual addresses in kernel space due to our split address spaces.
> > 
> > So for btrfs and kvm it should be page_to_virt(), and for the dma_map_single()
> > case I have no idea. :)
> Can you send updated patch for kvm please?

See below. page_to_virt() is only defined for a couple of architectures, so I
used __va(page_to_phys()) instead.
I tested the patch on s390 only...

>From b19687bad7e878aaed6edb786a22c6b05e886b97 Mon Sep 17 00:00:00 2001
From: Heiko Carstens <heiko.carstens@de.ibm.com>
Date: Mon, 18 Nov 2013 10:05:57 +0100
Subject: [PATCH] kvm: kvm_clear_guest_page(): fix empty_zero_page usage

Using the address of 'empty_zero_page' as source address in order to clear
a page is wrong. On some architectures empty_zero_page is only the pointer
to the struct page of the empty_zero_page.
Therefore the clear page operation would copy the contents of a couple of
struct pages instead of clearing a page.
For kvm only arm64 is affected by this bug.

To fix this use the ZERO_PAGE macro instead which will return the struct
page address of the empty_zero_page on all architectures.

Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
---
 virt/kvm/kvm_main.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/virt/kvm/kvm_main.c b/virt/kvm/kvm_main.c
index 662f34c3287e..a0aa84b5941a 100644
--- a/virt/kvm/kvm_main.c
+++ b/virt/kvm/kvm_main.c
@@ -1615,8 +1615,9 @@ EXPORT_SYMBOL_GPL(kvm_read_guest_cached);
 
 int kvm_clear_guest_page(struct kvm *kvm, gfn_t gfn, int offset, int len)
 {
-	return kvm_write_guest_page(kvm, gfn, (const void *) empty_zero_page,
-				    offset, len);
+	const void *zero_page = (const void *) __va(page_to_phys(ZERO_PAGE(0)));
+
+	return kvm_write_guest_page(kvm, gfn, zero_page, offset, len);
 }
 EXPORT_SYMBOL_GPL(kvm_clear_guest_page);
 
-- 
1.8.3.4


^ permalink raw reply related	[flat|nested] 128+ messages in thread

* Re: [GIT PULL] Btrfs
  2013-11-15 14:57         ` Heiko Carstens
@ 2013-11-17  9:36           ` Gleb Natapov
  2013-11-18  9:35             ` Heiko Carstens
  0 siblings, 1 reply; 128+ messages in thread
From: Gleb Natapov @ 2013-11-17  9:36 UTC (permalink / raw)
  To: Heiko Carstens
  Cc: Geert Uytterhoeven, Chris Mason, Linus Torvalds, linux-btrfs,
	lkml, Dulshani Gunawardhana, Paolo Bonzini, Mark Brown

On Fri, Nov 15, 2013 at 03:57:23PM +0100, Heiko Carstens wrote:
> On Fri, Nov 15, 2013 at 02:42:08PM +0100, Geert Uytterhoeven wrote:
> > On Fri, Nov 15, 2013 at 2:40 PM, Chris Mason <chris.mason@fusionio.com> wrote:
> > > Quoting Chris Mason (2013-11-15 07:21:31)
> > >> Quoting Heiko Carstens (2013-11-15 06:32:16)
> > >> > On Thu, Nov 14, 2013 at 12:19:52PM -0500, Chris Mason wrote:
> > >> > > Hi Linus,
> > >> > >
> > >> > > Please pull my for-linus branch:
> > >> > >
> > >> > > git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs.git for-linus
> > >> > >
> > >> > > This is our usual merge window set of bug fixes, performance
> > >> > > improvements and cleanups.  Miao Xie has some really nice optimizations
> > >> > > for writeback.
> > >> > >
> > >> > > Josef also expanded our sanity checks quite a bit; these make up a big
> > >> > > chunk of the new lines.
> > >> >
> > >> > Hmm..  b19e68439375  "btrfs: Remove redundant local zero structure" seems to
> > >> > use the empty_zero_page incorrectly and causes this compile warning on s390:
> > >> >
> > >> >   CC      fs/btrfs/ioctl.o
> > >> > fs/btrfs/ioctl.c: In function 'btrfs_is_empty_uuid':
> > >> > fs/btrfs/ioctl.c:372:2: warning: passing argument 2 of 'memcmp' makes pointer from
> > >> >                         integer without a cast [enabled by default]
> > >> >   return !memcmp(uuid, empty_zero_page, BTRFS_UUID_SIZE);
> > >> >   ^
> > >> >
> > >> > In fact there seem to be two more incorrect usages in the kernel. The patch
> > >> > below is not really tested.
> > >>
> > >> Thanks Heiko,
> > >>
> > >> I'll make a new pull with the btrfs part of this.
> > >
> > > Or something slightly different ;)
> > >
> > > BUG: unable to handle kernel paging request at 0000000001ba6000
> > > IP: [<ffffffff812b3656>] memcmp+0xf/0x22
> > 
> > I was just going to comment that
> > 
> > +       const void *zero_page = (const void *) page_to_phys(ZERO_PAGE(0));
> > 
> > won't fly. You can't just cast a physical address to "void *".
> 
> Ouch.. I think that only works on s390 because we have a 1:1 mapping for
> physical to virtual addresses in kernel space due to our split address spaces.
> 
> So for btrfs and kvm it should be page_to_virt(), and for the dma_map_single()
> case I have no idea. :)
Can you send updated patch for kvm please?

--
			Gleb.

^ permalink raw reply	[flat|nested] 128+ messages in thread

* Re: [GIT PULL] Btrfs
  2013-11-15 15:19 Chris Mason
@ 2013-11-15 16:11 ` Geert Uytterhoeven
  0 siblings, 0 replies; 128+ messages in thread
From: Geert Uytterhoeven @ 2013-11-15 16:11 UTC (permalink / raw)
  To: Chris Mason; +Cc: Linus Torvalds, linux-btrfs, lkml, Heiko Carstens

On Fri, Nov 15, 2013 at 4:19 PM, Chris Mason <chris.mason@fusionio.com> wrote:
> Chris Mason (1) commits (+7/-2):
>     btrfs: fix empty_zero_page misusage

https://git.kernel.org/cgit/linux/kernel/git/mason/linux-btrfs.git/commit/?h=for-linus&id=46e0f66a0cf9e1fe25bfdcf4a60c08aface85998

FYI, you may want to loop over longs instead of bytes.

Gr{oetje,eeting}s,

                        Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
                                -- Linus Torvalds

^ permalink raw reply	[flat|nested] 128+ messages in thread

* [GIT PULL] Btrfs
@ 2013-11-15 15:19 Chris Mason
  2013-11-15 16:11 ` Geert Uytterhoeven
  0 siblings, 1 reply; 128+ messages in thread
From: Chris Mason @ 2013-11-15 15:19 UTC (permalink / raw)
  To: Linus Torvalds, linux-btrfs, lkml, Heiko Carstens

Hi Linus,

This pull fixes the empty_zero_page bug that Heiko reported, and
includes one more cleanup from Al Viro.   Please grab my for-linus:

git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs.git for-linus

Chris Mason (1) commits (+7/-2):
    btrfs: fix empty_zero_page misusage

Al Viro (1) commits (+4/-9):
    btrfs: get rid of fdentry()

Total: (2) commits (+11/-11)

 fs/btrfs/ctree.h |  5 -----
 fs/btrfs/ioctl.c | 17 +++++++++++------
 2 files changed, 11 insertions(+), 11 deletions(-)

^ permalink raw reply	[flat|nested] 128+ messages in thread

* Re: [GIT PULL] Btrfs
  2013-11-15 13:42       ` Geert Uytterhoeven
@ 2013-11-15 14:57         ` Heiko Carstens
  2013-11-17  9:36           ` Gleb Natapov
  0 siblings, 1 reply; 128+ messages in thread
From: Heiko Carstens @ 2013-11-15 14:57 UTC (permalink / raw)
  To: Geert Uytterhoeven
  Cc: Chris Mason, Linus Torvalds, linux-btrfs, lkml,
	Dulshani Gunawardhana, Gleb Natapov, Paolo Bonzini, Mark Brown

On Fri, Nov 15, 2013 at 02:42:08PM +0100, Geert Uytterhoeven wrote:
> On Fri, Nov 15, 2013 at 2:40 PM, Chris Mason <chris.mason@fusionio.com> wrote:
> > Quoting Chris Mason (2013-11-15 07:21:31)
> >> Quoting Heiko Carstens (2013-11-15 06:32:16)
> >> > On Thu, Nov 14, 2013 at 12:19:52PM -0500, Chris Mason wrote:
> >> > > Hi Linus,
> >> > >
> >> > > Please pull my for-linus branch:
> >> > >
> >> > > git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs.git for-linus
> >> > >
> >> > > This is our usual merge window set of bug fixes, performance
> >> > > improvements and cleanups.  Miao Xie has some really nice optimizations
> >> > > for writeback.
> >> > >
> >> > > Josef also expanded our sanity checks quite a bit; these make up a big
> >> > > chunk of the new lines.
> >> >
> >> > Hmm..  b19e68439375  "btrfs: Remove redundant local zero structure" seems to
> >> > use the empty_zero_page incorrectly and causes this compile warning on s390:
> >> >
> >> >   CC      fs/btrfs/ioctl.o
> >> > fs/btrfs/ioctl.c: In function 'btrfs_is_empty_uuid':
> >> > fs/btrfs/ioctl.c:372:2: warning: passing argument 2 of 'memcmp' makes pointer from
> >> >                         integer without a cast [enabled by default]
> >> >   return !memcmp(uuid, empty_zero_page, BTRFS_UUID_SIZE);
> >> >   ^
> >> >
> >> > In fact there seem to be two more incorrect usages in the kernel. The patch
> >> > below is not really tested.
> >>
> >> Thanks Heiko,
> >>
> >> I'll make a new pull with the btrfs part of this.
> >
> > Or something slightly different ;)
> >
> > BUG: unable to handle kernel paging request at 0000000001ba6000
> > IP: [<ffffffff812b3656>] memcmp+0xf/0x22
> 
> I was just going to comment that
> 
> +       const void *zero_page = (const void *) page_to_phys(ZERO_PAGE(0));
> 
> won't fly. You can't just cast a physical address to "void *".

Ouch.. I think that only works on s390 because we have a 1:1 mapping for
physical to virtual addresses in kernel space due to our split address spaces.

So for btrfs and kvm it should be page_to_virt(), and for the dma_map_single()
case I have no idea. :)


^ permalink raw reply	[flat|nested] 128+ messages in thread

* Re: [GIT PULL] Btrfs
  2013-11-15 13:40     ` Chris Mason
@ 2013-11-15 13:42       ` Geert Uytterhoeven
  2013-11-15 14:57         ` Heiko Carstens
  0 siblings, 1 reply; 128+ messages in thread
From: Geert Uytterhoeven @ 2013-11-15 13:42 UTC (permalink / raw)
  To: Chris Mason
  Cc: Heiko Carstens, Linus Torvalds, linux-btrfs, lkml,
	Dulshani Gunawardhana, Gleb Natapov, Paolo Bonzini, Mark Brown

On Fri, Nov 15, 2013 at 2:40 PM, Chris Mason <chris.mason@fusionio.com> wrote:
> Quoting Chris Mason (2013-11-15 07:21:31)
>> Quoting Heiko Carstens (2013-11-15 06:32:16)
>> > On Thu, Nov 14, 2013 at 12:19:52PM -0500, Chris Mason wrote:
>> > > Hi Linus,
>> > >
>> > > Please pull my for-linus branch:
>> > >
>> > > git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs.git for-linus
>> > >
>> > > This is our usual merge window set of bug fixes, performance
>> > > improvements and cleanups.  Miao Xie has some really nice optimizations
>> > > for writeback.
>> > >
>> > > Josef also expanded our sanity checks quite a bit; these make up a big
>> > > chunk of the new lines.
>> >
>> > Hmm..  b19e68439375  "btrfs: Remove redundant local zero structure" seems to
>> > use the empty_zero_page incorrectly and causes this compile warning on s390:
>> >
>> >   CC      fs/btrfs/ioctl.o
>> > fs/btrfs/ioctl.c: In function 'btrfs_is_empty_uuid':
>> > fs/btrfs/ioctl.c:372:2: warning: passing argument 2 of 'memcmp' makes pointer from
>> >                         integer without a cast [enabled by default]
>> >   return !memcmp(uuid, empty_zero_page, BTRFS_UUID_SIZE);
>> >   ^
>> >
>> > In fact there seem to be two more incorrect usages in the kernel. The patch
>> > below is not really tested.
>>
>> Thanks Heiko,
>>
>> I'll make a new pull with the btrfs part of this.
>
> Or something slightly different ;)
>
> BUG: unable to handle kernel paging request at 0000000001ba6000
> IP: [<ffffffff812b3656>] memcmp+0xf/0x22

I was just going to comment that

+       const void *zero_page = (const void *) page_to_phys(ZERO_PAGE(0));

won't fly. You can't just cast a physical address to "void *".

Gr{oetje,eeting}s,

                        Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
                                -- Linus Torvalds

^ permalink raw reply	[flat|nested] 128+ messages in thread

* Re: [GIT PULL] Btrfs
  2013-11-15 12:21   ` Chris Mason
@ 2013-11-15 13:40     ` Chris Mason
  2013-11-15 13:42       ` Geert Uytterhoeven
  0 siblings, 1 reply; 128+ messages in thread
From: Chris Mason @ 2013-11-15 13:40 UTC (permalink / raw)
  To: Heiko Carstens
  Cc: Linus Torvalds, linux-btrfs, lkml, Dulshani Gunawardhana,
	Gleb Natapov, Paolo Bonzini, Mark Brown

Quoting Chris Mason (2013-11-15 07:21:31)
> Quoting Heiko Carstens (2013-11-15 06:32:16)
> > On Thu, Nov 14, 2013 at 12:19:52PM -0500, Chris Mason wrote:
> > > Hi Linus,
> > > 
> > > Please pull my for-linus branch:
> > > 
> > > git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs.git for-linus
> > > 
> > > This is our usual merge window set of bug fixes, performance
> > > improvements and cleanups.  Miao Xie has some really nice optimizations
> > > for writeback.
> > > 
> > > Josef also expanded our sanity checks quite a bit; these make up a big
> > > chunk of the new lines.
> > 
> > Hmm..  b19e68439375  "btrfs: Remove redundant local zero structure" seems to
> > use the empty_zero_page incorrectly and causes this compile warning on s390:
> > 
> >   CC      fs/btrfs/ioctl.o
> > fs/btrfs/ioctl.c: In function 'btrfs_is_empty_uuid':
> > fs/btrfs/ioctl.c:372:2: warning: passing argument 2 of 'memcmp' makes pointer from
> >                         integer without a cast [enabled by default]
> >   return !memcmp(uuid, empty_zero_page, BTRFS_UUID_SIZE);
> >   ^
> > 
> > In fact there seem to be two more incorrect usages in the kernel. The patch
> > below is not really tested.
> 
> Thanks Heiko,
> 
> I'll make a new pull with the btrfs part of this.

Or something slightly different ;)

BUG: unable to handle kernel paging request at 0000000001ba6000
IP: [<ffffffff812b3656>] memcmp+0xf/0x22

-chris


^ permalink raw reply	[flat|nested] 128+ messages in thread

* Re: [GIT PULL] Btrfs
  2013-11-15 11:32 ` Heiko Carstens
@ 2013-11-15 12:21   ` Chris Mason
  2013-11-15 13:40     ` Chris Mason
  0 siblings, 1 reply; 128+ messages in thread
From: Chris Mason @ 2013-11-15 12:21 UTC (permalink / raw)
  To: Heiko Carstens
  Cc: Linus Torvalds, linux-btrfs, lkml, Dulshani Gunawardhana,
	Gleb Natapov, Paolo Bonzini, Mark Brown

Quoting Heiko Carstens (2013-11-15 06:32:16)
> On Thu, Nov 14, 2013 at 12:19:52PM -0500, Chris Mason wrote:
> > Hi Linus,
> > 
> > Please pull my for-linus branch:
> > 
> > git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs.git for-linus
> > 
> > This is our usual merge window set of bug fixes, performance
> > improvements and cleanups.  Miao Xie has some really nice optimizations
> > for writeback.
> > 
> > Josef also expanded our sanity checks quite a bit; these make up a big
> > chunk of the new lines.
> 
> Hmm..  b19e68439375  "btrfs: Remove redundant local zero structure" seems to
> use the empty_zero_page incorrectly and causes this compile warning on s390:
> 
>   CC      fs/btrfs/ioctl.o
> fs/btrfs/ioctl.c: In function 'btrfs_is_empty_uuid':
> fs/btrfs/ioctl.c:372:2: warning: passing argument 2 of 'memcmp' makes pointer from
>                         integer without a cast [enabled by default]
>   return !memcmp(uuid, empty_zero_page, BTRFS_UUID_SIZE);
>   ^
> 
> In fact there seem to be two more incorrect usages in the kernel. The patch
> below is not really tested.

Thanks Heiko,

I'll make a new pull with the btrfs part of this.

-chris

^ permalink raw reply	[flat|nested] 128+ messages in thread

* Re: [GIT PULL] Btrfs
  2013-11-14 17:19 Chris Mason
@ 2013-11-15 11:32 ` Heiko Carstens
  2013-11-15 12:21   ` Chris Mason
  0 siblings, 1 reply; 128+ messages in thread
From: Heiko Carstens @ 2013-11-15 11:32 UTC (permalink / raw)
  To: Chris Mason
  Cc: Linus Torvalds, linux-btrfs, lkml, Dulshani Gunawardhana,
	Gleb Natapov, Paolo Bonzini, Mark Brown

On Thu, Nov 14, 2013 at 12:19:52PM -0500, Chris Mason wrote:
> Hi Linus,
> 
> Please pull my for-linus branch:
> 
> git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs.git for-linus
> 
> This is our usual merge window set of bug fixes, performance
> improvements and cleanups.  Miao Xie has some really nice optimizations
> for writeback.
> 
> Josef also expanded our sanity checks quite a bit; these make up a big
> chunk of the new lines.

Hmm..  b19e68439375  "btrfs: Remove redundant local zero structure" seems to
use the empty_zero_page incorrectly and causes this compile warning on s390:

  CC      fs/btrfs/ioctl.o
fs/btrfs/ioctl.c: In function 'btrfs_is_empty_uuid':
fs/btrfs/ioctl.c:372:2: warning: passing argument 2 of 'memcmp' makes pointer from
                        integer without a cast [enabled by default]
  return !memcmp(uuid, empty_zero_page, BTRFS_UUID_SIZE);
  ^

In fact there seem to be two more incorrect usages in the kernel. The patch
below is not really tested.


>From c2a9d3a453629466f0528aacbc6cbecc4247cff5 Mon Sep 17 00:00:00 2001
From: Heiko Carstens <heiko.carstens@de.ibm.com>
Date: Fri, 15 Nov 2013 12:14:55 +0100
Subject: [PATCH] fix empty_zero_page misusage

The definition of empty_zero_page is architecture specific.
It is (currently) either a character array, an unsigned long containing
the address of the empty_zero_page, or even worse only the address
of the struct page belonging to the empty_zero_page.

So using empty_zero_page as source address to e.g. clear something may
give random results.
ZERO_PAGE() however returns across all architectures the pointer to
the struct page belonging to the empty_zero_page.

Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
---
 drivers/spi/spi-fsl-cpm.c | 3 ++-
 fs/btrfs/ioctl.c          | 4 +++-
 virt/kvm/kvm_main.c       | 5 +++--
 3 files changed, 8 insertions(+), 4 deletions(-)

diff --git a/drivers/spi/spi-fsl-cpm.c b/drivers/spi/spi-fsl-cpm.c
index 54b06376f03c..3807bbf8a48f 100644
--- a/drivers/spi/spi-fsl-cpm.c
+++ b/drivers/spi/spi-fsl-cpm.c
@@ -280,6 +280,7 @@ static unsigned long fsl_spi_cpm_get_pram(struct mpc8xxx_spi *mspi)
 
 int fsl_spi_cpm_init(struct mpc8xxx_spi *mspi)
 {
+	const void *zero_page = (const void *) page_to_phys(ZERO_PAGE(0));
 	struct device *dev = mspi->dev;
 	struct device_node *np = dev->of_node;
 	const u32 *iprop;
@@ -324,7 +325,7 @@ int fsl_spi_cpm_init(struct mpc8xxx_spi *mspi)
 		goto err_bds;
 	}
 
-	mspi->dma_dummy_tx = dma_map_single(dev, empty_zero_page, PAGE_SIZE,
+	mspi->dma_dummy_tx = dma_map_single(dev, zero_page, PAGE_SIZE,
 					    DMA_TO_DEVICE);
 	if (dma_mapping_error(dev, mspi->dma_dummy_tx)) {
 		dev_err(dev, "unable to map dummy tx buffer\n");
diff --git a/fs/btrfs/ioctl.c b/fs/btrfs/ioctl.c
index 1d04b5559e61..83f2b3e4fbf0 100644
--- a/fs/btrfs/ioctl.c
+++ b/fs/btrfs/ioctl.c
@@ -368,8 +368,10 @@ static noinline int btrfs_ioctl_fitrim(struct file *file, void __user *arg)
 
 int btrfs_is_empty_uuid(u8 *uuid)
 {
+	const void *zero_page = (const void *) page_to_phys(ZERO_PAGE(0));
+
 	BUILD_BUG_ON(BTRFS_UUID_SIZE > PAGE_SIZE);
-	return !memcmp(uuid, empty_zero_page, BTRFS_UUID_SIZE);
+	return !memcmp(uuid, zero_page, BTRFS_UUID_SIZE);
 }
 
 static noinline int create_subvol(struct inode *dir,
diff --git a/virt/kvm/kvm_main.c b/virt/kvm/kvm_main.c
index 662f34c3287e..01edf1c19332 100644
--- a/virt/kvm/kvm_main.c
+++ b/virt/kvm/kvm_main.c
@@ -1615,8 +1615,9 @@ EXPORT_SYMBOL_GPL(kvm_read_guest_cached);
 
 int kvm_clear_guest_page(struct kvm *kvm, gfn_t gfn, int offset, int len)
 {
-	return kvm_write_guest_page(kvm, gfn, (const void *) empty_zero_page,
-				    offset, len);
+	const void *zero_page = (const void *) page_to_phys(ZERO_PAGE(0));
+
+	return kvm_write_guest_page(kvm, gfn, zero_page, offset, len);
 }
 EXPORT_SYMBOL_GPL(kvm_clear_guest_page);
 
-- 
1.8.3.4


^ permalink raw reply related	[flat|nested] 128+ messages in thread

* [GIT PULL] Btrfs
@ 2013-11-14 17:19 Chris Mason
  2013-11-15 11:32 ` Heiko Carstens
  0 siblings, 1 reply; 128+ messages in thread
From: Chris Mason @ 2013-11-14 17:19 UTC (permalink / raw)
  To: Linus Torvalds, linux-btrfs, lkml

Hi Linus,

Please pull my for-linus branch:

git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs.git for-linus

This is our usual merge window set of bug fixes, performance
improvements and cleanups.  Miao Xie has some really nice optimizations
for writeback.

Josef also expanded our sanity checks quite a bit; these make up a big
chunk of the new lines.

This was tested both on 3.12 and your current git

Josef Bacik (30) commits (+2038/-419):
    Btrfs: make sure the delalloc workers actually flush compressed writes (+12/-6)
    Btrfs: do not free the dirty bytes from the trans block rsv on cleanup (+0/-2)
    Btrfs: add a sanity test for a vacant extent at the front of a file (+128/-5)
    Btrfs: take ordered root lock when removing ordered operations inode (+2/-0)
    Btrfs: stop committing the transaction so much during relocate (+13/-20)
    Btrfs: do not bug_on if we try to cow a free space cache inode (+4/-1)
    Btrfs: add an assert to btrfs_lookup_csums_range for alignment (+3/-0)
    Btrfs: cleanup reserved space when freeing tree log on error (+25/-22)
    Btrfs: fix two use-after-free bugs with transaction cleanup (+52/-82)
    Btrfs: don't delete ordered roots from list during cleanup (+2/-1)
    Btrfs: do a full search everytime in btrfs_search_old_slot (+6/-2)
    Btrfs: handle a missing extent for the first file extent (+9/-2)
    Btrfs: return an error from btrfs_wait_ordered_range (+78/-41)
    Btrfs: remove all BUG_ON()'s from commit_cowonly_roots (+8/-5)
    Btrfs: don't abort transaction in run_delalloc_nocow (+5/-15)
    Btrfs: do not release metadata for space cache inodes (+7/-1)
    Btrfs: relocate csums properly with prealloc extents (+15/-3)
    Btrfs: free reserved space on error in a few places (+21/-2)
    Btrfs: check file extent type before anything else (+5/-5)
    Btrfs: stop all workers after we free block groups (+2/-2)
    Btrfs: add tests for find_lock_delalloc_range (+389/-9)
    Btrfs: add a sanity test for btrfs_split_item (+283/-7)
    Btrfs: fix up seek_hole/seek_data handling (+19/-75)
    Btrfs: free up block groups after everything (+2/-2)
    Btrfs: reset intwrite on transaction abort (+2/-0)
    Btrfs: fix hole check in log_one_extent (+1/-1)
    Btrfs: add tests for btrfs_get_extent (+861/-2)
    Btrfs: stop using vfs_read in send (+72/-103)
    Btrfs: cleanup transaction on abort (+6/-1)
    Btrfs: fixup reserved trace points (+6/-2)

Filipe David Borba Manana (19) commits (+127/-104):
    Btrfs: fix sync fs to actually wait for all data to be persisted (+9/-3)
    Btrfs: fix csum search offset/length calculation in log tree (+7/-7)
    Btrfs: optimize extent item search in run_delayed_extent_op (+20/-7)
    Btrfs: remove path arg from btrfs_truncate_free_space_cache (+3/-15)
    Btrfs: remove unused max_key arg from btrfs_search_forward (+7/-30)
    Btrfs: don't leak delayed node on path allocation failure (+3/-1)
    Btrfs: remove unnecessary tree search when logging inode (+5/-5)
    Btrfs: log recovery, don't unlink inode always on error (+4/-1)
    Btrfs: fix btrfs_prev_leaf() previous key computation (+8/-4)
    Btrfs: remove unnecessary key copy when logging inode (+2/-3)
    Btrfs: fix memory leaks on transaction commit failure (+8/-4)
    Btrfs: remove duplicated ino cache's inode lookup (+5/-9)
    Btrfs: improve inode hash function/inode lookup (+25/-3)
    Btrfs: don't store NULL byte in symlink extents (+2/-2)
    Btrfs: optimize tree-log.c:count_inode_refs() (+5/-0)
    Btrfs: fix tracking of orphan inode count (+8/-5)
    Btrfs: don't leak block group on error (+1/-2)
    Btrfs: fix incorrect inode acl reset (+1/-1)
    Btrfs: fix verification of dir_item (+4/-2)

Miao Xie (10) commits (+121/-52):
    Btrfs: remove unnecessary initialization and memory barrior in shrink_delalloc() (+3/-4)
    Btrfs: pick up the code for the item number calculation in flush_space() (+16/-9)
    Btrfs: fix the free space write out failure when there is no data space (+12/-3)
    Btrfs: don't wait for all the async delalloc when shrinking delalloc (+12/-2)
    Btrfs: fix the confusion between delalloc bytes and metadata bytes (+6/-0)
    Btrfs: improve jitter performance of the sequential buffered write (+4/-3)
    Btrfs: don't wait for the completion of all the ordered extents (+31/-18)
    Btrfs: fix BUG_ON() casued by the reserved space migration (+28/-3)
    Btrfs: wait for the ordered extent only when we want (+2/-1)
    Btrfs: rename btrfs_start_all_delalloc_inodes (+7/-9)

Liu Bo (7) commits (+69/-32):
    Btrfs: fix a crash when running balance and defrag concurrently (+3/-0)
    Btrfs: do not run snapshot-aware defragment on error (+28/-19)
    Btrfs: export btrfs space shared info to userspace (+33/-1)
    Btrfs: fixup error path in __btrfs_inc_extent_ref (+2/-8)
    Btrfs: kill unused code in btrfs_search_forward (+0/-2)
    Btrfs: fix memory leak of chunks' extent map (+2/-0)
    Btrfs: cleanup dead code of defragment (+1/-2)

Stefan Behrens (6) commits (+25/-21):
    Btrfs: Wait for uuid-tree rebuild task on remount read-only (+6/-0)
    Btrfs: fix check_int 'leaf item out of bounce' regression (+1/-1)
    Btrfs: eliminate the exceptional root_tree refs=0 (+10/-15)
    Btrfs: Don't allocate inode that is already in use (+1/-1)
    Btrfs: check_int, remove warning for mixed-mode (+5/-4)
    Btrfs: init device stats for new devices (+2/-0)

Dulshani Gunawardhana (6) commits (+68/-111):
    btrfs: Enclose macros with complex values within parenthesis (+4/-4)
    btrfs: Use WARN_ON()'s return value in place of WARN_ON(1) (+28/-70)
    btrfs: Fix checkpatch.pl warning of spacing issues (+19/-19)
    btrfs: Remove redundant local zero structure (+2/-3)
    btrfs: Replace kmalloc with kmalloc_array (+5/-5)
    btrfs: Pack struct btrfs_device (+10/-10)

Ilya Dryomov (4) commits (+16/-7):
    Btrfs: nuke a bogus rw_devices decrement in __btrfs_close_devices (+2/-1)
    Btrfs: disallow 'btrfs {balance,replace} cancel' on ro mounts (+6/-0)
    Btrfs: don't leak ioctl args in btrfs_ioctl_dev_replace (+5/-4)
    Btrfs: fix the dev-replace suspend sequence (+3/-2)

Zach Brown (3) commits (+11/-56):
    btrfs: use get_seconds() instead of btrfs wrapper (+4/-12)
    btrfs: remove fs/btrfs/compat.h (+6/-26)
    btrfs: remove move_pages() (+1/-18)

Rashika (3) commits (+24/-49):
    btrfs: Replace multiple atomic_inc() with atomic_add() (+4/-4)
    btrfs: Remove useless variable in write_ctree_super() (+1/-4)
    btrfs: Add helper function for free_root_pointers() (+19/-41)

Wang Shilong (3) commits (+19/-34):
    Btrfs: use 'u64' rather than 'int' to get extent's generation (+1/-1)
    Btrfs: remove scrub_super_lock holding in btrfs_sync_log() (+8/-20)
    Btrfs: avoid unnecessary scrub workers allocation (+10/-13)

Ross Kirk (2) commits (+41/-42):
    btrfs: remove unused parameter from btrfs_header_fsid (+10/-10)
    btrfs: drop unused parameter from btrfs_item_nr (+31/-32)

Geyslan G. Bem (2) commits (+22/-22):
    btrfs: simplify kmalloc+copy_from_user to memdup_user (+3/-8)
    btrfs: Fix memory leakage in the tree-log.c (+19/-14)

Jeff Mahoney (1) commits (+7/-0):
    btrfs: add tracing for failed reservations

Chandra Seetharaman (1) commits (+28/-40):
    Btrfs: Simplify the logic in alloc_extent_buffer() for existing extent buffer case

chandan (1) commits (+1/-1):
    Btrfs: btrfs_add_ordered_operation: Fix last modified transaction comparison.

Total: (98) commits (+2601 /-974)

 fs/btrfs/Makefile                    |   4 +-
 fs/btrfs/acl.c                       |   2 +-
 fs/btrfs/async-thread.c              |   2 +-
 fs/btrfs/backref.c                   |   8 +-
 fs/btrfs/btrfs_inode.h               |  20 +
 fs/btrfs/check-integrity.c           |  18 +-
 fs/btrfs/compat.h                    |   7 -
 fs/btrfs/compression.c               |   3 +-
 fs/btrfs/ctree.c                     |  75 +--
 fs/btrfs/ctree.h                     |  36 +-
 fs/btrfs/delayed-inode.c             |  19 +-
 fs/btrfs/dev-replace.c               |  26 +-
 fs/btrfs/dir-item.c                  |   8 +-
 fs/btrfs/disk-io.c                   | 248 ++++-----
 fs/btrfs/disk-io.h                   |   4 +
 fs/btrfs/export.c                    |   1 -
 fs/btrfs/extent-tree.c               | 174 +++++--
 fs/btrfs/extent_io.c                 | 135 +++--
 fs/btrfs/extent_io.h                 |   8 +-
 fs/btrfs/extent_map.h                |   8 +-
 fs/btrfs/file-item.c                 |   7 +-
 fs/btrfs/file.c                      | 163 +++---
 fs/btrfs/free-space-cache.c          |  21 +-
 fs/btrfs/free-space-cache.h          |   4 +-
 fs/btrfs/inode-item.c                |   2 +-
 fs/btrfs/inode-map.c                 |  13 +-
 fs/btrfs/inode.c                     | 207 ++++----
 fs/btrfs/ioctl.c                     |  74 ++-
 fs/btrfs/ordered-data.c              |  52 +-
 fs/btrfs/ordered-data.h              |   6 +-
 fs/btrfs/print-tree.c                |   2 +-
 fs/btrfs/raid56.c                    |   1 -
 fs/btrfs/relocation.c                |  94 ++--
 fs/btrfs/scrub.c                     |  46 +-
 fs/btrfs/send.c                      | 193 +++----
 fs/btrfs/super.c                     |  31 +-
 fs/btrfs/tests/btrfs-tests.c         |  74 +++
 fs/btrfs/tests/btrfs-tests.h         |  25 +
 fs/btrfs/tests/extent-buffer-tests.c | 229 +++++++++
 fs/btrfs/tests/extent-io-tests.c     | 276 ++++++++++
 fs/btrfs/tests/inode-tests.c         | 955 +++++++++++++++++++++++++++++++++++
 fs/btrfs/transaction.c               |  81 ++-
 fs/btrfs/transaction.h               |   2 +
 fs/btrfs/tree-defrag.c               |   5 +-
 fs/btrfs/tree-log.c                  | 148 +++---
 fs/btrfs/uuid-tree.c                 |   6 +-
 fs/btrfs/volumes.c                   |  26 +-
 fs/btrfs/volumes.h                   |  24 +-
 include/uapi/linux/magic.h           |   2 +-
 49 files changed, 2601 insertions(+), 974 deletions(-)

^ permalink raw reply	[flat|nested] 128+ messages in thread

* [GIT PULL] Btrfs
@ 2013-10-18 23:24 Chris Mason
  0 siblings, 0 replies; 128+ messages in thread
From: Chris Mason @ 2013-10-18 23:24 UTC (permalink / raw)
  To: Linus Torvalds, linux-btrfs, linux-kernel

Hi Linus,

My for-linus branch has a one line fix:

git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs.git for-linus

Sage hit a deadlock with ceph on btrfs, and Josef tracked it down to a
regression in our initial rc1 pull.  When doing nocow writes we were
sometimes starting a transaction with locks held.

Josef Bacik (1) commits (+1/-0):
    Btrfs: release path before starting transaction in can_nocow_extent

Total: (1) commits (+1/-0)

 fs/btrfs/inode.c | 1 +
 1 file changed, 1 insertion(+)

^ permalink raw reply	[flat|nested] 128+ messages in thread

* [GIT PULL] Btrfs
@ 2013-10-12  1:01 Chris Mason
  0 siblings, 0 replies; 128+ messages in thread
From: Chris Mason @ 2013-10-12  1:01 UTC (permalink / raw)
  To: Linus Torvalds, linux-btrfs, linux-kernel

Hi Linus,

We've got more bug fixes in my for-linus branch:

git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs.git for-linus

One of these fixes another corner of the compression oops from last
time.  Miao nailed down some problems with concurrent snapshot deletion
and drive balancing.

I kept out one of his patches for more testing, but these are all
stable.

Josef Bacik (2) commits (+5/-9):
    Btrfs: limit delalloc pages outside of find_delalloc_range (+4/-8)
    Btrfs: use right root when checking for hash collision (+1/-1)

Miao Xie (2) commits (+20/-12):
    Btrfs: fix oops caused by the space balance and dead roots (+17/-7)
    Btrfs: insert orphan roots into fs radix tree (+3/-5)

Total: (4) commits (+25/-21)

 fs/btrfs/disk-io.c    |  9 +++++----
 fs/btrfs/disk-io.h    | 13 +++++++++++--
 fs/btrfs/extent_io.c  | 12 ++++--------
 fs/btrfs/inode.c      |  2 +-
 fs/btrfs/relocation.c |  2 +-
 fs/btrfs/root-tree.c  |  8 +++-----
 6 files changed, 25 insertions(+), 21 deletions(-)

^ permalink raw reply	[flat|nested] 128+ messages in thread

* [GIT PULL] Btrfs
@ 2013-10-05 17:36 Chris Mason
  0 siblings, 0 replies; 128+ messages in thread
From: Chris Mason @ 2013-10-05 17:36 UTC (permalink / raw)
  To: Linus Torvalds, linux-btrfs, linux-kernel

Hi Linus,

Please pull my for-linus branch:

git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs.git for-linus

I've merged my for-linus up to 3.12-rc3 because the top commit is only
meant for 3.12.  The rest of the fixes are also available in my master
branch on top of my last 3.11 based pull.

This is a small collection of fixes, including a regression fix from Liu
Bo that solves rare crashes with compression on.

Ilya Dryomov (2) commits (+28/-11):
    Btrfs: fix a use-after-free bug in btrfs_dev_replace_finishing (+7/-5)
    Btrfs: eliminate races in worker stopping code (+21/-6)

Darrick J. Wong (1) commits (+8/-0):
    btrfs: Fix crash due to not allocating integrity data for a bioset

Liu Bo (1) commits (+1/-1):
    Btrfs: fix crash of compressed writes

Josef Bacik (1) commits (+2/-5):
    Btrfs: fix transid verify errors when recovering log tree

Total: (5) commits (+39/-17)

 fs/btrfs/async-thread.c | 25 +++++++++++++++++++------
 fs/btrfs/async-thread.h |  2 ++
 fs/btrfs/dev-replace.c  |  5 +----
 fs/btrfs/extent_io.c    | 10 +++++++++-
 fs/btrfs/transaction.c  |  7 ++-----
 fs/btrfs/volumes.c      |  7 ++++++-
 6 files changed, 39 insertions(+), 17 deletions(-)

^ permalink raw reply	[flat|nested] 128+ messages in thread

* [GIT PULL] Btrfs
@ 2013-09-22 20:50 Chris Mason
  0 siblings, 0 replies; 128+ messages in thread
From: Chris Mason @ 2013-09-22 20:50 UTC (permalink / raw)
  To: Linus Torvalds, linux-btrfs, linux-kernel

Hi Linus,

Please pull my for-linus branch:

git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs.git for-linus

These are mostly bug fixes and a two small performance fixes.  The most
important of the bunch are Josef's fix for a snapshotting regression and
Mark's update to fix compile problems on arm.

These are on top of 3.11 + my first pull, but they were also tested
against your master as of last night.

Josef Bacik (13) commits (+219/-102):
    Btrfs: check roots last log commit when checking if an inode has been logged (+4/-1)
    Revert "Btrfs: rework the overcommit logic to be based on the total size" (+3/-12)
    Btrfs: kill delay_iput arg to the wait_ordered functions (+14/-33)
    Btrfs: drop dir i_size when adding new names on replay (+27/-0)
    Btrfs: replay dir_index items before other items (+12/-3)
    Btrfs: fix worst case calculator for space usage (+1/-1)
    Btrfs: actually log directory we are fsync()'ing (+9/-1)
    Btrfs: actually limit the size of delalloc range (+5/-3)
    Btrfs: fixup error handling in btrfs_reloc_cow (+32/-22)
    Btrfs: remove space_info->reservation_progress (+0/-12)
    Btrfs: create the uuid tree on remount rw (+10/-0)
    Btrfs: improve replacing nocow extents (+98/-14)
    Btrfs: iput inode on allocation failure (+4/-0)

Stefan Behrens (2) commits (+4/-0):
    btrfs: show compiled-in config features at module load time (+3/-0)
    Btrfs: add the missing mutex unlock in write_all_supers() (+1/-0)

Filipe David Borba Manana (2) commits (+7/-7):
    Btrfs: don't leak transaction in btrfs_sync_file() (+2/-2)
    Btrfs: more efficient inode tree replace operation (+5/-5)

David Sterba (2) commits (+8/-0):
    btrfs: add lockdep and tracing annotations for uuid tree (+2/-0)
    btrfs: refuse to remount read-write after abort (+6/-0)

Guangyu Sun (1) commits (+2/-0):
    Btrfs: dir_inode_operations should use btrfs_update_time also

Mark Fasheh (1) commits (+45/-31):
    btrfs: change extent-same to copy entire argument struct

Ilya Dryomov (1) commits (+2/-1):
    Btrfs: do not add replace target to the alloc_list

Frank Holton (1) commits (+2/-2):
    btrfs: Add btrfs: prefix to kernel log output

chandan (1) commits (+1/-1):
    Btrfs: btrfs_ioctl_default_subvol: Revert back to toplevel subvolume when arg is 0

Miao Xie (1) commits (+74/-31):
    Btrfs: allocate the free space by the existed max extent size when ENOSPC

Total: (25) commits

 fs/btrfs/btrfs_inode.h       |   5 +-
 fs/btrfs/ctree.c             |   7 ++-
 fs/btrfs/ctree.h             |  17 ++-----
 fs/btrfs/dev-replace.c       |   4 +-
 fs/btrfs/disk-io.c           |   2 +
 fs/btrfs/extent-tree.c       |  57 +++++++++++-----------
 fs/btrfs/extent_io.c         |   8 ++--
 fs/btrfs/file.c              |   4 +-
 fs/btrfs/free-space-cache.c  |  67 ++++++++++++++++++--------
 fs/btrfs/free-space-cache.h  |   5 +-
 fs/btrfs/inode.c             |  16 +++++--
 fs/btrfs/ioctl.c             |  80 ++++++++++++++++++-------------
 fs/btrfs/ordered-data.c      |  24 ++--------
 fs/btrfs/ordered-data.h      |   5 +-
 fs/btrfs/relocation.c        |  43 ++++++++++-------
 fs/btrfs/scrub.c             | 112 +++++++++++++++++++++++++++++++++++++------
 fs/btrfs/super.c             |  21 +++++++-
 fs/btrfs/transaction.c       |   2 +-
 fs/btrfs/tree-log.c          |  52 ++++++++++++++++++--
 fs/btrfs/volumes.c           |   7 +--
 include/trace/events/btrfs.h |   1 +
 21 files changed, 364 insertions(+), 175 deletions(-)

^ permalink raw reply	[flat|nested] 128+ messages in thread

* Re: [GIT PULL] Btrfs
  2013-09-13 15:58             ` Russell King
@ 2013-09-14  9:33               ` Heiko Carstens
  0 siblings, 0 replies; 128+ messages in thread
From: Heiko Carstens @ 2013-09-14  9:33 UTC (permalink / raw)
  To: Russell King, Josh Boyer, Geert Uytterhoeven, Chris Mason,
	Mark Fasheh, Linus Torvalds, linux-btrfs,
	Linux-Kernel@Vger. Kernel. Org, Linux-Arch

On Fri, Sep 13, 2013 at 04:58:36PM +0100, Russell King wrote:
> On Fri, Sep 13, 2013 at 11:38:15AM -0400, Josh Boyer wrote:
> > On Fri, Sep 13, 2013 at 11:06 AM, Josh Boyer <jwboyer@gmail.com> wrote:
> > > On Fri, Sep 13, 2013 at 8:15 AM, Russell King <rmk@arm.linux.org.uk> wrote:
> > >> On Fri, Sep 13, 2013 at 07:53:21AM -0400, Josh Boyer wrote:
> > >>> I'm not an ARM expert, so I don't know if ARM should use the
> > >>> asm-generic implementations, or just use __get_user/__put_user in all
> > >>> cases.  I've CC'd rmk.
> > >>
> > >> Why do we have uaccess-unaligned.h ?  Normally, these kinds of things
> > >> are spawned by architectures which have problems with unaligned accesses,
> > >> ARM being one of them, but afaik we've never need this.
> > >>
> > >> With the kernel-side trapping of unaligned accesses on older hardware,
> > >> we've always dealt with the normal accessor faulting.
> > >>
> > >> From what I can tell in the git history, these unaligned put_user and
> > >> get_user have existed all the way back to the dawn of git use.
> > >>
> > >> Can someone enlighten me why we have them?
> > 
> > I somehow fail at email and dropped Russell from CC on accident.  Sigh.
> 
> You're not the first to do that recently.  I'm beginning to think it's
> something someone has written into email clients to make them do in order
> to piss me off.  I mean, it's _hard_ to do - you have to manually edit the
> recipients list to just drop one person.

You configured your mail client to generate a "Mail-Followup-To:" header
field which actively asks other mail clients to remove you from replies.
So you only get what you ask for... ;)

I think the mutt "metoo" variable will change that, but I don't know
for sure.


^ permalink raw reply	[flat|nested] 128+ messages in thread

* Re: [GIT PULL] Btrfs
  2013-09-13 15:38           ` Josh Boyer
@ 2013-09-13 15:58             ` Russell King
  2013-09-14  9:33               ` Heiko Carstens
  0 siblings, 1 reply; 128+ messages in thread
From: Russell King @ 2013-09-13 15:58 UTC (permalink / raw)
  To: Josh Boyer
  Cc: Geert Uytterhoeven, Chris Mason, Mark Fasheh, Linus Torvalds,
	linux-btrfs, Linux-Kernel@Vger. Kernel. Org, Linux-Arch

On Fri, Sep 13, 2013 at 11:38:15AM -0400, Josh Boyer wrote:
> On Fri, Sep 13, 2013 at 11:06 AM, Josh Boyer <jwboyer@gmail.com> wrote:
> > On Fri, Sep 13, 2013 at 8:15 AM, Russell King <rmk@arm.linux.org.uk> wrote:
> >> On Fri, Sep 13, 2013 at 07:53:21AM -0400, Josh Boyer wrote:
> >>> I'm not an ARM expert, so I don't know if ARM should use the
> >>> asm-generic implementations, or just use __get_user/__put_user in all
> >>> cases.  I've CC'd rmk.
> >>
> >> Why do we have uaccess-unaligned.h ?  Normally, these kinds of things
> >> are spawned by architectures which have problems with unaligned accesses,
> >> ARM being one of them, but afaik we've never need this.
> >>
> >> With the kernel-side trapping of unaligned accesses on older hardware,
> >> we've always dealt with the normal accessor faulting.
> >>
> >> From what I can tell in the git history, these unaligned put_user and
> >> get_user have existed all the way back to the dawn of git use.
> >>
> >> Can someone enlighten me why we have them?
> 
> I somehow fail at email and dropped Russell from CC on accident.  Sigh.

You're not the first to do that recently.  I'm beginning to think it's
something someone has written into email clients to make them do in order
to piss me off.  I mean, it's _hard_ to do - you have to manually edit the
recipients list to just drop one person.

> > So while that gets sorted out, would it be safe to just do as Geert
> > did on m68k and put:
> >
> > #define __put_user_unaligned(x, ptr) __put_user((x), (ptr))
> >
> > in arch/arm/include/asm/uaccess.h, and let the normal accessors and
> > kernel-side trapping deal with things?  I'm thinking that's a local
> > fix until something gets sorted upstream, but I don't want to do it if
> > it's going to break things.

Yep, that should work just fine.

-- 
Russell King
ARM architecture Linux Kernel maintainer

^ permalink raw reply	[flat|nested] 128+ messages in thread

* Re: [GIT PULL] Btrfs
  2013-09-13 15:06         ` Josh Boyer
@ 2013-09-13 15:38           ` Josh Boyer
  2013-09-13 15:58             ` Russell King
  0 siblings, 1 reply; 128+ messages in thread
From: Josh Boyer @ 2013-09-13 15:38 UTC (permalink / raw)
  To: Geert Uytterhoeven, Chris Mason, Mark Fasheh, Linus Torvalds,
	linux-btrfs, Linux-Kernel@Vger. Kernel. Org, Linux-Arch,
	Russell King

On Fri, Sep 13, 2013 at 11:06 AM, Josh Boyer <jwboyer@gmail.com> wrote:
> On Fri, Sep 13, 2013 at 8:15 AM, Russell King <rmk@arm.linux.org.uk> wrote:
>> On Fri, Sep 13, 2013 at 07:53:21AM -0400, Josh Boyer wrote:
>>> I'm not an ARM expert, so I don't know if ARM should use the
>>> asm-generic implementations, or just use __get_user/__put_user in all
>>> cases.  I've CC'd rmk.
>>
>> Why do we have uaccess-unaligned.h ?  Normally, these kinds of things
>> are spawned by architectures which have problems with unaligned accesses,
>> ARM being one of them, but afaik we've never need this.
>>
>> With the kernel-side trapping of unaligned accesses on older hardware,
>> we've always dealt with the normal accessor faulting.
>>
>> From what I can tell in the git history, these unaligned put_user and
>> get_user have existed all the way back to the dawn of git use.
>>
>> Can someone enlighten me why we have them?

I somehow fail at email and dropped Russell from CC on accident.  Sigh.

> So while that gets sorted out, would it be safe to just do as Geert
> did on m68k and put:
>
> #define __put_user_unaligned(x, ptr) __put_user((x), (ptr))
>
> in arch/arm/include/asm/uaccess.h, and let the normal accessors and
> kernel-side trapping deal with things?  I'm thinking that's a local
> fix until something gets sorted upstream, but I don't want to do it if
> it's going to break things.
>
> josh

^ permalink raw reply	[flat|nested] 128+ messages in thread

* Re: [GIT PULL] Btrfs
  2013-09-13 12:15         ` Russell King
  (?)
  (?)
@ 2013-09-13 15:06         ` Josh Boyer
  2013-09-13 15:38           ` Josh Boyer
  -1 siblings, 1 reply; 128+ messages in thread
From: Josh Boyer @ 2013-09-13 15:06 UTC (permalink / raw)
  To: Geert Uytterhoeven, Chris Mason, Mark Fasheh, Linus Torvalds,
	linux-btrfs, Linux-Kernel@Vger. Kernel. Org, Linux-Arch

On Fri, Sep 13, 2013 at 8:15 AM, Russell King <rmk@arm.linux.org.uk> wrote:
> On Fri, Sep 13, 2013 at 07:53:21AM -0400, Josh Boyer wrote:
>> I'm not an ARM expert, so I don't know if ARM should use the
>> asm-generic implementations, or just use __get_user/__put_user in all
>> cases.  I've CC'd rmk.
>
> Why do we have uaccess-unaligned.h ?  Normally, these kinds of things
> are spawned by architectures which have problems with unaligned accesses,
> ARM being one of them, but afaik we've never need this.
>
> With the kernel-side trapping of unaligned accesses on older hardware,
> we've always dealt with the normal accessor faulting.
>
> From what I can tell in the git history, these unaligned put_user and
> get_user have existed all the way back to the dawn of git use.
>
> Can someone enlighten me why we have them?

So while that gets sorted out, would it be safe to just do as Geert
did on m68k and put:

#define __put_user_unaligned(x, ptr) __put_user((x), (ptr))

in arch/arm/include/asm/uaccess.h, and let the normal accessors and
kernel-side trapping deal with things?  I'm thinking that's a local
fix until something gets sorted upstream, but I don't want to do it if
it's going to break things.

josh

^ permalink raw reply	[flat|nested] 128+ messages in thread

* Re: [GIT PULL] Btrfs
  2013-09-13 13:07 ` Ric Wheeler
@ 2013-09-13 14:11   ` Hugo Mills
  0 siblings, 0 replies; 128+ messages in thread
From: Hugo Mills @ 2013-09-13 14:11 UTC (permalink / raw)
  To: Ric Wheeler; +Cc: Chris Mason, Linus Torvalds, linux-btrfs, linux-kernel

[-- Attachment #1: Type: text/plain, Size: 1262 bytes --]

On Fri, Sep 13, 2013 at 09:07:36AM -0400, Ric Wheeler wrote:
> On 09/12/2013 11:36 AM, Chris Mason wrote:
> >Mark Fasheh's offline dedup work is also here.  In this case offline
> >means the FS is mounted and active, but the dedup work is not done
> >inline during file IO.   This is a building block where utilities  are
> >able to ask the FS to dedup a series of extents.  The kernel takes
> >care of verifying the data involved really is the same.  Today this
> >involves reading both extents, but we'll continue to evolve the patches.
> 
> Nice feature!
> 
> Just a note, the "offline" label is really confusing. In other
> storage products, they typically call this "out of band" since you
> are online but not during the actual write in a synchronous way :)

   I knew there was a specific term for this, but couldn't remember
what it was. I've now updated the btrfs website's description(s) of
the feature to include "out-of-band" and "in-band".

   Hugo.

-- 
=== Hugo Mills: hugo@... carfax.org.uk | darksatanic.net | lug.org.uk ===
  PGP key: 65E74AC0 from wwwkeys.eu.pgp.net or http://www.carfax.org.uk
     --- Once is happenstance; twice is coincidence; three times ---     
                            is enemy action.                             

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 828 bytes --]

^ permalink raw reply	[flat|nested] 128+ messages in thread

* Re: [GIT PULL] Btrfs
  2013-09-12 15:36 Chris Mason
  2013-09-12 20:38 ` Josh Boyer
@ 2013-09-13 13:07 ` Ric Wheeler
  2013-09-13 14:11   ` Hugo Mills
  1 sibling, 1 reply; 128+ messages in thread
From: Ric Wheeler @ 2013-09-13 13:07 UTC (permalink / raw)
  To: Chris Mason; +Cc: Linus Torvalds, linux-btrfs, linux-kernel

On 09/12/2013 11:36 AM, Chris Mason wrote:
> Mark Fasheh's offline dedup work is also here.  In this case offline
> means the FS is mounted and active, but the dedup work is not done
> inline during file IO.   This is a building block where utilities  are
> able to ask the FS to dedup a series of extents.  The kernel takes
> care of verifying the data involved really is the same.  Today this
> involves reading both extents, but we'll continue to evolve the patches.

Nice feature!

Just a note, the "offline" label is really confusing. In other storage products, 
they typically call this "out of band" since you are online but not during the 
actual write in a synchronous way :)

Ric



^ permalink raw reply	[flat|nested] 128+ messages in thread

* Re: [GIT PULL] Btrfs
  2013-09-13 12:15         ` Russell King
  (?)
@ 2013-09-13 12:36         ` Geert Uytterhoeven
  -1 siblings, 0 replies; 128+ messages in thread
From: Geert Uytterhoeven @ 2013-09-13 12:36 UTC (permalink / raw)
  To: Josh Boyer, Geert Uytterhoeven, Chris Mason, Mark Fasheh,
	Linus Torvalds, linux-btrfs, Linux-Kernel@Vger. Kernel. Org,
	Linux-Arch

On Fri, Sep 13, 2013 at 2:15 PM, Russell King <rmk@arm.linux.org.uk> wrote:
> On Fri, Sep 13, 2013 at 07:53:21AM -0400, Josh Boyer wrote:
>> I'm not an ARM expert, so I don't know if ARM should use the
>> asm-generic implementations, or just use __get_user/__put_user in all
>> cases.  I've CC'd rmk.
>
> Why do we have uaccess-unaligned.h ?  Normally, these kinds of things
> are spawned by architectures which have problems with unaligned accesses,
> ARM being one of them, but afaik we've never need this.
>
> With the kernel-side trapping of unaligned accesses on older hardware,
> we've always dealt with the normal accessor faulting.
>
> From what I can tell in the git history, these unaligned put_user and
> get_user have existed all the way back to the dawn of git use.
>
> Can someone enlighten me why we have them?

You removed the answer when trimming the quoted part:

| "Btrfs is the first user of __put_user_unaligned() outside the compat code,

 __put_user_unaligned() is used in fs/compat.c, presumably because
alignment restrictions may differ between 32- and 64-bit versions of the
same CPU family.

No one seems to actully use __get_user_unaligned().

Gr{oetje,eeting}s,

                        Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
                                -- Linus Torvalds

^ permalink raw reply	[flat|nested] 128+ messages in thread

* Re: [GIT PULL] Btrfs
  2013-09-13 11:53     ` Josh Boyer
@ 2013-09-13 12:15         ` Russell King
  0 siblings, 0 replies; 128+ messages in thread
From: Russell King @ 2013-09-13 12:15 UTC (permalink / raw)
  To: Josh Boyer
  Cc: Geert Uytterhoeven, Chris Mason, Mark Fasheh, Linus Torvalds,
	linux-btrfs, Linux-Kernel@Vger. Kernel. Org, Linux-Arch

On Fri, Sep 13, 2013 at 07:53:21AM -0400, Josh Boyer wrote:
> I'm not an ARM expert, so I don't know if ARM should use the
> asm-generic implementations, or just use __get_user/__put_user in all
> cases.  I've CC'd rmk.

Why do we have uaccess-unaligned.h ?  Normally, these kinds of things
are spawned by architectures which have problems with unaligned accesses,
ARM being one of them, but afaik we've never need this.

With the kernel-side trapping of unaligned accesses on older hardware,
we've always dealt with the normal accessor faulting.

>From what I can tell in the git history, these unaligned put_user and
get_user have existed all the way back to the dawn of git use.

Can someone enlighten me why we have them?

-- 
Russell King

^ permalink raw reply	[flat|nested] 128+ messages in thread

* Re: [GIT PULL] Btrfs
@ 2013-09-13 12:15         ` Russell King
  0 siblings, 0 replies; 128+ messages in thread
From: Russell King @ 2013-09-13 12:15 UTC (permalink / raw)
  To: Josh Boyer
  Cc: Geert Uytterhoeven, Chris Mason, Mark Fasheh, Linus Torvalds,
	linux-btrfs, Linux-Kernel@Vger. Kernel. Org, Linux-Arch

On Fri, Sep 13, 2013 at 07:53:21AM -0400, Josh Boyer wrote:
> I'm not an ARM expert, so I don't know if ARM should use the
> asm-generic implementations, or just use __get_user/__put_user in all
> cases.  I've CC'd rmk.

Why do we have uaccess-unaligned.h ?  Normally, these kinds of things
are spawned by architectures which have problems with unaligned accesses,
ARM being one of them, but afaik we've never need this.

With the kernel-side trapping of unaligned accesses on older hardware,
we've always dealt with the normal accessor faulting.

From what I can tell in the git history, these unaligned put_user and
get_user have existed all the way back to the dawn of git use.

Can someone enlighten me why we have them?

-- 
Russell King

^ permalink raw reply	[flat|nested] 128+ messages in thread

* Re: [GIT PULL] Btrfs
  2013-09-13  6:44   ` Geert Uytterhoeven
@ 2013-09-13 11:53     ` Josh Boyer
  2013-09-13 12:15         ` Russell King
  0 siblings, 1 reply; 128+ messages in thread
From: Josh Boyer @ 2013-09-13 11:53 UTC (permalink / raw)
  To: Geert Uytterhoeven
  Cc: Chris Mason, Mark Fasheh, Linus Torvalds, linux-btrfs,
	Linux-Kernel@Vger. Kernel. Org, Linux-Arch, Russell King

On Fri, Sep 13, 2013 at 2:44 AM, Geert Uytterhoeven
<geert@linux-m68k.org> wrote:
> On Thu, Sep 12, 2013 at 10:38 PM, Josh Boyer <jwboyer@fedoraproject.org> wrote:
>> On Thu, Sep 12, 2013 at 11:36 AM, Chris Mason <chris.mason@fusionio.com> wrote:
>>> Mark Fasheh (4):
>>>       btrfs: offline dedupe
>>
>> This commit adds calls to __put_user_unaligned, which causes build
>> failures on ARM if btrfs is configured:
>>
>> + make -s ARCH=arm V=1 -j4 modules
>> fs/btrfs/ioctl.c: In function 'btrfs_ioctl_file_extent_same':
>> fs/btrfs/ioctl.c:2802:3: error: implicit declaration of function
>> '__put_user_unaligned' [-Werror=implicit-function-declaration]
>>    if (__put_user_unaligned(info.status, &args->info[i].status) ||
>>    ^
>> cc1: some warnings being treated as errors
>> make[2]: *** [fs/btrfs/ioctl.o] Error 1
>> make[1]: *** [fs/btrfs] Error 2
>> make[1]: *** Waiting for unfinished jobs....
>> make: *** [fs] Error 2
>> make: *** Waiting for unfinished jobs....
>
> Cfr. my early warning 10 days ago:
>
> "Btrfs is the first user of __put_user_unaligned() outside the compat code,
> hence now all 32-bit architectures should make sure to implement this, too."
>
> http://marc.info/?l=linux-arch&m=137820065929216&w=2

Indeed.  I missed that as it was an m68k patch.

I'm not an ARM expert, so I don't know if ARM should use the
asm-generic implementations, or just use __get_user/__put_user in all
cases.  I've CC'd rmk.

josh

^ permalink raw reply	[flat|nested] 128+ messages in thread

* Re: [GIT PULL] Btrfs
  2013-09-12 20:38 ` Josh Boyer
@ 2013-09-13  6:44   ` Geert Uytterhoeven
  2013-09-13 11:53     ` Josh Boyer
  0 siblings, 1 reply; 128+ messages in thread
From: Geert Uytterhoeven @ 2013-09-13  6:44 UTC (permalink / raw)
  To: Josh Boyer
  Cc: Chris Mason, Mark Fasheh, Linus Torvalds, linux-btrfs,
	Linux-Kernel@Vger. Kernel. Org, Linux-Arch

On Thu, Sep 12, 2013 at 10:38 PM, Josh Boyer <jwboyer@fedoraproject.org> wrote:
> On Thu, Sep 12, 2013 at 11:36 AM, Chris Mason <chris.mason@fusionio.com> wrote:
>> Mark Fasheh (4):
>>       btrfs: offline dedupe
>
> This commit adds calls to __put_user_unaligned, which causes build
> failures on ARM if btrfs is configured:
>
> + make -s ARCH=arm V=1 -j4 modules
> fs/btrfs/ioctl.c: In function 'btrfs_ioctl_file_extent_same':
> fs/btrfs/ioctl.c:2802:3: error: implicit declaration of function
> '__put_user_unaligned' [-Werror=implicit-function-declaration]
>    if (__put_user_unaligned(info.status, &args->info[i].status) ||
>    ^
> cc1: some warnings being treated as errors
> make[2]: *** [fs/btrfs/ioctl.o] Error 1
> make[1]: *** [fs/btrfs] Error 2
> make[1]: *** Waiting for unfinished jobs....
> make: *** [fs] Error 2
> make: *** Waiting for unfinished jobs....

Cfr. my early warning 10 days ago:

"Btrfs is the first user of __put_user_unaligned() outside the compat code,
hence now all 32-bit architectures should make sure to implement this, too."

http://marc.info/?l=linux-arch&m=137820065929216&w=2

Gr{oetje,eeting}s,

                        Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
                                -- Linus Torvalds

^ permalink raw reply	[flat|nested] 128+ messages in thread

* Re: [GIT PULL] Btrfs
  2013-09-12 15:36 Chris Mason
@ 2013-09-12 20:38 ` Josh Boyer
  2013-09-13  6:44   ` Geert Uytterhoeven
  2013-09-13 13:07 ` Ric Wheeler
  1 sibling, 1 reply; 128+ messages in thread
From: Josh Boyer @ 2013-09-12 20:38 UTC (permalink / raw)
  To: Chris Mason, Mark Fasheh
  Cc: Linus Torvalds, linux-btrfs, Linux-Kernel@Vger. Kernel. Org

On Thu, Sep 12, 2013 at 11:36 AM, Chris Mason <chris.mason@fusionio.com> wrote:
> Mark Fasheh (4):
>       btrfs: offline dedupe

This commit adds calls to __put_user_unaligned, which causes build
failures on ARM if btrfs is configured:

+ make -s ARCH=arm V=1 -j4 modules
fs/btrfs/ioctl.c: In function 'btrfs_ioctl_file_extent_same':
fs/btrfs/ioctl.c:2802:3: error: implicit declaration of function
'__put_user_unaligned' [-Werror=implicit-function-declaration]
   if (__put_user_unaligned(info.status, &args->info[i].status) ||
   ^
cc1: some warnings being treated as errors
make[2]: *** [fs/btrfs/ioctl.o] Error 1
make[1]: *** [fs/btrfs] Error 2
make[1]: *** Waiting for unfinished jobs....
make: *** [fs] Error 2
make: *** Waiting for unfinished jobs....

josh

^ permalink raw reply	[flat|nested] 128+ messages in thread

* [GIT PULL] Btrfs
@ 2013-09-12 15:36 Chris Mason
  2013-09-12 20:38 ` Josh Boyer
  2013-09-13 13:07 ` Ric Wheeler
  0 siblings, 2 replies; 128+ messages in thread
From: Chris Mason @ 2013-09-12 15:36 UTC (permalink / raw)
  To: Linus Torvalds, linux-btrfs, linux-kernel

Hi Linus,

Please pull my for-linus branch:

git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs.git for-linus

This is against 3.11-rc7, but was pulled and tested against your tree as
of yesterday.  We do have two small incrementals queued up, but I wanted
to get this bunch out the door before I hop on an airplane.

This is a fairly large batch of fixes, performance improvements, and
cleanups from the usual Btrfs suspects.

We've included Stefan Behren's work to index subvolume UUIDs, which is
targeted at speeding up send/receive with many subvolumes or snapshots
in place.  It closes a long standing performance issue that was built
in to the disk format.

Mark Fasheh's offline dedup work is also here.  In this case offline
means the FS is mounted and active, but the dedup work is not done
inline during file IO.   This is a building block where utilities  are
able to ask the FS to dedup a series of extents.  The kernel takes
care of verifying the data involved really is the same.  Today this
involves reading both extents, but we'll continue to evolve the patches.

Anand Jain (3):
      btrfs: fix get set label blocking against balance
      btrfs: use BTRFS_SUPER_INFO_SIZE macro at btrfs_read_dev_super()
      btrfs: return btrfs error code for dev excl ops err

Andy Shevchenko (1):
      btrfs: reuse kbasename helper

Carey Underwood (1):
      Btrfs: Release uuid_mutex for shrink during device delete

Dan Carpenter (1):
      btrfs/raid56: fix and cleanup some error paths

Dave Jones (1):
      Fix leak in __btrfs_map_block error path

David Sterba (2):
      btrfs: make errors in btrfs_num_copies less noisy
      btrfs: add mount option to set commit interval

Filipe David Borba Manana (18):
      Btrfs: optimize btrfs_lookup_extent_info()
      Btrfs: add missing error checks to add_data_references
      Btrfs: optimize function btrfs_read_chunk_tree
      Btrfs: add missing error check to find_parent_nodes
      Btrfs: add missing error handling to read_tree_block
      Btrfs: fix inode leak on kmalloc failure in tree-log.c
      Btrfs: don't ignore errors from btrfs_run_delayed_items
      Btrfs: return ENOSPC when target space is full
      Btrfs: add missing error code to BTRFS_IOC_INO_LOOKUP handler
      Btrfs: don't miss inode ref items in BTRFS_IOC_INO_LOOKUP
      Btrfs: reset force_compress on btrfs_file_defrag failure
      Btrfs: fix memory leak of orphan block rsv
      Btrfs: fix printing of non NULL terminated string
      Btrfs: fix race between removing a dev and writing sbs
      Btrfs: fix race conditions in BTRFS_IOC_FS_INFO ioctl
      Btrfs: fix memory leak of uuid_root in free_fs_info
      Btrfs: fix deadlock in uuid scan kthread
      Btrfs: optimize key searches in btrfs_search_slot

Geert Uytterhoeven (12):
      Btrfs: Remove superfluous casts from u64 to unsigned long long
      Btrfs: Make BTRFS_DEV_REPLACE_DEVID an unsigned long long constant
      Btrfs: Format PAGE_SIZE as unsigned long
      Btrfs: Format mirror_num as int
      Btrfs: Make btrfs_device_uuid() return unsigned long
      Btrfs: Make btrfs_device_fsid() return unsigned long
      Btrfs: Make btrfs_dev_extent_chunk_tree_uuid() return unsigned long
      Btrfs: Make btrfs_header_fsid() return unsigned long
      Btrfs: Make btrfs_header_chunk_tree_uuid() return unsigned long
      Btrfs: PAGE_CACHE_SIZE is already unsigned long
      Btrfs: Do not truncate sector_t on 32-bit with CONFIG_LBDAF=y
      Btrfs: Use %z to format size_t

Ilya Dryomov (5):
      Btrfs: find_next_devid: root -> fs_info
      Btrfs: add btrfs_alloc_device and switch to it
      Btrfs: add alloc_fs_devices and switch to it
      Btrfs: rollback btrfs_device fields on umount
      Btrfs: stop refusing the relocation of chunk 0

Jeff Mahoney (1):
      btrfs: fall back to global reservation when removing subvolumes

Josef Bacik (30):
      Btrfs: stop using GFP_ATOMIC for the tree mod log allocations
      Btrfs: set lockdep class before locking new extent buffer
      Btrfs: reset ret in record_one_backref
      Btrfs: cleanup reloc roots properly on error
      Btrfs: don't bother autodefragging if our root is going away
      Btrfs: cleanup arguments to extent_clear_unlock_delalloc
      Btrfs: fix what bits we clear when erroring out from delalloc
      Btrfs: check to see if we have an inline item properly
      Btrfs: change how we queue blocks for backref checking
      Btrfs: don't bug_on when we fail when cleaning up transactions
      Btrfs: handle errors when doing slow caching
      Btrfs: check our parent dir when doing a compare send
      Btrfs: deal with enomem in the rewind path
      Btrfs: stop using GFP_ATOMIC when allocating rewind ebs
      Btrfs: skip subvol entries when checking if we've created a dir already
      Btrfs: don't allow a subvol to be deleted if it is the default subovl
      Btrfs: fix the error handling wrt orphan items
      Btrfs: fix heavy delalloc related deadlock
      Btrfs: avoid starting a transaction in the write path
      Btrfs: separate out tests into their own directory
      Btrfs: fix send issues related to inode number reuse
      Btrfs: fix send to deal with sparse files properly
      Btrfs: do not clear our orphan item runtime flag on eexist
      Btrfs: remove ourselves from the cluster list under lock
      Btrfs: adjust the fs_devices->missing count on unmount
      Btrfs: add support for asserts
      Btrfs: convert all bug_ons in free-space-cache.c
      Btrfs: allow partial ordered extent completion
      Btrfs: only update disk_i_size as we remove extents
      Btrfs: don't use an async starter for most of our workers

Liu Bo (3):
      Btrfs: make free space caching faster with many non-inline extent references
      Btrfs/tracepoint: update delayed ref tracepoints
      Btrfs: allow compressed extents to be merged during defragment

Mark Fasheh (4):
      btrfs: abtract out range locking in clone ioctl()
      btrfs_ioctl_clone: Move clone code into it's own function
      btrfs: Introduce extent_read_full_page_nolock()
      btrfs: offline dedupe

Miao Xie (7):
      Btrfs, raid56: fix memory leak when allocating pages for p/q stripes failed
      Btrfs: remove unnecessary argument of bio_readpage_error()
      Btrfs: add branch prediction hints in the read page end IO function
      Btrfs: don't cache the csum value into the extent state tree
      Btrfs: batch the extent state operation in the end io handle of the read page
      Btrfs: batch the extent state operation when reading pages
      Btrfs: cache the extent map struct when reading several pages

Mike Frysinger (1):
      Btrfs: use __u64 in exported user headers

Qu Wenruo (1):
      btrfs: Cleanup for using BTRFS_SETGET_STACK instead of raw convert

Sergei Trofimovich (1):
      btrfs: mark some local function as 'static'

Stefan Agner (1):
      Btrfs: return -1 when lzo compression makes data bigger

Stefan Behrens (14):
      Btrfs: Print key type in decimal everywhere
      Btrfs: get rid of sparse warnings
      Btrfs: introduce a tree for items that map UUIDs to something
      Btrfs: support printing UUID tree elements
      Btrfs: create UUID tree if required
      Btrfs: maintain subvolume items in the UUID tree
      Btrfs: fill UUID tree initially
      Btrfs: introduce uuid-tree-gen field
      Btrfs: check UUID tree during mount if required
      Btrfs: add mount option to force UUID tree checking
      Btrfs: don't allow the replace procedure on read only filesystems
      Btrfs: get rid of one BUG() in write_all_supers()
      Btrfs: fix for patch "cleanup: don't check the same thing twice"
      Btrf: cleanup: don't check for root_refs == 0 twice

Wang Shilong (10):
      Btrfs: set qgroup_ulist to be null after calling ulist_free()
      Btrfs: add sanity checks regarding to parsing mount options
      Btrfs: use u64 for subvolid when parsing mount options
      Btrfs: add missing mounting options in btrfs_show_options()
      Btrfs: fix possible memory leak in find_parent_nodes()
      Btrfs: fix oops when writing dirty qgroups to disk
      Btrfs: move btrfs_free_qgroup_config() out of spin_lock and fix comments
      Btrfs: remove reduplicate check when disabling quota
      Btrfs: pass gfp_t to __add_prelim_ref() to avoid always using GFP_ATOMIC
      Btrfs: allocate prelim_ref with a slab allocater

chandan (1):
      btrfs_read_block_groups: Use enums to index

 fs/btrfs/Kconfig                  |    9 +
 fs/btrfs/Makefile                 |    5 +-
 fs/btrfs/backref.c                |   93 +++--
 fs/btrfs/backref.h                |    2 +
 fs/btrfs/btrfs_inode.h            |   21 ++
 fs/btrfs/check-integrity.c        |  422 ++++++++-------------
 fs/btrfs/compression.c            |   11 +-
 fs/btrfs/ctree.c                  |  289 +++++++-------
 fs/btrfs/ctree.h                  |  161 ++++++--
 fs/btrfs/delayed-inode.c          |   46 +--
 fs/btrfs/delayed-ref.c            |    8 +-
 fs/btrfs/dev-replace.c            |    4 +-
 fs/btrfs/disk-io.c                |  174 ++++++---
 fs/btrfs/extent-tree.c            |  184 ++++++---
 fs/btrfs/extent_io.c              |  664 +++++++++++++++++++--------------
 fs/btrfs/extent_io.h              |   35 +-
 fs/btrfs/file-item.c              |   85 +++--
 fs/btrfs/file.c                   |   11 +-
 fs/btrfs/free-space-cache.c       |  525 ++++----------------------
 fs/btrfs/free-space-cache.h       |   11 +-
 fs/btrfs/inode.c                  |  615 ++++++++++++++----------------
 fs/btrfs/ioctl.c                  |  745 ++++++++++++++++++++++++++++---------
 fs/btrfs/lzo.c                    |    4 +-
 fs/btrfs/ordered-data.c           |   28 +-
 fs/btrfs/ordered-data.h           |    7 +
 fs/btrfs/print-tree.c             |  107 +++---
 fs/btrfs/qgroup.c                 |   69 ++--
 fs/btrfs/raid56.c                 |   14 +-
 fs/btrfs/relocation.c             |   43 ++-
 fs/btrfs/root-tree.c              |   21 +-
 fs/btrfs/scrub.c                  |   42 +--
 fs/btrfs/send.c                   |  240 +++++++++---
 fs/btrfs/super.c                  |  145 ++++++--
 fs/btrfs/tests/btrfs-tests.h      |   34 ++
 fs/btrfs/tests/free-space-tests.c |  395 ++++++++++++++++++++
 fs/btrfs/transaction.c            |   34 +-
 fs/btrfs/transaction.h            |    2 -
 fs/btrfs/tree-log.c               |   19 +-
 fs/btrfs/uuid-tree.c              |  358 ++++++++++++++++++
 fs/btrfs/volumes.c                |  613 ++++++++++++++++++++++--------
 fs/btrfs/volumes.h                |   12 +
 include/trace/events/btrfs.h      |   60 ++-
 include/uapi/linux/btrfs.h        |   30 +-
 43 files changed, 4045 insertions(+), 2352 deletions(-)

^ permalink raw reply	[flat|nested] 128+ messages in thread

* [GIT PULL] Btrfs
@ 2013-08-10 12:28 Chris Mason
  0 siblings, 0 replies; 128+ messages in thread
From: Chris Mason @ 2013-08-10 12:28 UTC (permalink / raw)
  To: Linus Torvalds, LKML, linux-btrfs

Hi Linus

Please pull my for-linus branch:

git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs.git for-linus

These are assorted fixes, mostly from Josef nailing down xfstests runs.
Zach also has a long standing fix for problems with readdir wrapping
f_pos (or ctx->pos)

These patches were spread out over different bases, so I rebased things on
top of rc4 and retested overnight.

Josef Bacik (6) commits (+82/-52):
    Btrfs: check to see if root_list is empty before adding it to dead roots (+5/-5)
    Btrfs: make sure the backref walker catches all refs to our extent (+14/-11)
    Btrfs: allow splitting of hole em's when dropping extent cache (+40/-22)
    Btrfs: release both paths before logging dir/changed extents (+2/-3)
    Btrfs: fix backref walking when we hit a compressed extent (+15/-8)
    Btrfs: do not offset physical if we're compressed (+6/-3)

Liu Bo (2) commits (+12/-5):
    Btrfs: fix a bug of snapshot-aware defrag to make it work on partial extents (+12/-4)
    Btrfs: fix extent buffer leak after backref walking (+0/-1)

Zach Brown (1) commits (+25/-8):
    btrfs: don't loop on large offsets in readdir

Jie Liu (1) commits (+0/-3):
    btrfs: fix file truncation if FALLOC_FL_KEEP_SIZE is specified

Total: (10) commits (+119/-68)

 fs/btrfs/backref.c     | 48 ++++++++++++++++++++++----------------
 fs/btrfs/ctree.c       |  1 -
 fs/btrfs/extent_io.c   |  9 +++++---
 fs/btrfs/file.c        | 62 ++++++++++++++++++++++++++++++++------------------
 fs/btrfs/inode.c       | 52 ++++++++++++++++++++++++++++++------------
 fs/btrfs/transaction.c |  8 +++----
 fs/btrfs/transaction.h |  2 +-
 fs/btrfs/tree-log.c    |  5 ++--
 8 files changed, 119 insertions(+), 68 deletions(-)

^ permalink raw reply	[flat|nested] 128+ messages in thread

* [GIT PULL] Btrfs
@ 2013-07-09 19:18 Chris Mason
  0 siblings, 0 replies; 128+ messages in thread
From: Chris Mason @ 2013-07-09 19:18 UTC (permalink / raw)
  To: Linus Torvalds, LKML, linux-btrfs

Hi Linus,

This Btrfs pull is available in two flavors:

First, my for-linus branch has it against all the btrfs pulls from 3.10:

git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs.git for-linus

Or, with a merge commit on top of 3.10 (master branch):

git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs.git master

I did it this way because the 3.10 merge was pretty much empty and you
probably don't want my merge commit at the top.

There's a trivial conflict with your current master involving a printk spelling
fix, but these are otherwise clean and tested against your current tree.

These are the usual mixture of bugs, cleanups and performance fixes.  Miao has
some really nice tuning of our crc code as well as our transaction commits.

Josef is peeling off more and more problems related to early enospc, and has a
number of important bug fixes in here too.

The stats below are against my for-linus branch.

Josef Bacik (27) commits (+865/-590):
    Btrfs: move btrfs_truncate_page to btrfs_cont_expand instead of btrfs_truncate (+35/-12)
    Btrfs: check for actual acls rather than just xattrs when caching no acl (+16/-2)
    Btrfs: stop using try_to_writeback_inodes_sb_nr to flush delalloc (+4/-5)
    Btrfs: fix not being able to find skinny extents during relocate (+27/-8)
    Btrfs: exclude logged extents before replying when we are mixed (+99/-37)
    Btrfs: only do the tree_mod_log_free_eb if this is our last ref (+2/-1)
    Btrfs: make the chunk allocator completely tree lockless (+166/-169)
    Btrfs: check if we can nocow if we don't have data space (+148/-26)
    Btrfs: use a percpu to keep track of possibly pinned bytes (+66/-5)
    Btrfs: unlock extent range on enospc in compressed submit (+5/-1)
    Btrfs: make backref walking code handle skinny metadata (+25/-6)
    Btrfs: add some missing iput()'s in btrfs_orphan_cleanup (+4/-1)
    Btrfs: hold the tree mod lock in __tree_mod_log_rewind (+6/-4)
    Btrfs: cleanup backref search commit root flag stuff (+16/-27)
    Btrfs: free csums when we're done scrubbing an extent (+1/-0)
    Btrfs: fix transaction throttling for delayed refs (+69/-18)
    Btrfs: wake up delayed ref flushing waiters on abort (+1/-0)
    Btrfs: stop waiting on current trans if we aborted (+11/-4)
    Btrfs: wait ordered range before doing direct io (+9/-1)
    Btrfs: put our inode if orphan cleanup fails (+3/-1)
    Btrfs: cleanup orphaned root orphan item (+29/-2)
    Btrfs: optimize read_block_for_search (+20/-27)
    Btrfs: do not pin while under spin lock (+8/-4)
    Btrfs: simplify unlink reservations (+50/-191)
    Btrfs: optimize reada_for_balance (+9/-37)
    Btrfs: fix estale with btrfs send (+35/-0)
    Btrfs: do delay iput in sync_fs (+1/-1)

Miao Xie (24) commits (+1043/-797):
    Btrfs: cleanup unnecessary assignment when cleaning up all the residual transaction (+1/-8)
    Btrfs: don't flush the delalloc inodes in the while loop if flushoncommit is set (+18/-8)
    Btrfs: just flush the delalloc inodes in the source tree before snapshot creation (+7/-9)
    Btrfs: don't wait for all the writers circularly during the transaction commit (+65/-21)
    Btrfs: remove unnecessary varient ->num_joined in btrfs_transaction structure (+1/-9)
    Btrfs: make the cleaner complete early when the fs is going to be umounted (+7/-5)
    Btrfs: remove the code for the impossible case in cleanup_transaction() (+6/-5)
    Btrfs: make the snap/subv deletion end more early when the fs is R/O (+15/-14)
    Btrfs: introduce grab/put functions for the root of the fs/file tree (+26/-3)
    Btrfs: fix several potential problems in copy_nocow_pages_for_inode (+22/-1)
    Btrfs: move the R/O check out of btrfs_clean_one_deleted_snapshot() (+9/-5)
    Btrfs: fix oops when recovering the file data by scrub function (+1/-1)
    Btrfs: remove the time check in btrfs_commit_transaction() (+6/-23)
    Btrfs: remove unnecessary ->s_umount in cleaner_kthread() (+28/-12)
    Btrfs: cleanup the code of copy_nocow_pages_for_inode() (+23/-25)
    Btrfs: make the state of the transaction more readable (+116/-94)
    Btrfs: cleanup the similar code of the fs root read (+228/-269)
    Btrfs: cleanup redundant code in btrfs_submit_direct() (+1/-9)
    Btrfs: introduce per-subvolume ordered extent list (+143/-58)
    Btrfs: introduce per-subvolume delalloc inode list (+183/-67)
    Btrfs: merge pending IO for tree log write back (+17/-6)
    Btrfs: remove btrfs_sector_sum structure (+76/-142)
    Btrfs: fix broken nocow after balance (+44/-0)
    Btrfs: fix wrong mirror number tuning (+0/-3)

Liu Bo (8) commits (+65/-39):
    Btrfs: check if leaf's parent exists before pushing items around (+1/-1)
    Btrfs: kill replicate code in replay_one_buffer (+2/-7)
    Btrfs: fix crash regarding to ulist_add_merge (+15/-0)
    Btrfs: dont do log_removal in insert_new_root (+5/-5)
    Btrfs: allow file data clone within a file (+19/-7)
    Btrfs: remove unused code in btrfs_del_root (+0/-4)
    Btrfs: update new flags for tracepoint (+23/-12)
    Btrfs: remove useless copy in quota_ctl (+0/-3)

Stefan Behrens (4) commits (+3/-50):
    Btrfs: cleanup, btrfs_read_fs_root_no_name() doesn't return NULL (+2/-8)
    Btrfs: cleanup: don't check the same thing twice (+0/-27)
    Btrfs: delete unused function (+0/-14)
    Btrfs: fix a comment (+1/-1)

Jan Schmidt (4) commits (+168/-72):
    Btrfs: fix memory patcher through fs_info->qgroup_ulist (+1/-1)
    Btrfs: add ioctl to wait for qgroup rescan completion (+36/-0)
    Btrfs: avoid double free of fs_info->qgroup_ulist (+6/-2)
    Btrfs: fix qgroup rescan resume on mount (+125/-69)

David Sterba (4) commits (+92/-59):
    btrfs: show compiled-in config features at module load time (+13/-6)
    btrfs: move ifdef around sanity checks out of init_btrfs_fs (+3/-5)
    btrfs: add debug check for extent_io range alignment (+27/-0)
    btrfs: add prefix to sanity tests messages (+49/-48)

Thomas Meyer (2) commits (+2/-6):
    Btrfs: Cocci spatch "ptr_ret.spatch" (+1/-4)
    Btrfs: Cocci spatch "memdup.spatch" (+1/-2)

Anand Jain (1) commits (+58/-31):
    btrfs: device delete to get errors from the kernel

Henrik Nordvik (1) commits (+1/-1):
    Btrfs: fix check on same raid type flag twice

Wei Yongjun (1) commits (+1/-1):
    Btrfs: return error code in btrfs_check_trunc_cache_free_space()

Jie Liu (1) commits (+2/-2):
    btrfs: fix the code comments for LZO compression workspace

Wang Shilong (1) commits (+43/-34):
    Btrfs: introduce qgroup_ulist to avoid frequently allocating/freeing ulist

Wang Sheng-Hui (1) commits (+1/-1):
    Btrfs: fix the comment typo for btrfs_attach_transaction_barrier

Tsutomu Itoh (1) commits (+90/-99):
    Btrfs: cleanup unused arguments in send.c

Andreas Philipp (1) commits (+2/-2):
    Minor format cleanup.

Total: (81) commits (+2436/-1784)

 fs/btrfs/backref.c           |  72 ++++---
 fs/btrfs/backref.h           |   2 -
 fs/btrfs/ctree.c             | 120 ++++-------
 fs/btrfs/ctree.h             | 105 +++++++--
 fs/btrfs/delayed-inode.c     |  14 --
 fs/btrfs/dev-replace.c       |   6 +-
 fs/btrfs/disk-io.c           | 483 ++++++++++++++++++++++++-----------------
 fs/btrfs/disk-io.h           |  32 ++-
 fs/btrfs/export.c            |   5 -
 fs/btrfs/extent-tree.c       | 315 +++++++++++++++++++++------
 fs/btrfs/extent_io.c         |  41 +++-
 fs/btrfs/extent_io.h         |   1 +
 fs/btrfs/file-item.c         | 144 +++++--------
 fs/btrfs/file.c              | 150 +++++++++++--
 fs/btrfs/free-space-cache.c  | 103 ++++-----
 fs/btrfs/free-space-cache.h  |   2 -
 fs/btrfs/inode.c             | 501 +++++++++++++++++++------------------------
 fs/btrfs/ioctl.c             |  74 ++++---
 fs/btrfs/lzo.c               |   4 +-
 fs/btrfs/ordered-data.c      | 128 +++++++----
 fs/btrfs/ordered-data.h      |  27 +--
 fs/btrfs/qgroup.c            | 283 +++++++++++++++---------
 fs/btrfs/relocation.c        | 102 ++++++---
 fs/btrfs/root-tree.c         | 201 +++++++----------
 fs/btrfs/scrub.c             |  90 ++++----
 fs/btrfs/send.c              | 235 +++++++++++---------
 fs/btrfs/super.c             |  25 ++-
 fs/btrfs/transaction.c       | 322 ++++++++++++++-------------
 fs/btrfs/transaction.h       |  50 +++--
 fs/btrfs/tree-log.c          |  41 ++--
 fs/btrfs/ulist.c             |  15 ++
 fs/btrfs/version.h           |   4 -
 fs/btrfs/volumes.c           | 351 ++++++++++++++----------------
 fs/btrfs/volumes.h           |   7 +-
 include/trace/events/btrfs.h |  35 +--
 include/uapi/linux/btrfs.h   |  42 +++-
 36 files changed, 2392 insertions(+), 1740 deletions(-)

^ permalink raw reply	[flat|nested] 128+ messages in thread

* [GIT PULL] Btrfs
@ 2013-06-14  1:29 Chris Mason
  0 siblings, 0 replies; 128+ messages in thread
From: Chris Mason @ 2013-06-14  1:29 UTC (permalink / raw)
  To: torvalds, linux-btrfs, linux-kernel

Hi Linus,

Please pull my for-linus branch:

git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs.git for-linus

This is an assortment of crash fixes:

Josef Bacik (3) commits (+9/-8):
    Btrfs: don't delete fs_roots until after we cleanup the transaction (+1/-1)
    Btrfs: init relocate extent_io_tree with a mapping (+5/-4)
    Btrfs: stop all workers before cleaning up roots (+3/-3)

Liu Bo (1) commits (+2/-2):
    Btrfs: fix use-after-free bug during umount

Naohiro Aota (1) commits (+3/-0):
    btrfs: Drop inode if inode root is NULL

Total: (5) commits (+14/-10)

 fs/btrfs/disk-io.c    | 10 +++++-----
 fs/btrfs/inode.c      |  3 +++
 fs/btrfs/relocation.c |  9 +++++----
 3 files changed, 13 insertions(+), 9 deletions(-)

^ permalink raw reply	[flat|nested] 128+ messages in thread

* [GIT PULL] Btrfs
@ 2013-05-09 19:26 Chris Mason
  0 siblings, 0 replies; 128+ messages in thread
From: Chris Mason @ 2013-05-09 19:26 UTC (permalink / raw)
  To: Linus Torvalds, linux-kernel, linux-btrfs

Hi Linus,

Please pull my for-linus branch:

git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs.git for-linus

These are mostly fixes.  The biggest exceptions are Josef's skinny
extents and Jan Schmidt's code to rebuild our quota indexes if they get
out of sync (or you enable quotas on an existing filesystem).

The skinny extents are off by default because they are a new variation
on the extent allocation tree format.  btrfstune -x enables them, and
the new format makes the extent allocation tree about 30% smaller.

I rebased this a few days ago to rework Dave Sterba's crc checks on the
super block, but almost all of these go back to rc6, since I though 3.9 was
due any minute.

The biggest missing fix is the tracepoint bug that was hit late in 3.9.
I ran into problems with that in overnight testing and I'm still
tracking it down.  I'll definitely have that fixed for rc2.

Josef Bacik (28) commits (+1322/-630):
    Btrfs: add a incompatible format change for smaller metadata extent refs (+290/-67)
    Btrfs: don't call readahead hook until we have read the entire eb (+2/-3)
    Btrfs: don't force pages under writeback to finish when aborting (+2/-3)
    Btrfs: deal with free space cache errors while replaying log (+59/-32)
    Btrfs: don't wait on ordered extents if we have a trans open (+2/-1)
    Btrfs: only exclude supers in the range of our block group (+21/-3)
    Btrfs: remove almost all of the BUG()'s from tree-log.c (+98/-53)
    Btrfs: don't panic if we're trying to drop too many refs (+7/-1)
    Btrfs: check return value of commit when recovering log (+6/-5)
    Btrfs: fix extent logging with O_DIRECT into prealloc (+13/-9)
    Btrfs: compare relevant parts of delayed tree refs (+14/-10)
    Btrfs: fix error handling in make/read block group (+33/-8)
    Btrfs: don't try and free ebs twice in log replay (+0/-7)
    Btrfs: fix possible infinite loop in slow caching (+7/-2)
    Btrfs: deal with bad mappings in btrfs_map_block (+8/-2)
    Btrfs: fix infinite loop when we abort on mount (+6/-3)
    Btrfs: cleanup fs roots if we fail to mount (+31/-31)
    Btrfs: deal with errors in write_dev_supers (+11/-1)
    Btrfs: fix all callers of read_tree_block (+59/-13)
    Btrfs: don't BUG_ON() in btrfs_num_copies (+18/-2)
    Btrfs: add tree block level sanity check (+6/-0)
    Btrfs: use REQ_META for all metadata IO (+10/-8)
    Btrfs: add some free space cache tests (+540/-0)
    Btrfs: cleanup destroy_marked_extents (+11/-32)
    Btrfs: fix bad extent logging (+40/-324)
    Btrfs: log ram bytes properly (+22/-5)
    Btrfs: various abort cleanups (+5/-4)
    Btrfs: fix lockdep warning (+1/-1)

Wang Shilong (19) commits (+317/-119):
    Btrfs: creating the subvolume qgroup automatically when enabling quota (+57/-0)
    Btrfs: add all ioctl checks before user change for quota operations (+41/-5)
    Btrfs: remove unused variable in the iterate_extent_inodes() (+0/-2)
    Btrfs: add a rb_tree to improve performance of ulist search (+56/-8)
    Btrfs: cleanup to remove reduplicate code in transaction.c (+2/-12)
    Btrfs: fix missing check before creating a qgroup relation (+8/-0)
    Btrfs: introduce a mutex lock for btrfs quota operations (+61/-25)
    Btrfs: use tree_root to avoid edquot when disabling quota (+2/-2)
    Btrfs: fix missing check about ulist_add() in qgroup.c (+44/-18)
    Btrfs: fix missing check in the btrfs_qgroup_inherit() (+15/-0)
    Btrfs: remove some BUG_ONs() when walking backref tree (+7/-3)
    Btrfs: fix double free in the iterate_extent_inodes() (+0/-2)
    Btrfs: kill some BUG_ONs() in the find_parent_nodes() (+4/-2)
    Btrfs: remove some unnecessary spin_lock usages (+6/-21)
    Btrfs: do not continue if out of memory happens (+4/-2)
    Btrfs: fix a warning when updating qgroup limit (+5/-5)
    Btrfs: make __merge_refs() return type be void (+3/-8)
    Btrfs: fix confusing edquot happening case (+2/-2)
    Btrfs: fix a warning when disabling quota (+0/-2)

David Sterba (14) commits (+249/-175):
    btrfs: remove unused gfp mask parameter from release_extent_buffer callchain (+7/-16)
    btrfs: make subvol creation/deletion killable in the early stages (+6/-2)
    btrfs: use unsigned long type for extent state bits (+40/-37)
    btrfs: handle errors returned from get_tree_block_key (+8/-4)
    btrfs: cover more error codes in btrfs_decode_error (+6/-0)
    btrfs: fix misleading variable name for flags (+20/-19)
    btrfs: merge save_error_info helpers into one (+1/-6)
    btrfs: clean up transaction abort messages (+25/-28)
    btrfs: deprecate subvolrootid mount option (+4/-13)
    btrfs: read entire device info under lock (+1/-1)
    btrfs: make orphan cleanup less verbose (+2/-2)
    btrfs: clean snapshots one by one (+57/-29)
    btrfs: enhance superblock checks (+71/-17)
    btrfs: update kconfig title (+1/-1)

Liu Bo (8) commits (+113/-102):
    Btrfs: return error when we specify wrong start to defrag (+7/-4)
    Btrfs: cleanup unused arguments of btrfs_csum_data (+15/-21)
    Btrfs: return free space in cow error path (+9/-3)
    Btrfs: improve the loop of scrub_stripe (+57/-26)
    Btrfs: use helper to cleanup tree roots (+1/-14)
    Btrfs: share stop worker code (+23/-32)
    Btrfs: cleanup unused function (+0/-1)
    Btrfs: pass NULL instead of 0 (+1/-1)

Jan Schmidt (7) commits (+682/-212):
    Btrfs: separate sequence numbers for delayed ref tracking and tree mod log (+63/-19)
    Btrfs: fix accessing the root pointer in tree mod log functions (+20/-20)
    Btrfs: split btrfs_qgroup_account_ref into four functions (+148/-105)
    Btrfs: fix tree mod log regression on root split operations (+29/-26)
    Btrfs: automatic rescan after "quota enable" command (+11/-0)
    Btrfs: fix unlock after free on rewinded tree blocks (+11/-7)
    Btrfs: rescan for qgroups (+400/-35)

Tsutomu Itoh (6) commits (+59/-79):
    Btrfs: remove unused variable in __process_changed_new_xattr() (+0/-2)
    Btrfs: cleanup of function where btrfs_extend_item() is called (+2/-3)
    Btrfs: cleanup of function where fixup_low_keys() is called (+38/-51)
    Btrfs: remove unused argument of btrfs_extend_item() (+9/-11)
    Btrfs: remove unused argument of fixup_low_keys() (+8/-10)
    Btrfs: fix error handling in btrfs_ioctl_send() (+2/-2)

Stefan Behrens (4) commits (+51/-23):
    Btrfs: allow omitting stream header and end-cmd for btrfs send (+33/-11)
    Btrfs: clear received_uuid field for new writable snapshots (+8/-4)
    Btrfs: delete unused parameter to btrfs_read_root_item() (+6/-8)
    Btrfs: set UUID in root_item for created trees (+4/-0)

Eric Sandeen (4) commits (+383/-458):
    btrfs: document mount options in Documentation/fs/btrfs.txt (+173/-7)
    btrfs: ignore device open failures in __btrfs_open_devices (+3/-3)
    btrfs: make static code static & remove dead code (+135/-392)
    btrfs: move leak debug code to functions (+72/-56)

Miao Xie (4) commits (+155/-53):
    Btrfs: use a lock to protect incompat/compat flag of the super block (+26/-11)
    Btrfs: allocate new chunks if the space is not enough for global rsv (+11/-8)
    Btrfs: improve the performance of the csums lookup (+111/-31)
    Btrfs: fix unblocked autodefraggers when remount (+7/-3)

Zhi Yong Wu (2) commits (+2/-7):
    btrfs: Cleanup some redundant codes in btrfs_lookup_csums_range() (+2/-5)
    btrfs: Cleanup some redundant codes in btrfs_log_inode() (+0/-2)

Zach Brown (1) commits (+2/-0):
    btrfs: abort unlink trans in missed error case

Simon Kirby (1) commits (+133/-109):
    Btrfs: Include the device in most error printk()s

Nathaniel Yazdani (1) commits (+1/-1):
    btrfs: fix minor typo in comment

Chris Mason (1) commits (+5/-0):
    Btrfs: allow superblock mismatch from older mkfs

Vincent (1) commits (+3/-2):
    Btrfs: fix reada debug code compilation

Total: (101) commits

 Documentation/filesystems/btrfs.txt | 180 +++++++-
 fs/btrfs/Kconfig                    |  22 +-
 fs/btrfs/backref.c                  |  87 ++--
 fs/btrfs/backref.h                  |   3 -
 fs/btrfs/btrfs_inode.h              |   2 +-
 fs/btrfs/compression.c              |  14 +-
 fs/btrfs/compression.h              |   2 -
 fs/btrfs/ctree.c                    | 382 +++++++---------
 fs/btrfs/ctree.h                    | 145 ++++---
 fs/btrfs/delayed-inode.c            |  66 +--
 fs/btrfs/delayed-ref.c              |  30 +-
 fs/btrfs/dir-item.c                 |  11 +-
 fs/btrfs/disk-io.c                  | 409 ++++++++++--------
 fs/btrfs/disk-io.h                  |   5 +-
 fs/btrfs/extent-tree.c              | 549 +++++++++++++++--------
 fs/btrfs/extent_io.c                | 310 ++++++-------
 fs/btrfs/extent_io.h                |  44 +-
 fs/btrfs/extent_map.c               |  23 +-
 fs/btrfs/extent_map.h               |   3 +-
 fs/btrfs/file-item.c                | 102 ++---
 fs/btrfs/file.c                     |  37 +-
 fs/btrfs/free-space-cache.c         | 596 +++++++++++++++++++++++--
 fs/btrfs/free-space-cache.h         |   5 +
 fs/btrfs/inode-item.c               |  17 +-
 fs/btrfs/inode.c                    | 183 ++++----
 fs/btrfs/ioctl.c                    | 108 ++++-
 fs/btrfs/locking.c                  |   4 +-
 fs/btrfs/ordered-data.c             |  28 +-
 fs/btrfs/ordered-data.h             |   3 +-
 fs/btrfs/print-tree.c               |   9 +-
 fs/btrfs/print-tree.h               |   2 +-
 fs/btrfs/qgroup.c                   | 840 ++++++++++++++++++++++++++++--------
 fs/btrfs/raid56.c                   |  14 +-
 fs/btrfs/reada.c                    |   5 +-
 fs/btrfs/relocation.c               | 111 +++--
 fs/btrfs/root-tree.c                |   7 +-
 fs/btrfs/scrub.c                    | 130 +++---
 fs/btrfs/send.c                     |  32 +-
 fs/btrfs/send.h                     |   1 -
 fs/btrfs/super.c                    | 107 +++--
 fs/btrfs/transaction.c              |  95 ++--
 fs/btrfs/transaction.h              |   3 +-
 fs/btrfs/tree-log.c                 | 390 +++++++----------
 fs/btrfs/tree-log.h                 |   3 -
 fs/btrfs/ulist.c                    |  58 ++-
 fs/btrfs/ulist.h                    |   6 +
 fs/btrfs/volumes.c                  |  97 +++--
 fs/btrfs/volumes.h                  |  13 -
 fs/btrfs/xattr.c                    |   4 +-
 include/uapi/linux/btrfs.h          |  32 +-
 50 files changed, 3418 insertions(+), 1911 deletions(-)

^ permalink raw reply	[flat|nested] 128+ messages in thread

* Re: [GIT PULL] Btrfs
  2013-03-03  0:45 ` Linus Torvalds
@ 2013-03-03  1:10   ` Chris Mason
  0 siblings, 0 replies; 128+ messages in thread
From: Chris Mason @ 2013-03-03  1:10 UTC (permalink / raw)
  To: Linus Torvalds; +Cc: Chris Mason, linux-btrfs, Linux Kernel Mailing List

On Sat, Mar 02, 2013 at 05:45:41PM -0700, Linus Torvalds wrote:
> On Sat, Mar 2, 2013 at 7:15 AM, Chris Mason <chris.mason@fusionio.com> wrote:
> >
> > Our set of btrfs features, fixes and cleanups are in my for-linus
> > branch:
> 
> I *really* wish that big pull requests like this would come in earlier
> in the merge window. I hate seeing them the day before I close the
> window - really.  A number of the latter commits are done in the last
> few days, which also smells bad.

Definitely, I wanted to send this earlier in the merge window.  But I
was out last week and also didn't want to send the big stuff (raid 5/6
and the fsync work) to you right before I left on vacation.

So instead I sent things off to linux-next, and everyone on the btrfs
list collected fixes while I was gone.

-chris

^ permalink raw reply	[flat|nested] 128+ messages in thread

* Re: [GIT PULL] Btrfs
  2013-03-02 15:15 Chris Mason
  2013-03-02 15:41 ` Liu Bo
@ 2013-03-03  0:45 ` Linus Torvalds
  2013-03-03  1:10   ` Chris Mason
  1 sibling, 1 reply; 128+ messages in thread
From: Linus Torvalds @ 2013-03-03  0:45 UTC (permalink / raw)
  To: Chris Mason, Linus Torvalds, linux-btrfs, Linux Kernel Mailing List

On Sat, Mar 2, 2013 at 7:15 AM, Chris Mason <chris.mason@fusionio.com> wrote:
>
> Our set of btrfs features, fixes and cleanups are in my for-linus
> branch:

I *really* wish that big pull requests like this would come in earlier
in the merge window. I hate seeing them the day before I close the
window - really.  A number of the latter commits are done in the last
few days, which also smells bad.

               Linus

^ permalink raw reply	[flat|nested] 128+ messages in thread

* Re: [GIT PULL] Btrfs
  2013-03-02 15:15 Chris Mason
@ 2013-03-02 15:41 ` Liu Bo
  2013-03-03  0:45 ` Linus Torvalds
  1 sibling, 0 replies; 128+ messages in thread
From: Liu Bo @ 2013-03-02 15:41 UTC (permalink / raw)
  To: Chris Mason, Linus Torvalds, linux-btrfs, linux-kernel

On Sat, Mar 02, 2013 at 10:15:35AM -0500, Chris Mason wrote:
> Hi everyone,
> 
> Our set of btrfs features, fixes and cleanups are in my for-linus
> branch:
> 
> git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs.git for-linus
> 
> There is a conflict in fs/btrfs/extent-tree.c, which I merged here:
> 
> git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs.git for-linus-merged
> 
> The merge is basically combining da633a42170165cbf20a2d3886c7480ccc832ec3 from
> my tree with the new writeback_inodes_sb function from the writeback
> tree.
> 
> The biggest feature in the pull is the new (and still experimental)
> raid56 code that David Woodhouse started long ago.  I'm still working
> on the parity logging setup that will avoid inconsistent parity after a
> crash, so this is only for testing right now.  But, I'd really like to
> get it out to a broader audience to hammer out any performance issues or
> other problems.
> 
> scrub does not yet correct errors on raid5/6 either.
> 
> Josef has another pass at fsync performance.  The big change here is to
> combine waiting for metadata with waiting for data, which is a big
> latency win.  It is also step one toward using atomics from the hardware
> during a commit.
> 
> Mark Fasheh has a new way to use btrfs send/receive to send only the
> metadata changes.  SUSE is using this to make snapper more efficient at
> finding changes between snapshosts.
> 
> Otherwise we have a large number of fixes and cleanups.  Eric Sandeen
> wins the award for removing the most lines, and I'm hoping we steal this
> idea from XFS over and over again.

To people who cares about snapshot-aware defrag, this feature is also included
in the pull.

thanks,
liubo

> 
> Miao Xie (35) commits (+958/-427):
>     Btrfs: use seqlock to protect fs_info->avail_{data, metadata, system}_alloc_bits (+49/-32)
>     Btrfs: remove unnecessary dget_parent/dput when creating the pending snapshot (+8/-8)
>     Btrfs: cleanup unnecessary clear when freeing a transaction or a trans handle (+0/-2)
>     Btrfs: fix missing release of qgroup reservation in commit_transaction() (+8/-0)
>     Btrfs: fix the deadlock between the transaction start/attach and commit (+16/-1)
>     Btrfs: fix wrong reserved space in qgroup during snap/subv creation (+105/-36)
>     Btrfs: fix wrong reserved space when deleting a snapshot/subvolume (+19/-2)
>     Btrfs: check the return value of btrfs_run_ordered_operations() (+2/-2)
>     Btrfs: fix lots of orphan inodes when the space is not enough (+85/-17)
>     Btrfs: check the return value of btrfs_start_delalloc_inodes() (+8/-2)
>     Btrfs: use the inode own lock to protect its delalloc_bytes (+37/-13)
>     Btrfs: fix the qgroup reserved space is released prematurely (+2/-1)
>     Btrfs: don't traverse the ordered operation list repeatedly (+5/-14)
>     Btrfs: fix wrong outstanding_extents when doing DIO write (+9/-11)
>     Btrfs: flush all dirty inodes if writeback can not start (+31/-9)
>     Btrfs: use percpu counter for fs_info->delalloc_bytes (+26/-11)
>     Btrfs: fix the race between bio and btrfs_stop_workers (+1/-2)
>     Btrfs: fix memory leak of pending_snapshot->inherit (+7/-11)
>     Btrfs: use percpu counter for dirty metadata count (+42/-40)
>     Btrfs: use slabs for delayed reference allocation (+115/-21)
>     Btrfs: serialize unlocked dio reads with truncate (+40/-2)
>     Btrfs: traverse and flush the delalloc inodes once (+1/-8)
>     Btrfs: make delayed ref lock logic more readable (+38/-18)
>     Btrfs: fix trivial error in btrfs_ioctl_resize() (+7/-6)
>     Btrfs: cleanup similar code in delayed inode (+37/-46)
>     Btrfs: use common work instead of delayed work (+4/-4)
>     Btrfs: add a comment for fs_info->max_inline (+6/-0)
>     Btrfs: make raid attr array more readable (+59/-20)
>     Btrfs: use bit operation for ->fs_state (+14/-12)
>     Btrfs: fix deadlock due to unsubmitted (+43/-41)
>     Btrfs: implement unlocked dio write (+23/-12)
>     Btrfs: protect fs_info->alloc_start (+14/-0)
>     Btrfs: fix uncompleted transaction (+37/-3)
>     Btrfs: fix remount vs autodefrag (+45/-2)
>     Btrfs: use wrapper page_offset (+15/-18)
> 
> Josef Bacik (21) commits (+480/-135):
>     Btrfs: if we aren't committing just end the transaction if we error out (+12/-6)
>     Btrfs: do not overcommit if we don't have enough space for global rsv (+19/-2)
>     Revert "Btrfs: fix permissions of empty files not affected by umask" (+0/-6)
>     Btrfs: rework the overcommit logic to be based on the total size (+12/-3)
>     Btrfs: fix freeing delayed ref head while still holding its mutex (+5/-3)
>     Btrfs: steal from global reserve if we are cleaning up orphans (+16/-5)
>     Btrfs: fix how we discard outstanding ordered extents on abort (+7/-26)
>     Btrfs: delete inline extents when we find them during logging (+18/-0)
>     Btrfs: wait on ordered extents at the last possible moment (+247/-9)
>     Btrfs: place ordered operations on a per transaction list (+34/-21)
>     Btrfs: unreserve space if our ordered extent fails to work (+13/-1)
>     Btrfs: copy everything if we've created an inline extent (+1/-0)
>     Btrfs: account for orphan inodes properly during cleanup (+1/-0)
>     Btrfs: handle errors in compression submission path (+28/-10)
>     Btrfs: remove extent mapping if we fail to add chunk (+12/-2)
>     Btrfs: relax the block group size limit for bitmaps (+9/-3)
>     Btrfs: cleanup orphan reservation if truncate fails (+2/-0)
>     Btrfs: make sure NODATACOW also gets NODATASUM set (+2/-1)
>     Btrfs: don't re-enter when allocating a chunk (+9/-0)
>     Btrfs: remove unused extent io tree ops V2 (+11/-27)
>     Btrfs: fix chunk allocation error handling (+22/-10)
> 
> Liu Bo (14) commits (+796/-109):
>     Btrfs: kill unused argument of btrfs_pin_extent_for_log_replay (+3/-6)
>     Btrfs: fix cleaner thread not working with inode cache option (+8/-1)
>     Btrfs: use token to avoid times mapping extent buffer (+35/-28)
>     Btrfs: extend the checksum item as much as possible (+46/-21)
>     Btrfs: fix NULL pointer after aborting a transaction (+7/-1)
>     Btrfs: use reserved space for creating a snapshot (+2/-0)
>     Btrfs: kill unused argument of update_block_group (+5/-7)
>     Btrfs: kill unused arguments of cache_block_group (+5/-8)
>     Btrfs: do not change inode flags in rename (+0/-25)
>     Btrfs: record first logical byte in memory (+20/-1)
>     Btrfs: fix memory leak of log roots (+9/-2)
>     Btrfs: remove deprecated comments (+0/-6)
>     Btrfs: snapshot-aware defrag (+654/-0)
>     Btrfs: save us a read_lock (+2/-3)
> 
> Eric Sandeen (11) commits (+58/-108):
>     btrfs: ensure we don't overrun devices_info[] in __btrfs_alloc_chunk (+5/-1)
>     btrfs: remove unused "item" in btrfs_insert_delayed_item() (+0/-2)
>     btrfs: remove unused fs_info from btrfs_decode_error() (+4/-5)
>     btrfs: remove cache only arguments from defrag path (+32/-82)
>     btrfs: remove unnecessary DEFINE_WAIT() declarations (+0/-2)
>     btrfs: annotate intentional switch case fallthroughs (+2/-0)
>     btrfs: add missing break in btrfs_print_leaf() (+1/-0)
>     btrfs: remove unused fd in btrfs_ioctl_send() (+0/-3)
>     btrfs: handle null fs_info in btrfs_panic() (+7/-4)
>     btrfs: fix varargs in __btrfs_std_error (+7/-7)
>     btrfs: list_entry can't return NULL (+0/-2)
> 
> Chris Mason (7) commits (+561/-30):
>     Btrfs: reduce CPU contention while waiting for delayed extent operations (+70/-5)
>     Btrfs: remove conflicting check for minimum number of devices in raid56 (+0/-8)
>     Btrfs: reduce lock contention on extent buffer locks (+16/-0)
>     Btrfs: add a plugging callback to raid56 writes (+124/-4)
>     Btrfs: fix cluster alignment for mount -o ssd (+6/-1)
>     Btrfs: fix max chunk size on raid5/6 (+21/-4)
>     Btrfs: Add a stripe cache to raid56 (+324/-8)
> 
> Wang Shilong (6) commits (+78/-68):
>     Btrfs: remove reduplicate check about root in the function btrfs_clean_quota_tree (+0/-3)
>     Btrfs: cleanup to make the function btrfs_delalloc_reserve_metadata more logic (+38/-44)
>     Btrfs: return ENOMEM rather than use BUG_ON when btrfs_alloc_path fails (+9/-3)
>     Btrfs: don't call btrfs_qgroup_free if just btrfs_qgroup_reserve fails (+6/-5)
>     Btrfs: fix missing deleted items in btrfs_clean_quota_tree (+21/-13)
>     Btrfs: fix missing check before disabling quota (+4/-0)
> 
> David Sterba (6) commits (+131/-42):
>     btrfs: access superblock via pagecache in scan_one_device (+64/-6)
>     btrfs: put some enospc messages under enospc_debug (+15/-11)
>     btrfs: try harder to allocate raid56 stripe cache (+26/-7)
>     btrfs: use only inline_pages from extent buffer (+7/-17)
>     btrfs: remove a printk from scan_one_device (+0/-1)
>     btrfs: add cancellation points to defrag (+19/-0)
> 
> Zach Brown (2) commits (+9/-12):
>     btrfs: limit fallocate extent reservation to 256MB (+4/-3)
>     btrfs: define BTRFS_MAGIC as a u64 value (+5/-9)
> 
> David Woodhouse (2) commits (+2294/-113):
>     Btrfs: add rw argument to merge_bio_hook() (+11/-11)
>     Btrfs: RAID5 and RAID6 (+2283/-102)
> 
> Ilya Dryomov (2) commits (+6/-6):
>     Btrfs: allow for selecting only completely empty chunks (+1/-1)
>     Btrfs: eliminate a use-after-free in btrfs_balance() (+5/-5)
> 
> jeff.liu (2) commits (+67/-0):
>     Btrfs: Add a new ioctl to get the label of a mounted file system (+23/-0)
>     Btrfs: set/change the label of a mounted file system (+44/-0)
> 
> Filipe Brandenburger (1) commits (+19/-11):
>     Btrfs: move fs/btrfs/ioctl.h to include/uapi/linux/btrfs.h
> 
> Mark Fasheh (1) commits (+54/-4):
>     btrfs: add "no file data" flag to btrfs send ioctl
> 
> Alexandre Oliva (1) commits (+3/-3):
>     clear chunk_alloc flag on retryable failure
> 
> Thomas Gleixner (1) commits (+1/-0):
>     btrfs: Init io_lock after cloning btrfs device struct
> 
> Paul Gortmaker (1) commits (+1/-4):
>     btrfs: fixup/remove module.h usage as required
> 
> Tomasz Torcz (1) commits (+1/-0):
>     Btrfs: select XOR_BLOCKS in Kconfig
> 
> Jan Schmidt (1) commits (+1/-4):
>     Btrfs: fix backref walking race with tree deletions
> 
> Qu Wenruo (1) commits (+25/-38):
>     btrfs: cleanup for open-coded alignment
> 
> Kusanagi Kouichi (1) commits (+1/-1):
>     Btrfs: Check CAP_DAC_READ_SEARCH for BTRFS_IOC_INO_PATHS
> 
> Arne Jansen (1) commits (+1/-1):
>     Btrfs: fix crash in log replay with qgroups enabled
> 
> Total: (118) commits
> 
>  fs/btrfs/Kconfig            |    3 +
>  fs/btrfs/Makefile           |    2 +-
>  fs/btrfs/backref.c          |    5 +-
>  fs/btrfs/backref.h          |    2 +-
>  fs/btrfs/btrfs_inode.h      |   20 +
>  fs/btrfs/check-integrity.c  |    3 +-
>  fs/btrfs/compression.c      |    4 +-
>  fs/btrfs/ctree.c            |   68 +-
>  fs/btrfs/ctree.h            |  150 +++-
>  fs/btrfs/delayed-inode.c    |  147 ++-
>  fs/btrfs/delayed-inode.h    |    1 +
>  fs/btrfs/delayed-ref.c      |   82 +-
>  fs/btrfs/delayed-ref.h      |   52 +-
>  fs/btrfs/dev-replace.c      |    6 +-
>  fs/btrfs/disk-io.c          |  227 +++--
>  fs/btrfs/disk-io.h          |    7 +
>  fs/btrfs/extent-tree.c      |  591 ++++++++----
>  fs/btrfs/extent_io.c        |  138 ++-
>  fs/btrfs/extent_io.h        |    8 +-
>  fs/btrfs/extent_map.c       |    1 -
>  fs/btrfs/file-item.c        |   67 +-
>  fs/btrfs/file.c             |   57 +-
>  fs/btrfs/free-space-cache.c |   62 +-
>  fs/btrfs/inode.c            | 1064 ++++++++++++++++++----
>  fs/btrfs/ioctl.c            |  211 ++++-
>  fs/btrfs/ioctl.h            |  502 -----------
>  fs/btrfs/locking.c          |    5 +-
>  fs/btrfs/ordered-data.c     |   98 +-
>  fs/btrfs/ordered-data.h     |   14 +-
>  fs/btrfs/print-tree.c       |    1 +
>  fs/btrfs/qgroup.c           |   55 +-
>  fs/btrfs/raid56.c           | 2099 +++++++++++++++++++++++++++++++++++++++++++
>  fs/btrfs/raid56.h           |   51 ++
>  fs/btrfs/relocation.c       |    2 +-
>  fs/btrfs/scrub.c            |   10 +-
>  fs/btrfs/send.c             |   53 +-
>  fs/btrfs/send.h             |    1 +
>  fs/btrfs/super.c            |   89 +-
>  fs/btrfs/sysfs.c            |    1 -
>  fs/btrfs/transaction.c      |  151 +++-
>  fs/btrfs/transaction.h      |    8 +-
>  fs/btrfs/tree-defrag.c      |   19 +-
>  fs/btrfs/tree-log.c         |  166 +++-
>  fs/btrfs/ulist.c            |    2 +-
>  fs/btrfs/volumes.c          |  636 ++++++++++---
>  fs/btrfs/volumes.h          |   11 +-
>  include/linux/btrfs.h       |    6 +
>  include/uapi/linux/Kbuild   |    1 +
>  include/uapi/linux/btrfs.h  |  514 +++++++++++
>  49 files changed, 5950 insertions(+), 1523 deletions(-)
> --
> To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 128+ messages in thread

* [GIT PULL] Btrfs
@ 2013-03-02 15:15 Chris Mason
  2013-03-02 15:41 ` Liu Bo
  2013-03-03  0:45 ` Linus Torvalds
  0 siblings, 2 replies; 128+ messages in thread
From: Chris Mason @ 2013-03-02 15:15 UTC (permalink / raw)
  To: Linus Torvalds, linux-btrfs, linux-kernel

Hi everyone,

Our set of btrfs features, fixes and cleanups are in my for-linus
branch:

git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs.git for-linus

There is a conflict in fs/btrfs/extent-tree.c, which I merged here:

git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs.git for-linus-merged

The merge is basically combining da633a42170165cbf20a2d3886c7480ccc832ec3 from
my tree with the new writeback_inodes_sb function from the writeback
tree.

The biggest feature in the pull is the new (and still experimental)
raid56 code that David Woodhouse started long ago.  I'm still working
on the parity logging setup that will avoid inconsistent parity after a
crash, so this is only for testing right now.  But, I'd really like to
get it out to a broader audience to hammer out any performance issues or
other problems.

scrub does not yet correct errors on raid5/6 either.

Josef has another pass at fsync performance.  The big change here is to
combine waiting for metadata with waiting for data, which is a big
latency win.  It is also step one toward using atomics from the hardware
during a commit.

Mark Fasheh has a new way to use btrfs send/receive to send only the
metadata changes.  SUSE is using this to make snapper more efficient at
finding changes between snapshosts.

Otherwise we have a large number of fixes and cleanups.  Eric Sandeen
wins the award for removing the most lines, and I'm hoping we steal this
idea from XFS over and over again.

Miao Xie (35) commits (+958/-427):
    Btrfs: use seqlock to protect fs_info->avail_{data, metadata, system}_alloc_bits (+49/-32)
    Btrfs: remove unnecessary dget_parent/dput when creating the pending snapshot (+8/-8)
    Btrfs: cleanup unnecessary clear when freeing a transaction or a trans handle (+0/-2)
    Btrfs: fix missing release of qgroup reservation in commit_transaction() (+8/-0)
    Btrfs: fix the deadlock between the transaction start/attach and commit (+16/-1)
    Btrfs: fix wrong reserved space in qgroup during snap/subv creation (+105/-36)
    Btrfs: fix wrong reserved space when deleting a snapshot/subvolume (+19/-2)
    Btrfs: check the return value of btrfs_run_ordered_operations() (+2/-2)
    Btrfs: fix lots of orphan inodes when the space is not enough (+85/-17)
    Btrfs: check the return value of btrfs_start_delalloc_inodes() (+8/-2)
    Btrfs: use the inode own lock to protect its delalloc_bytes (+37/-13)
    Btrfs: fix the qgroup reserved space is released prematurely (+2/-1)
    Btrfs: don't traverse the ordered operation list repeatedly (+5/-14)
    Btrfs: fix wrong outstanding_extents when doing DIO write (+9/-11)
    Btrfs: flush all dirty inodes if writeback can not start (+31/-9)
    Btrfs: use percpu counter for fs_info->delalloc_bytes (+26/-11)
    Btrfs: fix the race between bio and btrfs_stop_workers (+1/-2)
    Btrfs: fix memory leak of pending_snapshot->inherit (+7/-11)
    Btrfs: use percpu counter for dirty metadata count (+42/-40)
    Btrfs: use slabs for delayed reference allocation (+115/-21)
    Btrfs: serialize unlocked dio reads with truncate (+40/-2)
    Btrfs: traverse and flush the delalloc inodes once (+1/-8)
    Btrfs: make delayed ref lock logic more readable (+38/-18)
    Btrfs: fix trivial error in btrfs_ioctl_resize() (+7/-6)
    Btrfs: cleanup similar code in delayed inode (+37/-46)
    Btrfs: use common work instead of delayed work (+4/-4)
    Btrfs: add a comment for fs_info->max_inline (+6/-0)
    Btrfs: make raid attr array more readable (+59/-20)
    Btrfs: use bit operation for ->fs_state (+14/-12)
    Btrfs: fix deadlock due to unsubmitted (+43/-41)
    Btrfs: implement unlocked dio write (+23/-12)
    Btrfs: protect fs_info->alloc_start (+14/-0)
    Btrfs: fix uncompleted transaction (+37/-3)
    Btrfs: fix remount vs autodefrag (+45/-2)
    Btrfs: use wrapper page_offset (+15/-18)

Josef Bacik (21) commits (+480/-135):
    Btrfs: if we aren't committing just end the transaction if we error out (+12/-6)
    Btrfs: do not overcommit if we don't have enough space for global rsv (+19/-2)
    Revert "Btrfs: fix permissions of empty files not affected by umask" (+0/-6)
    Btrfs: rework the overcommit logic to be based on the total size (+12/-3)
    Btrfs: fix freeing delayed ref head while still holding its mutex (+5/-3)
    Btrfs: steal from global reserve if we are cleaning up orphans (+16/-5)
    Btrfs: fix how we discard outstanding ordered extents on abort (+7/-26)
    Btrfs: delete inline extents when we find them during logging (+18/-0)
    Btrfs: wait on ordered extents at the last possible moment (+247/-9)
    Btrfs: place ordered operations on a per transaction list (+34/-21)
    Btrfs: unreserve space if our ordered extent fails to work (+13/-1)
    Btrfs: copy everything if we've created an inline extent (+1/-0)
    Btrfs: account for orphan inodes properly during cleanup (+1/-0)
    Btrfs: handle errors in compression submission path (+28/-10)
    Btrfs: remove extent mapping if we fail to add chunk (+12/-2)
    Btrfs: relax the block group size limit for bitmaps (+9/-3)
    Btrfs: cleanup orphan reservation if truncate fails (+2/-0)
    Btrfs: make sure NODATACOW also gets NODATASUM set (+2/-1)
    Btrfs: don't re-enter when allocating a chunk (+9/-0)
    Btrfs: remove unused extent io tree ops V2 (+11/-27)
    Btrfs: fix chunk allocation error handling (+22/-10)

Liu Bo (14) commits (+796/-109):
    Btrfs: kill unused argument of btrfs_pin_extent_for_log_replay (+3/-6)
    Btrfs: fix cleaner thread not working with inode cache option (+8/-1)
    Btrfs: use token to avoid times mapping extent buffer (+35/-28)
    Btrfs: extend the checksum item as much as possible (+46/-21)
    Btrfs: fix NULL pointer after aborting a transaction (+7/-1)
    Btrfs: use reserved space for creating a snapshot (+2/-0)
    Btrfs: kill unused argument of update_block_group (+5/-7)
    Btrfs: kill unused arguments of cache_block_group (+5/-8)
    Btrfs: do not change inode flags in rename (+0/-25)
    Btrfs: record first logical byte in memory (+20/-1)
    Btrfs: fix memory leak of log roots (+9/-2)
    Btrfs: remove deprecated comments (+0/-6)
    Btrfs: snapshot-aware defrag (+654/-0)
    Btrfs: save us a read_lock (+2/-3)

Eric Sandeen (11) commits (+58/-108):
    btrfs: ensure we don't overrun devices_info[] in __btrfs_alloc_chunk (+5/-1)
    btrfs: remove unused "item" in btrfs_insert_delayed_item() (+0/-2)
    btrfs: remove unused fs_info from btrfs_decode_error() (+4/-5)
    btrfs: remove cache only arguments from defrag path (+32/-82)
    btrfs: remove unnecessary DEFINE_WAIT() declarations (+0/-2)
    btrfs: annotate intentional switch case fallthroughs (+2/-0)
    btrfs: add missing break in btrfs_print_leaf() (+1/-0)
    btrfs: remove unused fd in btrfs_ioctl_send() (+0/-3)
    btrfs: handle null fs_info in btrfs_panic() (+7/-4)
    btrfs: fix varargs in __btrfs_std_error (+7/-7)
    btrfs: list_entry can't return NULL (+0/-2)

Chris Mason (7) commits (+561/-30):
    Btrfs: reduce CPU contention while waiting for delayed extent operations (+70/-5)
    Btrfs: remove conflicting check for minimum number of devices in raid56 (+0/-8)
    Btrfs: reduce lock contention on extent buffer locks (+16/-0)
    Btrfs: add a plugging callback to raid56 writes (+124/-4)
    Btrfs: fix cluster alignment for mount -o ssd (+6/-1)
    Btrfs: fix max chunk size on raid5/6 (+21/-4)
    Btrfs: Add a stripe cache to raid56 (+324/-8)

Wang Shilong (6) commits (+78/-68):
    Btrfs: remove reduplicate check about root in the function btrfs_clean_quota_tree (+0/-3)
    Btrfs: cleanup to make the function btrfs_delalloc_reserve_metadata more logic (+38/-44)
    Btrfs: return ENOMEM rather than use BUG_ON when btrfs_alloc_path fails (+9/-3)
    Btrfs: don't call btrfs_qgroup_free if just btrfs_qgroup_reserve fails (+6/-5)
    Btrfs: fix missing deleted items in btrfs_clean_quota_tree (+21/-13)
    Btrfs: fix missing check before disabling quota (+4/-0)

David Sterba (6) commits (+131/-42):
    btrfs: access superblock via pagecache in scan_one_device (+64/-6)
    btrfs: put some enospc messages under enospc_debug (+15/-11)
    btrfs: try harder to allocate raid56 stripe cache (+26/-7)
    btrfs: use only inline_pages from extent buffer (+7/-17)
    btrfs: remove a printk from scan_one_device (+0/-1)
    btrfs: add cancellation points to defrag (+19/-0)

Zach Brown (2) commits (+9/-12):
    btrfs: limit fallocate extent reservation to 256MB (+4/-3)
    btrfs: define BTRFS_MAGIC as a u64 value (+5/-9)

David Woodhouse (2) commits (+2294/-113):
    Btrfs: add rw argument to merge_bio_hook() (+11/-11)
    Btrfs: RAID5 and RAID6 (+2283/-102)

Ilya Dryomov (2) commits (+6/-6):
    Btrfs: allow for selecting only completely empty chunks (+1/-1)
    Btrfs: eliminate a use-after-free in btrfs_balance() (+5/-5)

jeff.liu (2) commits (+67/-0):
    Btrfs: Add a new ioctl to get the label of a mounted file system (+23/-0)
    Btrfs: set/change the label of a mounted file system (+44/-0)

Filipe Brandenburger (1) commits (+19/-11):
    Btrfs: move fs/btrfs/ioctl.h to include/uapi/linux/btrfs.h

Mark Fasheh (1) commits (+54/-4):
    btrfs: add "no file data" flag to btrfs send ioctl

Alexandre Oliva (1) commits (+3/-3):
    clear chunk_alloc flag on retryable failure

Thomas Gleixner (1) commits (+1/-0):
    btrfs: Init io_lock after cloning btrfs device struct

Paul Gortmaker (1) commits (+1/-4):
    btrfs: fixup/remove module.h usage as required

Tomasz Torcz (1) commits (+1/-0):
    Btrfs: select XOR_BLOCKS in Kconfig

Jan Schmidt (1) commits (+1/-4):
    Btrfs: fix backref walking race with tree deletions

Qu Wenruo (1) commits (+25/-38):
    btrfs: cleanup for open-coded alignment

Kusanagi Kouichi (1) commits (+1/-1):
    Btrfs: Check CAP_DAC_READ_SEARCH for BTRFS_IOC_INO_PATHS

Arne Jansen (1) commits (+1/-1):
    Btrfs: fix crash in log replay with qgroups enabled

Total: (118) commits

 fs/btrfs/Kconfig            |    3 +
 fs/btrfs/Makefile           |    2 +-
 fs/btrfs/backref.c          |    5 +-
 fs/btrfs/backref.h          |    2 +-
 fs/btrfs/btrfs_inode.h      |   20 +
 fs/btrfs/check-integrity.c  |    3 +-
 fs/btrfs/compression.c      |    4 +-
 fs/btrfs/ctree.c            |   68 +-
 fs/btrfs/ctree.h            |  150 +++-
 fs/btrfs/delayed-inode.c    |  147 ++-
 fs/btrfs/delayed-inode.h    |    1 +
 fs/btrfs/delayed-ref.c      |   82 +-
 fs/btrfs/delayed-ref.h      |   52 +-
 fs/btrfs/dev-replace.c      |    6 +-
 fs/btrfs/disk-io.c          |  227 +++--
 fs/btrfs/disk-io.h          |    7 +
 fs/btrfs/extent-tree.c      |  591 ++++++++----
 fs/btrfs/extent_io.c        |  138 ++-
 fs/btrfs/extent_io.h        |    8 +-
 fs/btrfs/extent_map.c       |    1 -
 fs/btrfs/file-item.c        |   67 +-
 fs/btrfs/file.c             |   57 +-
 fs/btrfs/free-space-cache.c |   62 +-
 fs/btrfs/inode.c            | 1064 ++++++++++++++++++----
 fs/btrfs/ioctl.c            |  211 ++++-
 fs/btrfs/ioctl.h            |  502 -----------
 fs/btrfs/locking.c          |    5 +-
 fs/btrfs/ordered-data.c     |   98 +-
 fs/btrfs/ordered-data.h     |   14 +-
 fs/btrfs/print-tree.c       |    1 +
 fs/btrfs/qgroup.c           |   55 +-
 fs/btrfs/raid56.c           | 2099 +++++++++++++++++++++++++++++++++++++++++++
 fs/btrfs/raid56.h           |   51 ++
 fs/btrfs/relocation.c       |    2 +-
 fs/btrfs/scrub.c            |   10 +-
 fs/btrfs/send.c             |   53 +-
 fs/btrfs/send.h             |    1 +
 fs/btrfs/super.c            |   89 +-
 fs/btrfs/sysfs.c            |    1 -
 fs/btrfs/transaction.c      |  151 +++-
 fs/btrfs/transaction.h      |    8 +-
 fs/btrfs/tree-defrag.c      |   19 +-
 fs/btrfs/tree-log.c         |  166 +++-
 fs/btrfs/ulist.c            |    2 +-
 fs/btrfs/volumes.c          |  636 ++++++++++---
 fs/btrfs/volumes.h          |   11 +-
 include/linux/btrfs.h       |    6 +
 include/uapi/linux/Kbuild   |    1 +
 include/uapi/linux/btrfs.h  |  514 +++++++++++
 49 files changed, 5950 insertions(+), 1523 deletions(-)

^ permalink raw reply	[flat|nested] 128+ messages in thread

* [GIT PULL] Btrfs
@ 2012-10-09 21:05 Chris Mason
  0 siblings, 0 replies; 128+ messages in thread
From: Chris Mason @ 2012-10-09 21:05 UTC (permalink / raw)
  To: Linus Torvalds, linux-kernel, linux-btrfs

Hi Linus,

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.

They are all in my for-linus branch:

git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs.git for-linus

Josef Bacik (35) commits (+1353/-424):
    Btrfs: handle not finding the extent exactly when logging changed extents (+40/-6)
    Btrfs: fix possible corruption when fsyncing written prealloced extents (+12/-0)
    Btrfs: do not warn_on when we cannot alloc a page for an extent buffer (+1/-3)
    Btrfs: do not hold the file extent leaf locked when adding extent item (+1/-3)
    Btrfs: don't bother committing delayed inode updates when fsyncing (+65/-19)
    Btrfs: do not hold the write_lock on the extent tree while logging (+20/-5)
    Btrfs: create a pinned em when writing to a prealloc range in DIO (+55/-0)
    Btrfs: cache extent state when writing out dirty metadata pages (+63/-16)
    Btrfs: remove unused hint byte argument for btrfs_drop_extents (+14/-30)
    Btrfs: only warn if we hit an error when doing the tree logging (+1/-1)
    Btrfs: move the sb_end_intwrite until after the throttle logic (+2/-2)
    Btrfs: don't do anything in our ->freeze_fs and ->unfreeze_fs (+0/-6)
    Btrfs: do not needlessly restart the transaction for enospc (+20/-36)
    Btrfs: do not async metadata csumming in certain situations (+35/-2)
    Btrfs: be smarter about dropping things from the tree log (+13/-2)
    Btrfs: cleanup pages properly when ENOMEM in compression (+10/-3)
    Btrfs: fix race when getting the eb out of page->private (+19/-4)
    Btrfs: update last trans if we don't update the inode (+2/-0)
    Btrfs: fix race with freeze and free space inodes (+11/-2)
    Btrfs: remove bytes argument from do_chunk_alloc (+10/-15)
    Btrfs: wait on async pages when shrinking delalloc (+7/-0)
    Btrfs: run delayed refs first when out of space (+10/-10)
    Btrfs: btrfs_drop_extent_cache should never fail (+11/-6)
    Btrfs: don't commit instead of overcommitting (+6/-28)
    Btrfs: don't lookup csums for prealloc extents (+1/-2)
    Btrfs: remove unused write cache pages hook (+0/-47)
    Btrfs: do not allocate chunks as agressively (+3/-9)
    Btrfs: fix punch hole when no extent exists (+3/-1)
    Btrfs: fix race in sync and freeze again (+18/-10)
    Btrfs: delay block group item insertion (+79/-67)
    Btrfs: don't bug on enomem in readpage (+7/-4)
    Btrfs: fix our overcommit math (+42/-29)
    Btrfs: turbo charge fsync (+416/-42)
    Btrfs: add hole punching (+355/-13)
    Btrfs: fix page leakage (+1/-1)

Alexander Block (23) commits (+482/-419):
    Btrfs: don't treat top/root directory inode as deleted/reused (+20/-1)
    Btrfs: fix use of radix_tree for name_cache in send/receive (+37/-39)
    Btrfs: rename backref_ctx::found_in_send_root to found_itself (+4/-4)
    Btrfs: pass root instead of parent_root to iterate_inode_ref (+2/-2)
    Btrfs: add correct parent to check_dirs when dir got moved (+11/-0)
    Btrfs: add missing check for dir != tmp_dir to is_first_ref (+1/-1)
    Btrfs: fix check for changed extent in is_extent_unchanged (+2/-2)
    Btrfs: free nce and nce_head on error in name_cache_insert (+5/-1)
    Btrfs: don't break in the final loop of find_extent_clone (+0/-1)
    Btrfs: fix cur_ino < parent_ino case for send/receive (+146/-244)
    Btrfs: add/fix comments/documentation for send/receive (+134/-6)
    Btrfs: use normal return path for root == send_root case (+0/-6)
    Btrfs: fix memory leak for name_cache in send/receive (+1/-0)
    Btrfs: use kmalloc instead of stack for backref_ctx (+18/-11)
    Btrfs: remove unused use_list from send/receive code (+0/-2)
    Btrfs: remove unused tmp_path from iterate_dir_item (+0/-8)
    Btrfs: add rdev to get_inode_info in send/receive (+17/-13)
    Btrfs: use <= instead of < in is_extent_unchanged (+1/-1)
    Btrfs: update send_progress at correct places (+20/-6)
    Btrfs: ignore non-FS inodes for send/receive (+5/-0)
    Btrfs: code cleanups for send/receive (+35/-48)
    Btrfs: make aux field of ulist 64 bit (+21/-23)
    Btrfs: remove unused code with #if 0 (+2/-0)

Miao Xie (18) commits (+344/-236):
    Btrfs: fix unnecessary warning when the fragments make the space alloc fail (+1/-1)
    Btrfs: fix wrong size for the reservation when doing, file pre-allocation. (+2/-2)
    Btrfs: output more information when aborting a unused transaction handle (+7/-1)
    Btrfs: fix the missing error information in create_pending_snapshot() (+35/-22)
    Btrfs: fix full backref problem when inserting shared block reference (+4/-0)
    Btrfs: add a new "type" field into the block reservation structure (+39/-22)
    Btrfs: fix wrong size for the reservation of the, snapshot creation (+4/-4)
    Revert "Btrfs: do not do filemap_write_and_wait_range in fsync" (+11/-3)
    Btrfs: fix file extent discount problem in the, snapshot (+25/-44)
    Btrfs: fix orphan transaction on the freezed filesystem (+49/-23)
    Btrfs: add a type field for the transaction handle (+21/-42)
    Btrfs: fix error path in create_pending_snapshot() (+17/-23)
    Btrfs: use a slab for ordered extents allocation (+31/-3)
    Btrfs: fix wrong orphan count of the fs/file tree (+1/-1)
    Btrfs: fix corrupted metadata in the snapshot (+32/-18)
    Btrfs: fix the snapshot that should not exist (+53/-15)
    Btrfs: fix memory leak in start_transaction() (+3/-1)
    Btrfs: fix unprotected ->log_batch (+9/-11)

Liu Bo (13) commits (+150/-113):
    Btrfs: fix a bug in checking whether a inode is already in log (+10/-8)
    Btrfs: kill obsolete arguments in btrfs_wait_ordered_extents (+7/-18)
    Btrfs: fix a bug in parsing return value in logical resolve (+34/-20)
    Btrfs: use larger limit for translation of logical to inode (+5/-4)
    Btrfs: check if an inode has no checksum when logging it (+12/-11)
    Btrfs: update delayed ref's tracepoints to show sequence (+10/-4)
    Btrfs: use flag EXTENT_DEFRAG for snapshot-aware defrag (+28/-14)
    Btrfs: improve fsync by filtering extents that we want (+26/-3)
    Btrfs: cleanup for duplicated code in find_free_extent (+0/-4)
    Btrfs: cleanup extents after we finish logging inode (+6/-0)
    Btrfs: use helper for logical resolve (+3/-16)
    Btrfs: fix off-by-one in file clone (+9/-9)
    Btrfs: cleanup fs_info->hashers (+0/-2)

Tsutomu Itoh (6) commits (+19/-20):
    Btrfs: confirmation of value is added before trace_btrfs_get_extent() is called (+2/-1)
    Btrfs: remove unnecessary IS_ERR in bio_readpage_error() (+1/-1)
    Btrfs: cleanup of error processing in btree_get_extent() (+5/-9)
    Btrfs: fix error handling in delete_block_group_cache() (+2/-2)
    Btrfs: remove unnecessary code in btree_get_extent() (+1/-7)
    Btrfs: check return value of ulist_alloc() properly (+8/-0)

David Sterba (4) commits (+119/-62):
    btrfs: allow setting NOCOW for a zero sized file via ioctl (+27/-4)
    btrfs: move transaction aborts to the point of failure (+80/-47)
    btrfs: return EPERM upon rmdir on a subvolume (+3/-2)
    btrfs: polish names of kmem caches (+9/-9)

Sage Weil (3) commits (+18/-2):
    Btrfs: do not take cleanup_work_sem in btrfs_run_delayed_iputs() (+0/-2)
    Btrfs: pass lockdep rwsem metadata to async commit transaction (+16/-0)
    Btrfs: set journal_info in async trans commit worker (+2/-0)

Stefan Behrens (2) commits (+156/-21):
    Btrfs: make filesystem read-only when submitting barrier fails (+142/-19)
    Btrfs: detect corrupted filesystem after write I/O errors (+14/-2)

Robin Dong (2) commits (+12/-157):
    btrfs: remove unused function btrfs_insert_some_items() (+0/-143)
    btrfs: move inline function code to header file (+12/-14)

Mark Fasheh (2) commits (+848/-116):
    btrfs: extended inode ref iteration (+138/-37)
    btrfs: extended inode refs (+710/-79)

Wei Yongjun (2) commits (+3/-6):
    Btrfs: fix possible memory leak in scrub_setup_recheck_block() (+1/-0)
    Btrfs: using for_each_set_bit_from to simplify the code (+2/-6)

Chris Mason (2) commits (+38/-16):
    Btrfs: fix btrfs send for inline items and compression (+37/-15)
    btrfs: init ref_index to zero in add_inode_ref (+1/-1)

Jan Schmidt (2) commits (+129/-112):
    btrfs: improved readablity for add_inode_ref (+97/-81)
    Btrfs: fix gcc warnings for 32bit compiles (+32/-31)

Zach Brown (1) commits (+2/-1):
    btrfs: fix min csum item size warnings in 32bit

Daniel J Blueman (1) commits (+11/-11):
    btrfs: fix message printing

Anand Jain (1) commits (+7/-5):
    Btrfs: write_buf is now callable outside send.c

Kent Overstreet (1) commits (+2/-17):
    btrfs: Kill some bi_idx references

Andrei Popa (1) commits (+13/-1):
    Btrfs: make compress and nodatacow mount options mutually exclusive

liubo (1) commits (+0/-8):
    Btrfs: cleanup for unused ref cache stuff

Wang Sheng-Hui (1) commits (+0/-4):
    Btrfs: remove repeated eb->pages check in, disk-io.c/csum_dirty_buffer

Total: (121) commits

 fs/btrfs/backref.c           | 299 +++++++++++---
 fs/btrfs/backref.h           |  10 +-
 fs/btrfs/btrfs_inode.h       |  15 +-
 fs/btrfs/check-integrity.c   |  16 +-
 fs/btrfs/compression.c       |  13 +-
 fs/btrfs/ctree.c             | 148 +------
 fs/btrfs/ctree.h             | 109 +++++-
 fs/btrfs/delayed-inode.c     |   6 +-
 fs/btrfs/disk-io.c           | 230 ++++++-----
 fs/btrfs/disk-io.h           |   2 +
 fs/btrfs/extent-tree.c       | 376 +++++++++---------
 fs/btrfs/extent_io.c         | 128 ++++--
 fs/btrfs/extent_io.h         |  23 +-
 fs/btrfs/extent_map.c        |  55 ++-
 fs/btrfs/extent_map.h        |   8 +-
 fs/btrfs/file-item.c         |   5 +-
 fs/btrfs/file.c              | 447 +++++++++++++++++++--
 fs/btrfs/free-space-cache.c  |  10 +-
 fs/btrfs/hash.h              |  10 +
 fs/btrfs/inode-item.c        | 285 +++++++++++++-
 fs/btrfs/inode.c             | 386 ++++++++++++------
 fs/btrfs/ioctl.c             | 100 ++---
 fs/btrfs/ordered-data.c      |  97 ++---
 fs/btrfs/ordered-data.h      |  12 +-
 fs/btrfs/qgroup.c            |  40 +-
 fs/btrfs/relocation.c        |  11 +-
 fs/btrfs/root-tree.c         |  29 +-
 fs/btrfs/scrub.c             |  30 +-
 fs/btrfs/send.c              | 915 +++++++++++++++++++++++--------------------
 fs/btrfs/send.h              |   1 +
 fs/btrfs/super.c             |  74 ++--
 fs/btrfs/transaction.c       | 283 +++++++++----
 fs/btrfs/transaction.h       |  20 +-
 fs/btrfs/tree-log.c          | 889 +++++++++++++++++++++++++++++++++--------
 fs/btrfs/ulist.c             |   7 +-
 fs/btrfs/ulist.h             |   9 +-
 fs/btrfs/volumes.c           |  73 +++-
 fs/btrfs/zlib.c              |   8 +-
 include/trace/events/btrfs.h |  14 +-
 39 files changed, 3574 insertions(+), 1619 deletions(-)

^ permalink raw reply	[flat|nested] 128+ messages in thread

end of thread, other threads:[~2017-06-10 13:01 UTC | newest]

Thread overview: 128+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-06-10 20:01 [GIT PULL] Btrfs Chris Mason
  -- strict thread matches above, loose matches on Subject: below --
2017-06-10 13:00 Chris Mason
2017-05-09 17:56 Chris Mason
2017-05-09 18:01 ` Chris Mason
2017-04-28  0:26 Chris Mason
2017-04-14 18:28 Chris Mason
2017-03-31 21:05 Chris Mason
2017-03-23 15:09 Chris Mason
2017-03-02 20:19 Chris Mason
2017-02-25  0:56 Chris Mason
2017-02-11 13:18 Chris Mason
2017-01-27 19:37 Chris Mason
2016-12-16 17:01 Chris Mason
2016-11-04 17:28 Chris Mason
2016-10-28 14:08 Chris Mason
2016-10-14 20:31 Chris Mason
2016-10-11 15:46 Chris Mason
2016-09-23 20:01 Chris Mason
2016-09-09 17:46 Chris Mason
2016-09-03 13:54 Chris Mason
2016-08-26 23:36 Chris Mason
2016-08-10 12:10 Chris Mason
2016-08-04 19:12 Chris Mason
2016-07-31 13:55 Chris Mason
2016-06-18 13:01 Chris Mason
2016-06-03 20:57 Chris Mason
2016-05-27 17:44 Chris Mason
2016-05-21 14:18 Chris Mason
2016-04-08 20:43 Chris Mason
2016-04-01 22:45 Chris Mason
2016-03-22  0:24 Chris Mason
2016-03-22  1:16 ` Linus Torvalds
2016-03-22  2:15   ` Chris Mason
2016-03-22  2:24     ` Chris Mason
2016-03-22  2:38       ` Linus Torvalds
2016-03-04 18:51 Chris Mason
2016-02-19 19:08 Chris Mason
2016-02-12 16:43 Chris Mason
2016-01-29 18:42 Chris Mason
2016-01-22 16:34 Chris Mason
2016-01-17 23:30 Chris Mason
2016-01-18 10:25 ` Martin Steigerwald
2016-01-18 10:52   ` Holger Hoffstätte
2015-12-18 17:28 Chris Mason
2015-11-27 21:13 Chris Mason
2015-11-13 20:37 Chris Mason
2015-11-06 18:44 Chris Mason
2015-10-23 12:47 Chris Mason
2015-10-16 17:34 Chris Mason
2015-10-09 17:42 Chris Mason
2015-09-25 17:35 Chris Mason
2015-09-11 18:44 Chris Mason
2015-08-08 19:41 Chris Mason
2015-07-31 18:21 Chris Mason
2015-07-17 19:38 Chris Mason
2015-07-10 19:15 Chris Mason
2015-06-29 21:11 Chris Mason
2015-05-23  1:14 Chris Mason
2015-05-26 12:33 ` Josh Boyer
2015-05-26 12:54   ` Chris Mason
2015-06-02 14:02     ` Josh Boyer
2015-06-26 14:21       ` David Sterba
2015-03-06 21:45 Chris Mason
2015-02-26  2:01 Chris Mason
2015-02-19 20:36 Chris Mason
2015-02-20 10:09 ` Markus Trippelsdorf
2014-11-09  1:17 Chris Mason
2014-10-11  0:41 Chris Mason
2014-08-14 17:59 Chris Mason
2014-08-14 18:10 ` Linus Torvalds
2014-08-14 18:17   ` Chris Mason
2014-07-20 14:33 Chris Mason
2014-07-21  3:07 ` Duncan
2014-07-04 14:42 Chris Mason
2014-06-20 15:53 Chris Mason
2014-05-20 19:25 Chris Mason
2014-04-26 23:31 Chris Mason
2014-02-16 13:13 Chris Mason
2014-02-09 19:13 Chris Mason
2014-02-04 17:59 Chris Mason
2014-01-30 21:52 Chris Mason
2014-02-02  0:15 ` David Rientjes
2014-02-02  1:28   ` Filipe David Manana
2014-02-02  2:40     ` David Rientjes
2014-02-02  8:09     ` Chris Samuel
2014-02-03 17:54 ` David Sterba
2014-02-03 18:18   ` Chris Mason
2014-02-04 19:50     ` Greg KH
2014-02-04 19:52       ` Chris Mason
2013-12-12 21:57 Chris Mason
2013-11-21 18:35 Chris Mason
2013-11-15 15:19 Chris Mason
2013-11-15 16:11 ` Geert Uytterhoeven
2013-11-14 17:19 Chris Mason
2013-11-15 11:32 ` Heiko Carstens
2013-11-15 12:21   ` Chris Mason
2013-11-15 13:40     ` Chris Mason
2013-11-15 13:42       ` Geert Uytterhoeven
2013-11-15 14:57         ` Heiko Carstens
2013-11-17  9:36           ` Gleb Natapov
2013-11-18  9:35             ` Heiko Carstens
2013-11-18 10:30               ` Will Deacon
2013-10-18 23:24 Chris Mason
2013-10-12  1:01 Chris Mason
2013-10-05 17:36 Chris Mason
2013-09-22 20:50 Chris Mason
2013-09-12 15:36 Chris Mason
2013-09-12 20:38 ` Josh Boyer
2013-09-13  6:44   ` Geert Uytterhoeven
2013-09-13 11:53     ` Josh Boyer
2013-09-13 12:15       ` Russell King
2013-09-13 12:15         ` Russell King
2013-09-13 12:36         ` Geert Uytterhoeven
2013-09-13 15:06         ` Josh Boyer
2013-09-13 15:38           ` Josh Boyer
2013-09-13 15:58             ` Russell King
2013-09-14  9:33               ` Heiko Carstens
2013-09-13 13:07 ` Ric Wheeler
2013-09-13 14:11   ` Hugo Mills
2013-08-10 12:28 Chris Mason
2013-07-09 19:18 Chris Mason
2013-06-14  1:29 Chris Mason
2013-05-09 19:26 Chris Mason
2013-03-02 15:15 Chris Mason
2013-03-02 15:41 ` Liu Bo
2013-03-03  0:45 ` Linus Torvalds
2013-03-03  1:10   ` Chris Mason
2012-10-09 21:05 Chris Mason

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.