Skip to contentSkip to conversation

Btrfs for 4.14

GIT PULL David Sterba 1 participant 1 message Sep 8, 2017 Btrfs file system

lore
Share & tools
lore

David Sterba

author maintainer
#0 lore raw

Hi,

please pull the following btrfs branch to 4.14. The changes range through all
types: cleanups, core chagnes, sanity checks, fixes, other user visible changes, detailed list below.

Merging notes: there's a minor conflict with the blk_status_t fix that went to 4.13-rc7 while this pull is on top of 4.13-rc5 as I did not want to rebase. The resolution is simple, there's a removed parameter 'skip_sum' in function __btrfs_submit_dio_bio. My resolution can be found in branch for-4.14-merged.

Changes:
* deprecated: user transaction ioctl
* mount option ssd does not change allocation alignments
* degraded read-write mount is allowed if all the raid profile constraints are met, now based on more accurate check
* defrag: do not reset compression afterwards; the NOCOMPRESS flag can be now overriden by defrag
* prep work for better extent reference tracking (related to the qgroup slowness with balance)
* prep work for compression heuristics
* memory allocation reductions (may help latencies on a loaded system)
* better accounting for io waiting states
* error handling improvements (removed BUGs)
* added more sanity checks for shared refs
* fix readdir vs pagefault deadlock under some circumstances
* fix for 'no-hole' mode, certain combination of compressed and inline extents
* send: fix emission of invalid clone operations
* fixup file mode if setting acls fail
* more fixes from fuzzing
* oher cleanups

The following changes since commit ef954844c7ace62f773f4f23e28d2d915adc419f:

Linux 4.13-rc5 (2017-08-13 16:01:32 -0700)

are available in the git repository at:

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

for you to fetch changes up to db95c876c568cef951fbbd4c0118cb5386e4bb99:

btrfs: submit superblock io with REQ_META and REQ_PRIO (2017-08-22 13:22:05 +0200)

----------------------------------------------------------------
Aleksa Sarai (1):
btrfs: resume qgroup rescan on rw remount

Anand Jain (4):
btrfs: btrfs_inherit_iflags() can be static
btrfs: use appropriate define for the fsid
btrfs: use BTRFS_FSID_SIZE for fsid
btrfs: remove unused BTRFS_COMPRESS_LAST

Colin Ian King (1):
btrfs: remove redundant check on ret being non-zero

David Sterba (30):
btrfs: drop newlines from strings when using btrfs_* helpers
btrfs: use GFP_KERNEL in mount and remount
btrfs: use GFP_KERNEL in btrfs_defrag_file
btrfs: defrag: make readahead state allocation failure non-fatal
btrfs: factor reading progress out of btrfs_dev_replace_status
btrfs: simplify btrfs_dev_replace_kthread
btrfs: get fs_info from eb in btrfs_print_leaf, remove argument
btrfs: get fs_info from eb in btrfs_print_tree, remove argument
btrfs: cleanup types storing REQ_*
btrfs: merge REQ_OP and REQ_ flags to one parameter in submit_extent_page
btrfs: merge alloc_device helpers
btrfs: refactor find_device helper
btrfs: split write_dev_supers to two functions
btrfs: use named constant for bdev blocksize
btrfs: fix spelling of snapshotting
btrfs: drop ancient page flag mappings
btrfs: remove trivial wrapper btrfs_force_ra
btrfs: drop chunk locks at the end of close_ctree
btrfs: account that we're waiting for DIO read
btrfs: account that we're waiting for IO in scrub_submit_raid56_bio_wait
btrfs: rename variable holding per-inode compression type
btrfs: separate defrag and property compression
btrfs: defrag: cleanup checking for compression status
btrfs: allow defrag compress to override NOCOMPRESS attribute
btrfs: prepare for extensions in compression options
btrfs: scrub: use bool for flush_all_writes
btrfs: scrub: clean up division in __scrub_mark_bitmap
btrfs: scrub: clean up division in scrub_find_csum
btrfs: scrub: simplify scrub worker initialization
btrfs: submit superblock io with REQ_META and REQ_PRIO

Edmund Nadolski (6):
btrfs: btrfs_check_shared should manage its own transaction
btrfs: remove ref_tree implementation from backref.c
btrfs: convert prelimary reference tracking to use rbtrees
btrfs: add cond_resched() calls when resolving backrefs
btrfs: allow backref search checks for shared extents
btrfs: clean up extraneous computations in add_delayed_refs

Ernesto A. Fernández (1):
btrfs: preserve i_mode if __btrfs_set_acl() fails

Filipe Manana (3):
Btrfs: avoid unnecessarily locking inode when clearing a range
Btrfs: fix assertion failure during fsync in no-holes mode
Btrfs: incremental send, fix emission of invalid clone operations

Hans van Kranenburg (1):
btrfs: Do not use data_alloc_cluster in ssd mode

Jeff Mahoney (9):
btrfs: struct-funcs, constify readers
btrfs: constify tracepoint arguments
btrfs: backref, constify some arguments
btrfs: backref, add unode_aux_to_inode_list helper
btrfs: backref, cleanup __ namespace abuse
btrfs: add a node counter to each of the rbtrees
btrfs: backref, add tracepoints for prelim_ref insertion and merging
btrfs: account for pinned bytes in should_alloc_chunk
btrfs: pass fs_info to btrfs_del_root instead of tree_root

Josef Bacik (2):
btrfs: fix readdir deadlock with pagefault
btrfs: increase ctx->pos for delayed dir index

Liu Bo (9):
Btrfs: report errors when checksum is not found
Btrfs: fix out of bounds array access while reading extent buffer
Btrfs: add a helper to retrive extent inline ref type
Btrfs: convert to use btrfs_get_extent_inline_ref_type
Btrfs: remove BUG() in btrfs_extent_inline_ref_size
Btrfs: remove BUG() in print_extent_item
Btrfs: remove BUG() in add_data_reference
Btrfs: remove BUG_ON in __add_tree_block
Btrfs: add one more sanity check for shared ref type

Lu Fengqi (1):
btrfs: use btrfsic_submit_bio instead of submit_bio in write_dev_flush

Matthias Kaehlcke (1):
btrfs: Remove extra parentheses from condition in copy_items()

Nick Terrell (1):
btrfs: Keep one more workspace around

Nikolay Borisov (27):
btrfs: convert while loop to list_for_each_entry
btrfs: Use explicit round_down call rather than open-coding it
btrfs: Be explicit about usage of min()
btrfs: remove unused sectorsize member
btrfs: Remove redundant argument of flush_space
btrfs: Remove redundant checks from btrfs_alloc_data_chunk_ondemand
btrfs: Prevent possible ERR_PTR() dereference
btrfs: qgroups: Fix BUG_ON condition in tree level check
btrfs: Use explicit round_down macro in btrfs resize ioctl handler
btrfs: Remove find_raid56_stripe_len
btrfs: Remove unused variables
btrfs: Remove unused parameters from volume.c functions
btrfs: Remove never reached error handling code in __add_reloc_root
btrfs: Deprecate userspace transaction ioctls
btrfs: Make flush_space return void
btrfs: Simplify math in should_alloc chunk
btrfs: Remove never-reached WARN_ON
btrfs: Remove unused sectorsize variable from struct map_lookup
btrfs: expose internal free space tree routine only if sanity tests are enabled
btrfs: Move skip checksum check from btrfs_submit_direct to __btrfs_submit_dio_bio
btrfs: Fix -EOVERFLOW handling in btrfs_ioctl_tree_search_v2
btrfs: Remove redundant setting of uuid in btrfs_block_header
btrfs: Remove chunk_objectid argument from btrfs_make_block_group
btrfs: Remove extraneous chunk_objectid variable
btrfs: Remove chunk_objectid parameter of btrfs_alloc_dev_extent
btrfs: remove superfluous chunk_tree argument from btrfs_alloc_dev_extent
btrfs: remove unnecessary memory barrier in btrfs_direct_IO

Qu Wenruo (6):
btrfs: Introduce a function to check if all chunks a OK for degraded rw mount
btrfs: Do chunk level check for degraded rw mount
btrfs: Do chunk level check for degraded remount
btrfs: Allow barrier_all_devices to do chunk level device check
btrfs: Cleanup num_tolerated_disk_barrier_failures
btrfs: Enhance message when a device is missing during mount

Timofey Titovets (1):
Btrfs: add skeleton code for compression heuristic

 fs/btrfs/acl.c                         |    6 +-
 fs/btrfs/async-thread.c                |    6 +-
 fs/btrfs/async-thread.h                |    6 +-
 fs/btrfs/backref.c                     | 1085 ++++++++++++++------------------
 fs/btrfs/backref.h                     |   16 +-
 fs/btrfs/btrfs_inode.h                 |   13 +-
 fs/btrfs/check-integrity.c             |    8 +-
 fs/btrfs/compression.c                 |   35 +-
 fs/btrfs/compression.h                 |    3 +-
 fs/btrfs/ctree.c                       |   14 +-
 fs/btrfs/ctree.h                       |  183 +++---
 fs/btrfs/delayed-inode.c               |    1 +
 fs/btrfs/dev-replace.c                 |   74 ++-
 fs/btrfs/disk-io.c                     |  242 +++----
 fs/btrfs/disk-io.h                     |   10 +-
 fs/btrfs/extent-tree.c                 |  200 ++++--
 fs/btrfs/extent_io.c                   |   92 ++-
 fs/btrfs/extent_io.h                   |   19 +-
 fs/btrfs/file.c                        |   19 +-
 fs/btrfs/free-space-cache.c            |    2 +-
 fs/btrfs/free-space-tree.c             |    2 +-
 fs/btrfs/free-space-tree.h             |    3 +-
 fs/btrfs/inode.c                       |  221 +++++--
 fs/btrfs/ioctl.c                       |  116 ++--
 fs/btrfs/print-tree.c                  |   40 +-
 fs/btrfs/print-tree.h                  |    4 +-
 fs/btrfs/props.c                       |   10 +-
 fs/btrfs/qgroup.c                      |    7 +-
 fs/btrfs/relocation.c                  |   32 +-
 fs/btrfs/root-tree.c                   |    9 +-
 fs/btrfs/scrub.c                       |   47 +-
 fs/btrfs/send.c                        |   21 +-
 fs/btrfs/struct-funcs.c                |    9 +-
 fs/btrfs/super.c                       |   41 +-
 fs/btrfs/tests/btrfs-tests.c           |    1 -
 fs/btrfs/tests/free-space-tree-tests.c |    2 +-
 fs/btrfs/tree-log.c                    |    9 +-
 fs/btrfs/volumes.c                     |  296 ++++-----
 fs/btrfs/volumes.h                     |    8 +-
 include/trace/events/btrfs.h           |  331 ++++++----
 40 files changed, 1702 insertions(+), 1541 deletions(-)