Files
linux/fs/btrfs
Liu Bo 3fd6a73da1 Btrfs: fix unexpected cow in run_delalloc_nocow
commit 5811375325 upstream.

Fstests generic/475 provides a way to fail metadata reads while
checking if checksum exists for the inode inside run_delalloc_nocow(),
and csum_exist_in_range() interprets error (-EIO) as inode having
checksum and makes its caller enter the cow path.

In case of free space inode, this ends up with a warning in
cow_file_range().

The same problem applies to btrfs_cross_ref_exist() since it may also
read metadata in between.

With this, run_delalloc_nocow() bails out when errors occur at the two
places.

cc: <stable@vger.kernel.org> v2.6.28+
Fixes: 17d217fe97 ("Btrfs: fix nodatasum handling in balancing code")
Signed-off-by: Liu Bo <bo.li.liu@oracle.com>
Signed-off-by: David Sterba <dsterba@suse.com>
Signed-off-by: Sudip Mukherjee <sudipm.mukherjee@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2018-07-03 11:23:11 +02:00
..
2016-09-26 18:08:44 +02:00
2018-06-13 16:16:41 +02:00
2015-10-06 06:55:23 -07:00
2016-07-26 13:52:25 +02:00
2016-08-03 14:08:37 -07:00
2018-05-30 07:50:21 +02:00
2016-09-26 18:08:44 +02:00
2018-06-26 08:08:06 +08:00
2016-09-26 18:08:44 +02:00
2018-06-26 08:08:06 +08:00