diff options
author | Christoph Hellwig <[email protected]> | 2023-05-24 17:03:14 +0200 |
---|---|---|
committer | David Sterba <[email protected]> | 2023-06-19 13:59:33 +0200 |
commit | 816f589b8d43f7c258b0c10a5ce29daf01614651 (patch) | |
tree | 6a7df70ef3ac6ba6f907b705d51d3104487056dc /rust/helpers.c | |
parent | 53d9981ca20efcded0f6cf6b480d713f490ca9f1 (diff) |
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 <[email protected]>
Signed-off-by: Christoph Hellwig <[email protected]>
Reviewed-by: David Sterba <[email protected]>
Signed-off-by: David Sterba <[email protected]>
Diffstat (limited to 'rust/helpers.c')
0 files changed, 0 insertions, 0 deletions