diff options
| author | Linus Torvalds <[email protected]> | 2023-06-26 11:41:38 -0700 | 
|---|---|---|
| committer | Linus Torvalds <[email protected]> | 2023-06-26 11:41:38 -0700 | 
| commit | cc423f6337d0a5ff1906f3b3d465d28c0d1705f6 (patch) | |
| tree | fafc40aa7dc3ecd9800239f647d4fe21ee5db6af /fs/btrfs/dev-replace.c | |
| parent | e940efa936be65866db9ce20798b13fdc6b3891a (diff) | |
| parent | 8a4a0b2a3eaf75ca8854f856ef29690c12b2f531 (diff) | |
Merge tag 'for-6.5-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux
Pull btrfs updates from David Sterba:
 "Mainly core changes, refactoring and optimizations.
  Performance is improved in some areas, overall there may be a
  cumulative improvement due to refactoring that removed lookups in the
  IO path or simplified IO submission tracking.
  Core:
   - submit IO synchronously for fast checksums (crc32c and xxhash),
     remove high priority worker kthread
   - read extent buffer in one go, simplify IO tracking, bio submission
     and locking
   - remove additional tracking of redirtied extent buffers, originally
     added for zoned mode but actually not needed
   - track ordered extent pointer in bio to avoid rbtree lookups during
     IO
   - scrub, use recovered data stripes as cache to avoid unnecessary
     read
   - in zoned mode, optimize logical to physical mappings of extents
   - remove PageError handling, not set by VFS nor writeback
   - cleanups, refactoring, better structure packing
   - lots of error handling improvements
   - more assertions, lockdep annotations
   - print assertion failure with the exact line where it happens
   - tracepoint updates
   - more debugging prints
  Performance:
   - speedup in fsync(), better tracking of inode logged status can
     avoid transaction commit
   - IO path structures track logical offsets in data structures and
     does not need to look it up
  User visible changes:
   - don't commit transaction for every created subvolume, this can
     reduce time when many subvolumes are created in a batch
   - print affected files when relocation fails
   - trigger orphan file cleanup during START_SYNC ioctl
  Notable fixes:
   - fix crash when disabling quota and relocation
   - fix crashes when removing roots from drity list
   - fix transacion abort during relocation when converting from newer
     profiles not covered by fallback
   - in zoned mode, stop reclaiming block groups if filesystem becomes
     read-only
   - fix rare race condition in tree mod log rewind that can miss some
     btree node slots
   - with enabled fsverity, drop up-to-date page bit in case the
     verification fails"
* tag 'for-6.5-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux: (194 commits)
  btrfs: fix race between quota disable and relocation
  btrfs: add comment to struct btrfs_fs_info::dirty_cowonly_roots
  btrfs: fix race when deleting free space root from the dirty cow roots list
  btrfs: fix race when deleting quota root from the dirty cow roots list
  btrfs: tracepoints: also show actual number of the outstanding extents
  btrfs: update i_version in update_dev_time
  btrfs: make btrfs_compressed_bioset static
  btrfs: add handling for RAID1C23/DUP to btrfs_reduce_alloc_profile
  btrfs: scrub: remove btrfs_fs_info::scrub_wr_completion_workers
  btrfs: scrub: remove scrub_ctx::csum_list member
  btrfs: do not BUG_ON after failure to migrate space during truncation
  btrfs: do not BUG_ON on failure to get dir index for new snapshot
  btrfs: send: do not BUG_ON() on unexpected symlink data extent
  btrfs: do not BUG_ON() when dropping inode items from log root
  btrfs: replace BUG_ON() at split_item() with proper error handling
  btrfs: do not BUG_ON() on tree mod log failures at btrfs_del_ptr()
  btrfs: do not BUG_ON() on tree mod log failures at insert_ptr()
  btrfs: do not BUG_ON() on tree mod log failure at insert_new_root()
  btrfs: do not BUG_ON() on tree mod log failures at push_nodes_for_insert()
  btrfs: abort transaction at update_ref_for_cow() when ref count is zero
  ...
Diffstat (limited to 'fs/btrfs/dev-replace.c')
| -rw-r--r-- | fs/btrfs/dev-replace.c | 6 | 
1 files changed, 3 insertions, 3 deletions
| diff --git a/fs/btrfs/dev-replace.c b/fs/btrfs/dev-replace.c index 78696d331639..5e86bea0a950 100644 --- a/fs/btrfs/dev-replace.c +++ b/fs/btrfs/dev-replace.c @@ -41,7 +41,7 @@   *   All new writes will be written to both target and source devices, so even   *   if replace gets canceled, sources device still contains up-to-date data.   * - *   Location:		handle_ops_on_dev_replace() from __btrfs_map_block() + *   Location:		handle_ops_on_dev_replace() from btrfs_map_block()   *   Start:		btrfs_dev_replace_start()   *   End:		btrfs_dev_replace_finishing()   *   Content:		Latest data/metadata @@ -795,8 +795,8 @@ static int btrfs_set_target_alloc_state(struct btrfs_device *srcdev,  	while (!find_first_extent_bit(&srcdev->alloc_state, start,  				      &found_start, &found_end,  				      CHUNK_ALLOCATED, &cached_state)) { -		ret = set_extent_bits(&tgtdev->alloc_state, found_start, -				      found_end, CHUNK_ALLOCATED); +		ret = set_extent_bit(&tgtdev->alloc_state, found_start, +				     found_end, CHUNK_ALLOCATED, NULL);  		if (ret)  			break;  		start = found_end + 1; |