diff options
author | Christoph Hellwig <hch@lst.de> | 2023-05-03 17:24:29 +0200 |
---|---|---|
committer | David Sterba <dsterba@suse.com> | 2023-05-15 13:04:47 +0200 |
commit | 04e64e15eefd71f5de8bded80e2bd5f3b26dccc3 (patch) | |
tree | 8cfe54ae93e6bca5993ad50e00edc803e2df2d9f /fs/btrfs | |
parent | cc51fffdc0ea68ebb6487e393d84810720dee3e2 (diff) | |
download | linux-next-04e64e15eefd71f5de8bded80e2bd5f3b26dccc3.tar.gz |
btrfs: do not try to unlock the extent for non-subpage metadata reads
Only subpage metadata reads lock the extent. Don't try to unlock it and
waste cycles in the extent tree lookup for PAGE_SIZE or larger metadata.
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Johannes Thumshirn <johannes.thumshirn@wdc.com>
Signed-off-by: David Sterba <dsterba@suse.com>
Diffstat (limited to 'fs/btrfs')
-rw-r--r-- | fs/btrfs/extent_io.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/fs/btrfs/extent_io.c b/fs/btrfs/extent_io.c index 4581ee5a0835..e35dfae57e50 100644 --- a/fs/btrfs/extent_io.c +++ b/fs/btrfs/extent_io.c @@ -4208,8 +4208,10 @@ static void extent_buffer_read_end_io(struct btrfs_bio *bbio) bio_offset += bvec->bv_len; } - unlock_extent(&bbio->inode->io_tree, eb->start, - eb->start + bio_offset - 1, NULL); + if (eb->fs_info->nodesize < PAGE_SIZE) { + unlock_extent(&bbio->inode->io_tree, eb->start, + eb->start + bio_offset - 1, NULL); + } free_extent_buffer(eb); bio_put(&bbio->bio); |