mirror of https://gitee.com/openkylin/linux.git
btrfs: assert tree mod log lock in __tree_mod_log_insert
The tree is going to be modified so it must be the exclusive lock. Reviewed-by: Nikolay Borisov <nborisov@suse.com> Signed-off-by: David Sterba <dsterba@suse.com>
This commit is contained in:
parent
d23ea3fa7d
commit
73e82fe409
|
@ -376,8 +376,6 @@ void btrfs_put_tree_mod_seq(struct btrfs_fs_info *fs_info,
|
||||||
* The 'start address' is the logical address of the *new* root node
|
* The 'start address' is the logical address of the *new* root node
|
||||||
* for root replace operations, or the logical address of the affected
|
* for root replace operations, or the logical address of the affected
|
||||||
* block for all other operations.
|
* block for all other operations.
|
||||||
*
|
|
||||||
* Note: must be called with write lock for fs_info::tree_mod_log_lock.
|
|
||||||
*/
|
*/
|
||||||
static noinline int
|
static noinline int
|
||||||
__tree_mod_log_insert(struct btrfs_fs_info *fs_info, struct tree_mod_elem *tm)
|
__tree_mod_log_insert(struct btrfs_fs_info *fs_info, struct tree_mod_elem *tm)
|
||||||
|
@ -387,6 +385,8 @@ __tree_mod_log_insert(struct btrfs_fs_info *fs_info, struct tree_mod_elem *tm)
|
||||||
struct rb_node *parent = NULL;
|
struct rb_node *parent = NULL;
|
||||||
struct tree_mod_elem *cur;
|
struct tree_mod_elem *cur;
|
||||||
|
|
||||||
|
lockdep_assert_held_write(&fs_info->tree_mod_log_lock);
|
||||||
|
|
||||||
tm->seq = btrfs_inc_tree_mod_seq(fs_info);
|
tm->seq = btrfs_inc_tree_mod_seq(fs_info);
|
||||||
|
|
||||||
tm_root = &fs_info->tree_mod_log;
|
tm_root = &fs_info->tree_mod_log;
|
||||||
|
|
Loading…
Reference in New Issue