Liu Bo 786fd31f60 Btrfs: adjust outstanding_extents counter properly when dio write is split
[ Upstream commit c2931667c83ded6504b3857e99cc45b21fa496fb ]

Currently how btrfs dio deals with split dio write is not good
enough if dio write is split into several segments due to the
lack of contiguous space, a large dio write like 'dd bs=1G count=1'
can end up with incorrect outstanding_extents counter and endio
would complain loudly with an assertion.

This fixes the problem by compensating the outstanding_extents
counter in inode if a large dio write gets split.

Reported-by: Anand Jain <anand.jain@oracle.com>
Tested-by: Anand Jain <anand.jain@oracle.com>
Signed-off-by: Liu Bo <bo.li.liu@oracle.com>
Signed-off-by: David Sterba <dsterba@suse.com>
Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2017-08-06 19:19:46 -07:00
..
2017-05-14 13:32:54 +02:00
2015-06-30 19:44:57 -07:00
2017-07-27 15:06:09 -07:00
2017-06-29 12:48:51 +02:00
2017-08-06 19:19:42 -07:00
2017-03-12 06:37:28 +01:00
2017-07-15 11:57:46 +02:00
2017-06-14 13:16:24 +02:00
2017-06-14 13:16:24 +02:00
2017-06-14 13:16:24 +02:00
2017-08-06 19:19:42 -07:00
2016-11-10 16:36:34 +01:00
2017-06-14 13:16:24 +02:00
2015-11-13 20:34:33 -05:00
2015-11-23 21:11:08 -05:00
2016-10-07 15:23:47 +02:00
2015-11-10 12:07:22 -08:00
2017-06-14 13:16:24 +02:00
2015-11-16 23:54:45 -08:00
2017-08-06 19:19:42 -07:00
2017-06-14 13:16:24 +02:00
2017-07-15 11:57:44 +02:00
2015-11-16 23:54:45 -08:00
2015-08-12 15:28:45 -05:00
2016-08-10 11:49:27 +02:00
2017-06-14 13:16:24 +02:00
2017-08-06 19:19:42 -07:00
2017-06-14 13:16:24 +02:00