Darrick J. Wong 363e59baa4 xfs: don't be so eager to clear the cowblocks tag on truncate
Currently, xfs_itruncate_extents clears the cowblocks tag if i_cnextents
is zero.  This is wrong, since i_cnextents only tracks real extents in
the CoW fork, which means that we could have some delayed CoW
reservations still in there that will now never get cleaned.

Fix a further bug where we /don't/ clear the reflink iflag if there are
any attribute blocks -- really, it's only safe to clear the reflink flag
if there are no data fork extents and no cow fork extents.

Found by adding clonerange to fsstress in xfs/017.

Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
Reviewed-by: Dave Chinner <dchinner@redhat.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
2017-12-21 08:47:28 -08:00
..
2017-11-16 11:41:22 -08:00
2017-11-15 18:21:06 -08:00
2017-11-15 18:21:04 -08:00
2017-08-24 13:23:03 -07:00
2017-11-14 14:44:04 -08:00
2017-11-17 09:51:57 -08:00
2017-11-16 12:10:21 -08:00
2017-11-16 11:41:22 -08:00
2017-11-17 09:51:57 -08:00
2017-11-14 13:53:18 -08:00
2017-11-18 11:22:04 -08:00
2017-11-17 14:18:00 -08:00
2017-11-18 11:22:04 -08:00
2017-09-04 19:05:15 -04:00
2017-11-17 09:51:57 -08:00
2017-11-15 18:21:04 -08:00
2017-06-22 11:44:55 -04:00