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

Commit e5846fc6 authored by Chris Mason's avatar Chris Mason
Browse files

Btrfs: Add properly locking around add_root_to_dirty_list



add_root_to_dirty_list happens once at the very beginning of the
transaction, but it is still racey.

Signed-off-by: default avatarChris Mason <chris.mason@oracle.com>
parent dc7fdde3
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -220,10 +220,12 @@ struct extent_buffer *btrfs_read_lock_root_node(struct btrfs_root *root)
 */
static void add_root_to_dirty_list(struct btrfs_root *root)
{
	spin_lock(&root->fs_info->trans_lock);
	if (root->track_dirty && list_empty(&root->dirty_list)) {
		list_add(&root->dirty_list,
			 &root->fs_info->dirty_cowonly_roots);
	}
	spin_unlock(&root->fs_info->trans_lock);
}

/*