Skip to content

Commit 2d1373e

Browse files
committed
Merge tag 'for-7.0-rc4-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux
Pull btrfs fixes from David Sterba: - fix logging of new dentries when logging parent directory and there are conflicting inodes (e.g. deleted directory) - avoid taking big device lock for zone setup, this is not necessary during mount - tune message verbosity when auto-reclaiming zones when low on space - fix slightly misleading message of root item check * tag 'for-7.0-rc4-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux: btrfs: tree-checker: fix misleading root drop_level error message btrfs: log new dentries when logging parent dir of a conflicting inode btrfs: don't take device_list_mutex when querying zone info btrfs: pass 'verbose' parameter to btrfs_relocate_block_group
2 parents f338e77 + fc1cd1f commit 2d1373e

4 files changed

Lines changed: 12 additions & 4 deletions

File tree

fs/btrfs/tree-checker.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1284,7 +1284,7 @@ static int check_root_item(struct extent_buffer *leaf, struct btrfs_key *key,
12841284
}
12851285
if (unlikely(btrfs_root_drop_level(&ri) >= BTRFS_MAX_LEVEL)) {
12861286
generic_err(leaf, slot,
1287-
"invalid root level, have %u expect [0, %u]",
1287+
"invalid root drop_level, have %u expect [0, %u]",
12881288
btrfs_root_drop_level(&ri), BTRFS_MAX_LEVEL - 1);
12891289
return -EUCLEAN;
12901290
}

fs/btrfs/tree-log.c

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6195,6 +6195,7 @@ static int log_conflicting_inodes(struct btrfs_trans_handle *trans,
61956195
struct btrfs_root *root,
61966196
struct btrfs_log_ctx *ctx)
61976197
{
6198+
const bool orig_log_new_dentries = ctx->log_new_dentries;
61986199
int ret = 0;
61996200

62006201
/*
@@ -6256,7 +6257,11 @@ static int log_conflicting_inodes(struct btrfs_trans_handle *trans,
62566257
* dir index key range logged for the directory. So we
62576258
* must make sure the deletion is recorded.
62586259
*/
6260+
ctx->log_new_dentries = false;
62596261
ret = btrfs_log_inode(trans, inode, LOG_INODE_ALL, ctx);
6262+
if (!ret && ctx->log_new_dentries)
6263+
ret = log_new_dir_dentries(trans, inode, ctx);
6264+
62606265
btrfs_add_delayed_iput(inode);
62616266
if (ret)
62626267
break;
@@ -6291,6 +6296,7 @@ static int log_conflicting_inodes(struct btrfs_trans_handle *trans,
62916296
break;
62926297
}
62936298

6299+
ctx->log_new_dentries = orig_log_new_dentries;
62946300
ctx->logging_conflict_inodes = false;
62956301
if (ret)
62966302
free_conflicting_inodes(ctx);

fs/btrfs/volumes.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3587,7 +3587,7 @@ int btrfs_relocate_chunk(struct btrfs_fs_info *fs_info, u64 chunk_offset, bool v
35873587

35883588
/* step one, relocate all the extents inside this chunk */
35893589
btrfs_scrub_pause(fs_info);
3590-
ret = btrfs_relocate_block_group(fs_info, chunk_offset, true);
3590+
ret = btrfs_relocate_block_group(fs_info, chunk_offset, verbose);
35913591
btrfs_scrub_continue(fs_info);
35923592
if (ret) {
35933593
/*

fs/btrfs/zoned.c

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -337,7 +337,10 @@ int btrfs_get_dev_zone_info_all_devices(struct btrfs_fs_info *fs_info)
337337
if (!btrfs_fs_incompat(fs_info, ZONED))
338338
return 0;
339339

340-
mutex_lock(&fs_devices->device_list_mutex);
340+
/*
341+
* No need to take the device_list mutex here, we're still in the mount
342+
* path and devices cannot be added to or removed from the list yet.
343+
*/
341344
list_for_each_entry(device, &fs_devices->devices, dev_list) {
342345
/* We can skip reading of zone info for missing devices */
343346
if (!device->bdev)
@@ -347,7 +350,6 @@ int btrfs_get_dev_zone_info_all_devices(struct btrfs_fs_info *fs_info)
347350
if (ret)
348351
break;
349352
}
350-
mutex_unlock(&fs_devices->device_list_mutex);
351353

352354
return ret;
353355
}

0 commit comments

Comments
 (0)