diff --git a/fs/btrfs/inode.c b/fs/btrfs/inode.c index 9ce620085467..61b5594c4206 100644 --- a/fs/btrfs/inode.c +++ b/fs/btrfs/inode.c @@ -2293,7 +2293,7 @@ static noinline int run_delalloc_nocow(struct btrfs_inode *inode, static bool should_nocow(struct btrfs_inode *inode, u64 start, u64 end) { if (inode->flags & (BTRFS_INODE_NODATACOW | BTRFS_INODE_PREALLOC)) { - if (inode->defrag_bytes && + if (data_race(inode->defrag_bytes) && btrfs_test_range_bit_exists(&inode->io_tree, start, end, EXTENT_DEFRAG)) return false; return true;