There is no reason not to punch out stale delalloc blocks for zeroing
operations, as they otherwise behave exactly like normal writes.
Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Darrick J. Wong <darrick.wong@oracle.com>
Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
        unsigned                flags,
        struct iomap            *iomap)
 {
-       if ((flags & IOMAP_WRITE) && iomap->type == IOMAP_DELALLOC)
+       if ((flags & (IOMAP_WRITE | IOMAP_ZERO)) &&
+           iomap->type == IOMAP_DELALLOC)
                return xfs_file_iomap_end_delalloc(XFS_I(inode), offset,
                                length, written, iomap);
        return 0;