diff options
| author | Qu Wenruo <wqu@suse.com> | 2025-10-24 08:32:41 +1030 |
|---|---|---|
| committer | David Sterba <dsterba@suse.com> | 2025-11-24 22:42:21 +0100 |
| commit | 39bc80216a3656d54d65cdda994f406aeb27c3da (patch) | |
| tree | 72f2e839011e667d825f8fc430a0fa318059b2d1 /fs/btrfs/extent_io.c | |
| parent | 4bbdce84175db7ff0dfaa82e960c7488c6cb0bcf (diff) | |
btrfs: relax btrfs_inode::ordered_tree_lock IRQ locking context
We used IRQ version of spinlock for ordered_tree_lock, as
btrfs_finish_ordered_extent() can be called in end_bbio_data_write()
which was in IRQ context.
However since we're moving all the btrfs_bio::end_io() calls into task
context, there is no more need to support IRQ context thus we can relax
to regular spin_lock()/spin_unlock() for btrfs_inode::ordered_tree_lock.
Signed-off-by: Qu Wenruo <wqu@suse.com>
Reviewed-by: David Sterba <dsterba@suse.com>
Signed-off-by: David Sterba <dsterba@suse.com>
Diffstat (limited to 'fs/btrfs/extent_io.c')
| -rw-r--r-- | fs/btrfs/extent_io.c | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/fs/btrfs/extent_io.c b/fs/btrfs/extent_io.c index b25a2b45047e..2d32dfc34ae3 100644 --- a/fs/btrfs/extent_io.c +++ b/fs/btrfs/extent_io.c @@ -1726,7 +1726,6 @@ static noinline_for_stack int extent_writepage_io(struct btrfs_inode *inode, if (cur >= i_size) { struct btrfs_ordered_extent *ordered; - unsigned long flags; ordered = btrfs_lookup_first_ordered_range(inode, cur, folio_end - cur); @@ -1735,11 +1734,11 @@ static noinline_for_stack int extent_writepage_io(struct btrfs_inode *inode, * there must be an ordered extent. */ ASSERT(ordered != NULL); - spin_lock_irqsave(&inode->ordered_tree_lock, flags); + spin_lock(&inode->ordered_tree_lock); set_bit(BTRFS_ORDERED_TRUNCATED, &ordered->flags); ordered->truncated_len = min(ordered->truncated_len, cur - ordered->file_offset); - spin_unlock_irqrestore(&inode->ordered_tree_lock, flags); + spin_unlock(&inode->ordered_tree_lock); btrfs_put_ordered_extent(ordered); btrfs_mark_ordered_io_finished(inode, folio, cur, |
