mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
synced 2025-01-06 14:05:39 +00:00
btrfs: don't split NOCOW extent_maps in btrfs_extract_ordered_extent
NOCOW writes just overwrite an existing extent map, which thus should not be split in btrfs_extract_ordered_extent. The NOCOW case can't currently happen as btrfs_extract_ordered_extent is only used on zoned devices that do not support NOCOW writes, but this will change soon. Reviewed-by: Josef Bacik <josef@toxicpanda.com> Tested-by: Johannes Thumshirn <johannes.thumshirn@wdc.com> Signed-off-by: Boris Burkov <boris@bur.io> [ hch: split from a larger patch, wrote a commit log ] Signed-off-by: Christoph Hellwig <hch@lst.de> Signed-off-by: David Sterba <dsterba@suse.com>
This commit is contained in:
parent
7edd339c8a
commit
f0f5329a00
@ -2621,6 +2621,14 @@ int btrfs_extract_ordered_extent(struct btrfs_bio *bbio,
|
||||
ret = btrfs_split_ordered_extent(ordered, len);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
/*
|
||||
* Don't split the extent_map for NOCOW extents, as we're writing into
|
||||
* a pre-existing one.
|
||||
*/
|
||||
if (test_bit(BTRFS_ORDERED_NOCOW, &ordered->flags))
|
||||
return 0;
|
||||
|
||||
return split_extent_map(inode, bbio->file_offset, ordered_len, len);
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user