summaryrefslogtreecommitdiff
path: root/fs/btrfs/dev-replace.c
diff options
context:
space:
mode:
authorChristoph Hellwig <hch@lst.de>2023-05-24 18:03:14 +0300
committerDavid Sterba <dsterba@suse.com>2023-06-19 14:59:33 +0300
commit816f589b8d43f7c258b0c10a5ce29daf01614651 (patch)
tree6a7df70ef3ac6ba6f907b705d51d3104487056dc /fs/btrfs/dev-replace.c
parent53d9981ca20efcded0f6cf6b480d713f490ca9f1 (diff)
downloadlinux-816f589b8d43f7c258b0c10a5ce29daf01614651.tar.xz
btrfs: atomically insert the new extent in btrfs_split_ordered_extent
Currently there is a small race window in btrfs_split_ordered_extent, where the reduced old extent can be looked up on the per-inode rbtree or the per-root list while the newly split out one isn't visible yet. Fix this by open coding btrfs_alloc_ordered_extent in btrfs_split_ordered_extent, and holding the tree lock and root->ordered_extent_lock over the entire tree and extent manipulation. Note that this introduces new lock ordering because previously ordered_extent_lock was never held over the tree lock. Reviewed-by: Johannes Thumshirn <johannes.thumshirn@wdc.com> Signed-off-by: Christoph Hellwig <hch@lst.de> Reviewed-by: David Sterba <dsterba@suse.com> Signed-off-by: David Sterba <dsterba@suse.com>
Diffstat (limited to 'fs/btrfs/dev-replace.c')
0 files changed, 0 insertions, 0 deletions