All of lore.kernel.org
 help / color / mirror / Atom feed
* [GIT PULL] Btrfs for 4.16
@ 2018-01-29 21:00 David Sterba
  0 siblings, 0 replies; only message in thread
From: David Sterba @ 2018-01-29 21:00 UTC (permalink / raw)
  To: torvalds; +Cc: David Sterba, clm, linux-btrfs, linux-kernel

Hi,

the btrfs updates for this cycle are mostly cleanups with a few raid56 bugfixes
and some feature additions. Please pull, thanks.


Features or user visible changes:

- fallocate: implement zero range mode

- avoid losing data raid profile when deleting a device

- tree item checker: more checks for directory items and xattrs

Notable fixes:

- raid56 recovery: don't use cached stripes, that could be potentially changed
  and a later RMW or recovery would lead to corruptions or failures

- let raid56 try harder to rebuild damaged data, reading from all stripes if
  necessary

- fix scrub to repair raid56 in a similar way as in the case above

Other:

- cleanups: device freeing, removed some call indirections, redundant
  bio_put/_get, unused parameters, refactorings and renames

- RCU list traversal fixups

- simplify mount callchain, remove recursing back when mounting a subvolume

- plug for fsync, may improve bio merging on multiple devices

- compression heurisic: replace heap sort with radix sort, gains some
  performance

- add extent map selftests, buffered write vs dio

----------------------------------------------------------------

The following changes since commit 0c5b9b5d9adbad4b60491f9ba0d2af38904bb4b9:

  Linux 4.15-rc9 (2018-01-21 13:51:26 -0800)

are available in the Git repository at:

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

for you to fetch changes up to 3acbcbfc8f06d4ade2aab2ebba0a2542a05ce90c:

  btrfs: drop devid as device_list_add() arg (2018-01-29 19:31:16 +0100)

----------------------------------------------------------------
Anand Jain (33):
      btrfs: clean up btrfs_dev_stat_inc usage
      btrfs: move volume_mutex into the btrfs_rm_device()
      btrfs: rename btrfs_add_device to btrfs_add_dev_item
      btrfs: set fs_devices->seed directly
      btrfs: move check for device generation to the last
      btrfs: factor __btrfs_open_devices() to create btrfs_open_one_device()
      btrfs: drop btrfs_device::can_discard to query directly
      btrfs: add helper for device path or missing
      btrfs: cleanup device states define BTRFS_DEV_STATE_WRITEABLE
      btrfs: cleanup device states define BTRFS_DEV_STATE_IN_FS_METADATA
      btrfs: cleanup device states define BTRFS_DEV_STATE_MISSING
      btrfs: cleanup device states define BTRFS_DEV_STATE_REPLACE_TGT
      btrfs: cleanup device states define BTRFS_DEV_STATE_FLUSH_SENT
      btrfs: put btrfs_ioctl_vol_args_v2 related defines together
      btrfs: factor btrfs_check_rw_degradable() to check given device
      btrfs: remove check for BTRFS_FS_STATE_ERROR which we just set
      btrfS: collapse btrfs_handle_error() into __btrfs_handle_fs_error()
      btrfs: rename btrfs_device::scrub_device to scrub_ctx
      btrfs: simplify mutex unlocking code in btrfs_commit_transaction
      btrfs: minor style cleanups in btrfs_scan_one_device
      btrfs: define SUPER_FLAG_METADUMP_V2
      btrfs: add support for SUPER_FLAG_CHANGING_FSID
      btrfs: fail mount when sb flag is not in BTRFS_SUPER_FLAG_SUPP
      btrfs: cleanup btrfs_free_stale_device() usage
      btrfs: no need to check for btrfs_fs_devices::seeding
      btrfs: make btrfs_free_stale_device() to iterate all stales
      btrfs: make btrfs_free_stale_devices() argument optional
      btrfs: rename btrfs_free_stale_devices() arg to skip_dev
      btrfs: make btrfs_free_stale_devices() to match the path
      btrfs: move pr_info into device_list_add
      btrfs: set the total_devices in device_list_add()
      btrfs: get device pointer from device_list_add()
      btrfs: drop devid as device_list_add() arg

Arnd Bergmann (1):
      btrfs: tree-checker: use %zu format string for size_t

Colin Ian King (1):
      btrfs: make function update_share_count static

David Sterba (46):
      btrfs: rename device free rcu helper to free_device_rcu
      btrfs: introduce free_device helper
      btrfs: use free_device where opencoded
      btrfs: simplify exit paths in btrfs_init_new_device
      btrfs: document device locking
      btrfs: simplify btrfs_close_bdev
      btrfs: switch to RCU for device traversal in btrfs_ioctl_dev_info
      btrfs: switch to RCU for device traversal in btrfs_ioctl_fs_info
      btrfs: use non-RCU list traversal in write_all_supers callees
      btrfs: prepare to drop gfp mask parameter from clear_extent_bit
      btrfs: sink gfp parameter to clear_extent_bit
      btrfs: sink gfp parameter to clear_extent_uptodate
      btrfs: use GFP_KERNEL in btrfs_alloc_inode
      btrfs: sink get_extent parameter to extent_writepages
      btrfs: sink get_extent parameter to extent_write_locked_range
      btrfs: sink get_extent parameter to extent_write_full_page
      btrfs: drop get_extent from extent_page_data
      btrfs: sink get_extent parameter to extent_fiemap
      btrfs: sink get_extent parameter to get_extent_skip_holes
      btrfs: sink get_extent parameter to extent_readpages
      btrfs: sink get_extent parameter to __extent_readpages
      btrfs: sink get_extent parameter to __do_contiguous_readpages
      btrfs: sink get_extent parameter to read_extent_buffer_pages
      btrfs: switch to on-stack csum buffer in csum_tree_block
      btrfs: switch btrfs_trans_handle::adding_csums to bool
      btrfs: remove unused member of btrfs_trans_handle
      btrfs: switch to refcount_t type for btrfs_trans_handle::use_count
      btrfs: reorder btrfs_trans_handle members for better packing
      btrfs: use narrower type for btrfs_transaction::num_dirty_bgs
      btrfs: reorder btrfs_transaction members for better packing
      btrfs: move some zstd work data from stack to workspace
      btrfs: compression: add helper for type to string conversion
      btrfs: SETFLAGS ioctl: use helper for compression type conversion
      btrfs: prop: use common helper for type to string conversion
      btrfs: show options: use helper to convert compression type string
      btrfs: merge two flush_write_bio helpers
      btrfs: sink flush_fn to extent_write_cache_pages
      btrfs: sink writepage parameter to extent_write_cache_pages
      btrfs: unify extent_page_data type passed as void
      btrfs: heuristic: open code get_num callback of radix sort
      btrfs: heuristic: open code copy_call callback of radix sort
      btrfs: heuristic: call get4bits directly
      btrfs: drop unused parameters from mount_subvol
      btrfs: add separate helper for unlock_extent_cached with GFP_ATOMIC
      btrfs: sink unlock_extent parameter gfp_flags
      btrfs: tree-check: reduce stack consumption in check_dir_item

Edmund Nadolski (2):
      btrfs: btrfs_inode_log_parent should use defined inode_only values.
      btrfs: remove dead code from btrfs_get_extent

Filipe Manana (4):
      Btrfs: add support for fallocate's zero range operation
      Btrfs: use cached state when dirtying pages during buffered write
      Btrfs: fix missing inode i_size update after zero range operation
      Btrfs: fix space leak after fallocate and zero range operations

Geert Uytterhoeven (1):
      btrfs: ref-verify: Remove unused parameter from walk_up_tree() to kill warning

Liu Bo (26):
      Btrfs: remove redundant btrfs_balance_delayed_items
      Btrfs: free btrfs_device in place
      Btrfs: remove rcu_barrier in btrfs_close_devices
      Btrfs: add __init macro to btrfs init functions
      Btrfs: document rules about bio async submit
      Btrfs: set plug for fsync
      Btrfs: remove unused variable wait in lock_stripe_add
      Btrfs: use struct completion in scrub_submit_raid56_bio_wait
      Btrfs: remove unused wait in btrfs_stripe_hash
      Btrfs: fix scrub to repair raid6 corruption
      Btrfs: make raid6 rebuild retry more
      Btrfs: remove redundant check in rbio_can_merge
      Btrfs: do not merge rbios if their fail stripe index are not identical
      Btrfs: avoid losing data raid profile when deleting a device
      Btrfs: raid56: iterate raid56 internal bio with bio_for_each_segment_all
      Btrfs: do not cache rbio pages if using raid6 recover
      Btrfs: raid56: fix race between merge_bio and rbio_orig_end_io
      Btrfs: fix incorrect block_len in merge_extent_mapping
      Btrfs: fix unexpected EEXIST from btrfs_get_extent
      Btrfs: add helper for em merge logic
      Btrfs: move extent map specific code to extent_map.c
      Btrfs: add extent map selftests
      Btrfs: extent map selftest: buffered write vs dio read
      Btrfs: extent map selftest: dio write vs dio read
      Btrfs: add WARN_ONCE to detect unexpected error from merge_extent_mapping
      Btrfs: noinline merge_extent_mapping

Matthew Wilcox (1):
      btrfs: Remove unused readahead spinlock

Misono, Tomohiro (6):
      btrfs: add btrfs_mount_root() and new file_system_type
      btrfs: cleanup btrfs_mount() using btrfs_mount_root()
      btrfs: split parse_early_options() in two
      btrfs: remove unused setup_root_args()
      btrfs: remove unused arg from parse_subvol_options()
      btrfs: cleanup unnecessary string dup in btrfs_parse_options()

Nikolay Borisov (25):
      btrfs: Fix memory barriers usage with device stats counters
      btrfs: Remove redundant memory barrier in dev stats
      btrfs: Remove unused function
      btrfs: Remove redundant mirror_num arg
      btrfs: Make btrfs_async_run_delayed_root use a loop rather than multiple labels
      btrfs: Move checks from btrfs_wq_run_delayed_node to btrfs_balance_delayed_items
      btrfs: Move loop termination condition in while()
      btrfs: Use locked_end rather than open coding it
      btrfs: Reduce scope of delayed_rsv->lock in may_commit_trans
      btrfs: Remove redundant FLAG_VACANCY
      btrfs: Remove unused variable in btrfs_get_extent
      btrfs: remove redundant check in btrfs_get_extent_fiemap
      btrfs: Handle btrfs_set_extent_delalloc failure in fixup worker
      btrfs: Fix out of bounds access in btrfs_search_slot
      btrfs: Remove pair of bio_get/put in btrfs_schedule_bio
      btrfs: sink extent_write_locked_range tree parameter
      btrfs: sink extent_write_full_page tree argument
      btrfs: Rename bin_search -> btrfs_bin_search
      btrfs: Improve btrfs_search_slot description
      btrfs: Remove redundant bio_get/set calls in compressed read/write paths
      btrfs: Remove redundant bio_get/set from submit_dio_repair_bio
      btrfs: Remove redundant bio_get/bio_set pair from submit_one_bio
      btrfs: Remove redundant pair of bio_get/set in __btrfs_submit_dio_bio
      btrfs: Make btrfs_inode_rsv_release static
      btrfs: Use IS_ALIGNED in btrfs_truncate_block instead of opencoding it

Pravin Shedge (1):
      btrfs: remove duplicate includes

Qu Wenruo (4):
      btrfs: Don't generate UUID for non-fs tree
      btrfs: tree-checker: Add checker for dir item
      btrfs: Cleanup existing name_len checks
      btrfs: extent-tree: Make btrfs_inode_rsv_refill function static

Su Yue (1):
      btrfs: correct wrong comment about magic number of index_cnt

Timofey Titovets (2):
      Btrfs: compression heuristic: replace heap sort with radix sort
      Btrfs: compress_file_range() change page dirty status once

Xiongfeng Wang (1):
      btrfs: use correct string length in DEV_INFO ioctl

 fs/btrfs/Makefile                 |   2 +-
 fs/btrfs/backref.c                |   3 +-
 fs/btrfs/compression.c            | 137 ++++++--
 fs/btrfs/compression.h            |   4 +-
 fs/btrfs/ctree.c                  |  56 ++--
 fs/btrfs/ctree.h                  |  12 +-
 fs/btrfs/delayed-inode.c          |  59 ++--
 fs/btrfs/delayed-ref.c            |   2 +-
 fs/btrfs/delayed-ref.h            |   2 +-
 fs/btrfs/dev-replace.c            |  30 +-
 fs/btrfs/dir-item.c               | 108 ------
 fs/btrfs/disk-io.c                |  75 ++---
 fs/btrfs/disk-io.h                |   3 +
 fs/btrfs/export.c                 |   5 -
 fs/btrfs/extent-tree.c            |  21 +-
 fs/btrfs/extent_io.c              | 143 ++++----
 fs/btrfs/extent_io.h              |  48 +--
 fs/btrfs/extent_map.c             | 132 ++++++++
 fs/btrfs/extent_map.h             |   3 +-
 fs/btrfs/file.c                   | 391 ++++++++++++++++-----
 fs/btrfs/free-space-cache.c       |  13 +-
 fs/btrfs/inode.c                  | 278 ++++-----------
 fs/btrfs/ioctl.c                  |  44 +--
 fs/btrfs/props.c                  |  13 +-
 fs/btrfs/qgroup.c                 |   3 +-
 fs/btrfs/raid56.c                 | 119 ++++---
 fs/btrfs/ref-verify.c             |   6 +-
 fs/btrfs/root-tree.c              |   7 -
 fs/btrfs/scrub.c                  |  95 +++---
 fs/btrfs/send.c                   |   6 -
 fs/btrfs/super.c                  | 348 ++++++++++---------
 fs/btrfs/sysfs.c                  |   2 +-
 fs/btrfs/tests/btrfs-tests.c      |   3 +
 fs/btrfs/tests/btrfs-tests.h      |   1 +
 fs/btrfs/tests/extent-map-tests.c | 366 ++++++++++++++++++++
 fs/btrfs/tests/inode-tests.c      |  17 +-
 fs/btrfs/transaction.c            |  22 +-
 fs/btrfs/transaction.h            |  11 +-
 fs/btrfs/tree-checker.c           | 142 ++++++++
 fs/btrfs/tree-log.c               |  54 +--
 fs/btrfs/volumes.c                | 689 ++++++++++++++++++++++----------------
 fs/btrfs/volumes.h                |  45 ++-
 fs/btrfs/xattr.c                  |   6 -
 fs/btrfs/zstd.c                   | 132 ++++----
 include/trace/events/btrfs.h      |   1 -
 include/uapi/linux/btrfs.h        |  11 +-
 include/uapi/linux/btrfs_tree.h   |   2 +
 47 files changed, 2267 insertions(+), 1405 deletions(-)
 create mode 100644 fs/btrfs/tests/extent-map-tests.c

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2018-01-29 21:02 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-01-29 21:00 [GIT PULL] Btrfs for 4.16 David Sterba

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.