All of lore.kernel.org
 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 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.