linux-btrfs.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: David Sterba <dsterba@suse.com>
To: torvalds@linux-foundation.org
Cc: David Sterba <dsterba@suse.com>,
	clm@fb.com, linux-btrfs@vger.kernel.org,
	linux-kernel@vger.kernel.org
Subject: [GIT PULL] Btrfs updates for 5.1, part 1
Date: Mon,  4 Mar 2019 20:20:53 +0100	[thread overview]
Message-ID: <cover.1551726327.git.dsterba@suse.com> (raw)

Hi,

the branch contains usual mix of new features, core changes and fixes;
full list below. I'm planning 2nd pull request, with a few more fixes
that arrived recently but too close to merge window, will send it next
week.

Please pull, thanks.


New features:

- support zstd compression levels

- new ioctl to unregister a device from the module (ie. reverse of device
  scan)

- scrub prints a message to log when it's about to start or finish


Core changes:

- qgroups can now skip part of a tree that does not get updated during
  relocation, because this does not affect the quota accounting, estimated
  speedup in run time is about 20%

- the compression workspace management had to be enhanced due to zstd
  requirements

- various enospc fixes, when there's high fragmentation the
  over-reservation can cause ENOSPC that might not happen after a flush,
  in such cases try to wait if the situation improves


Fixes:

- various ioctls could overwrite previous return value if copy_to_user
  fails, fix this so the original error is reported

- more reclaim vs GFP_KERNEL fixes

- other cleanups and refactoring

- fix a (valid) lockdep warning in a test when device replace is
  destroying worker threads

- make qgroup async transaction commit more aggressive, this avoids some
  'quota limit reached' errors if there are not enough data to trigger
  transaction in order to flush

- fix deadlock between snapshot deletion and quotas when backref walking
  is called from context that already holds the same locks

- fsync fixes:
  - fix fsync after succession of renames of different files
  - fix fsync after succession of renames and unlink/rmdir

----------------------------------------------------------------
The following changes since commit 5908e6b738e3357af42c10e1183753c70a0117a9:

  Linux 5.0-rc8 (2019-02-24 16:46:45 -0800)

are available in the Git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux.git for-5.1-part1-tag

for you to fetch changes up to f65e25e343cfc0e6f4db9a687c4085fad268325d:

  btrfs: Remove unnecessary casts in btrfs_read_root_item (2019-02-25 14:19:23 +0100)

----------------------------------------------------------------
Anand Jain (11):
      btrfs: merge btrfs_find_device_missing_or_by_path() into parent
      btrfs: cleanup btrfs_find_device_by_devspec()
      btrfs: refactor btrfs_find_device() take fs_devices as argument
      btrfs: refactor btrfs_free_stale_devices() to get return value
      btrfs: merge btrfs_find_device and find_device
      btrfs: scrub: print messages when started or finished
      btrfs: introduce new ioctl to unregister a btrfs device
      btrfs: fix comment its device list mutex not volume lock
      btrfs: scrub: fix circular locking dependency warning
      btrfs: scrub: add scrub_lock lockdep check in scrub_workers_get
      btrfs: scrub: convert scrub_workers_refcnt to refcount_t

Anders Roxell (1):
      btrfs: let the assertion expression compile in all configs

Dan Carpenter (1):
      btrfs: drop the lock on error in btrfs_dev_replace_cancel

Dan Robertson (1):
      btrfs: init csum_list before possible free

David Sterba (9):
      btrfs: simplify workqueue name when allocating
      btrfs: split btrfs_set_lock_blocking_rw to read and write helpers
      btrfs: split btrfs_clear_lock_blocking_rw to read and write helpers
      btrfs: replace btrfs_set_lock_blocking_rw with appropriate helpers
      btrfs: open code now trivial btrfs_set_lock_blocking
      btrfs: simplify waiting loop in btrfs_tree_lock
      btrfs: merge btrfs_set_lock_blocking_rw with it's caller
      btrfs: scrub: add assertions for worker pointers
      btrfs: scrub: remove unused nocow worker pointer

Dennis Zhou (12):
      btrfs: add helpers for compression type and level
      btrfs: rename workspaces_list to workspace_manager
      btrfs: manage heuristic workspace as index 0
      btrfs: unify compression ops with workspace_manager
      btrfs: add helper methods for workspace manager init and cleanup
      btrfs: add compression interface in (get/put)_workspace
      btrfs: move to function pointers for get/put workspaces
      btrfs: plumb level through the compression interface
      btrfs: change set_level() to bound the level passed in
      btrfs: zstd use the passed through level instead of default
      btrfs: make zstd memory requirements monotonic
      btrfs: add zstd compression level support

Filipe Manana (14):
      Btrfs: do not overwrite scrub error with fault error in scrub ioctl
      Btrfs: do not overwrite error return value in scrub progress ioctl
      Btrfs: do not overwrite error return value in the get device stats ioctl
      Btrfs: setup a nofs context for memory allocation at btrfs_create_tree()
      Btrfs: setup a nofs context for memory allocation at __btrfs_set_acl
      Btrfs: remove redundant check for swapfiles when reflinking
      Btrfs: do not overwrite error return value in the device replace ioctl
      Btrfs: do not overwrite error return value in the balance ioctl
      Btrfs: move duplicated nodatasum check into common reflink/dedupe helper
      Btrfs: fix fsync after succession of renames of different files
      Btrfs: fix fsync after succession of renames and unlink/rmdir
      Btrfs: remove no longer needed range length checks for deduplication
      Btrfs: add missing error handling after doing leaf/node binary search
      Btrfs: remove assertion when searching for a key in a node/leaf

Johannes Thumshirn (1):
      btrfs: ensure that a DUP or RAID1 block group has exactly two stripes

Josef Bacik (12):
      btrfs: make btrfs_destroy_delayed_refs use btrfs_delayed_ref_lock
      btrfs: make btrfs_destroy_delayed_refs use btrfs_delete_ref_head
      btrfs: call btrfs_create_pending_block_groups unconditionally
      btrfs: replace cleaner_delayed_iput_mutex with a waitqueue
      btrfs: check if there are free block groups for commit
      btrfs: dump block_rsv details when dumping space info
      btrfs: don't use global reserve for chunk allocation
      btrfs: don't enospc all tickets on flush failure
      btrfs: loop in inode_rsv_refill
      btrfs: be more explicit about allowed flush states
      btrfs: reserve extra space during evict
      btrfs: honor path->skip_locking in backref code

Julia Lawall (1):
      Btrfs: drop useless LIST_HEAD in merge_reloc_root

Nikolay Borisov (17):
      btrfs: Make first argument of btrfs_run_delalloc_range directly an inode
      btrfs: Remove unused arguments from btrfs_get_extent_fiemap
      btrfs: Refactor btrfs_get_extent_fiemap
      btrfs: Remove redundant assignment in btrfs_get_extent_fiemap
      btrfs: Remove inode argument from async_cow_submit
      btrfs: Remove isize local variable in compress_file_range
      btrfs: Use ihold instead of igrab in cow_file_range_async
      btrfs: Remove WARN_ON in btrfs_alloc_delalloc_work
      btrfs: Document logic regarding inode in async_cow_submit
      btrfs: Refactor shrink_delalloc
      btrfs: Remove impossible condition from mergable_maps
      btrfs: Rename found_type to extent_type in btrfs_get_extent
      btrfs: Consolidate retval checking of core btree functions
      btrfs: Remove not_found_em label from btrfs_get_extent
      btrfs: use WARN_ON in a canonical form btrfs_remove_block_group
      btrfs: Remove EXTENT_FIRST_DELALLOC bit
      btrfs: Fix grossly misleading argument names in extent io search

Qu Wenruo (10):
      btrfs: relocation: Delay reloc tree deletion after merge_reloc_roots
      btrfs: qgroup: Refactor btrfs_qgroup_trace_subtree_swap
      btrfs: qgroup: Introduce per-root swapped blocks infrastructure
      btrfs: qgroup: Use delayed subtree rescan for balance
      btrfs: qgroup: Cleanup old subtree swap code
      btrfs: qgroup: Remove duplicated trace points for qgroup_rsv_add/release
      btrfs: Output ENOSPC debug info in inc_block_group_ro
      btrfs: extent_io: Kill the forward declaration of flush_write_bio
      btrfs: qgroup: Move reserved data accounting from btrfs_delayed_ref_head to btrfs_qgroup_extent_record
      btrfs: qgroup: Make qgroup async transaction commit more aggressive

YueHaibing (2):
      btrfs: remove set but not used variable 'num_pages'
      btrfs: Remove unnecessary casts in btrfs_read_root_item

 fs/btrfs/acl.c               |   9 ++
 fs/btrfs/async-thread.c      |  10 +-
 fs/btrfs/backref.c           |  22 ++-
 fs/btrfs/compression.c       | 253 ++++++++++++++---------------
 fs/btrfs/compression.h       |  52 +++++-
 fs/btrfs/ctree.c             |  74 ++++-----
 fs/btrfs/ctree.h             |  61 +++++--
 fs/btrfs/delayed-ref.c       |  15 +-
 fs/btrfs/delayed-ref.h       |  11 --
 fs/btrfs/dev-replace.c       |   9 +-
 fs/btrfs/disk-io.c           |  39 +++--
 fs/btrfs/extent-tree.c       | 292 +++++++++++++++++++++------------
 fs/btrfs/extent_io.c         |  87 +++++-----
 fs/btrfs/extent_io.h         |  15 +-
 fs/btrfs/extent_map.c        |   5 +-
 fs/btrfs/extent_map.h        |   1 +
 fs/btrfs/file.c              |   3 +-
 fs/btrfs/inode.c             | 207 +++++++++++++++---------
 fs/btrfs/ioctl.c             |  60 ++-----
 fs/btrfs/locking.c           | 108 ++++++-------
 fs/btrfs/locking.h           |  15 +-
 fs/btrfs/lzo.c               |  31 +++-
 fs/btrfs/qgroup.c            | 372 ++++++++++++++++++++++++++++++++-----------
 fs/btrfs/qgroup.h            | 120 ++++++++++++--
 fs/btrfs/ref-verify.c        |   4 +-
 fs/btrfs/relocation.c        | 119 ++++++++++----
 fs/btrfs/root-tree.c         |   4 +-
 fs/btrfs/scrub.c             |  49 ++++--
 fs/btrfs/super.c             |  13 +-
 fs/btrfs/transaction.c       |   9 +-
 fs/btrfs/tree-defrag.c       |   2 +-
 fs/btrfs/tree-log.c          | 282 ++++++++++++++++++++++++++------
 fs/btrfs/volumes.c           | 202 ++++++++++++-----------
 fs/btrfs/volumes.h           |   5 +-
 fs/btrfs/zlib.c              |  45 +++++-
 fs/btrfs/zstd.c              | 316 ++++++++++++++++++++++++++++++++++--
 include/trace/events/btrfs.h |  30 +---
 include/uapi/linux/btrfs.h   |   2 +
 38 files changed, 1993 insertions(+), 960 deletions(-)

             reply	other threads:[~2019-03-04 19:19 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-03-04 19:20 David Sterba [this message]
2019-03-07 17:50 ` [GIT PULL] Btrfs updates for 5.1, part 1 pr-tracker-bot

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=cover.1551726327.git.dsterba@suse.com \
    --to=dsterba@suse.com \
    --cc=clm@fb.com \
    --cc=linux-btrfs@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=torvalds@linux-foundation.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).