btrfs: add lockdep assertion to remaining delalloc callbacks
The merge and split callbacks for an inode's io tree are supposed to be called while the io tree's spinlock is being held, so that the given extent_state records are stable, not modified or freed while the callbacks are using them. So add lockdep assertions in the callbacks. Reviewed-by: Boris Burkov <boris@bur.io> Reviewed-by: Qu Wenruo <wqu@suse.com> Signed-off-by: Filipe Manana <fdmanana@suse.com> Reviewed-by: David Sterba <dsterba@suse.com> Signed-off-by: David Sterba <dsterba@suse.com>
This commit is contained in:
parent
bdc0f89e06
commit
b5d5639259
@ -2300,6 +2300,8 @@ void btrfs_split_delalloc_extent(struct btrfs_inode *inode,
|
||||
struct btrfs_fs_info *fs_info = inode->root->fs_info;
|
||||
u64 size;
|
||||
|
||||
lockdep_assert_held(&inode->io_tree.lock);
|
||||
|
||||
/* not delalloc, ignore it */
|
||||
if (!(orig->state & EXTENT_DELALLOC))
|
||||
return;
|
||||
@ -2338,6 +2340,8 @@ void btrfs_merge_delalloc_extent(struct btrfs_inode *inode, struct extent_state
|
||||
u64 new_size, old_size;
|
||||
u32 num_extents;
|
||||
|
||||
lockdep_assert_held(&inode->io_tree.lock);
|
||||
|
||||
/* not delalloc, ignore it */
|
||||
if (!(other->state & EXTENT_DELALLOC))
|
||||
return;
|
||||
|
Loading…
x
Reference in New Issue
Block a user