Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 7c7e82a7 authored by Chris Mason's avatar Chris Mason
Browse files

Btrfs: check for a null fs root when writing to the backup root log



During log replay, can commit the transaction before the fs_root
pointers are setup, so we have to make sure they are not null before
trying to use them.

Signed-off-by: default avatarChris Mason <chris.mason@oracle.com>
parent d43317dc
Loading
Loading
Loading
Loading
+10 −3
Original line number Diff line number Diff line
@@ -1754,11 +1754,18 @@ static void backup_super_roots(struct btrfs_fs_info *info)
	btrfs_set_backup_extent_root_level(root_backup,
			       btrfs_header_level(info->extent_root->node));

	btrfs_set_backup_fs_root(root_backup, info->fs_root->node->start);
	/*
	 * we might commit during log recovery, which happens before we set
	 * the fs_root.  Make sure it is valid before we fill it in.
	 */
	if (info->fs_root && info->fs_root->node) {
		btrfs_set_backup_fs_root(root_backup,
					 info->fs_root->node->start);
		btrfs_set_backup_fs_root_gen(root_backup,
			       btrfs_header_generation(info->fs_root->node));
		btrfs_set_backup_fs_root_level(root_backup,
			       btrfs_header_level(info->fs_root->node));
	}

	btrfs_set_backup_dev_root(root_backup, info->dev_root->node->start);
	btrfs_set_backup_dev_root_gen(root_backup,