Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit c4feb0b1 authored by Christoph Hellwig's avatar Christoph Hellwig Committed by Darrick J. Wong
Browse files

xfs: report IOMAP_F_SHARED from xfs_file_iomap_begin_delay



No user of it in the iomap code at the moment, but we should not
actively report wrong information if we can trivially get it right.

Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
Reviewed-by: default avatarDarrick J. Wong <darrick.wong@oracle.com>
Signed-off-by: default avatarDarrick J. Wong <darrick.wong@oracle.com>
parent 26b91c72
Loading
Loading
Loading
Loading
+4 −3
Original line number Diff line number Diff line
@@ -541,7 +541,7 @@ xfs_file_iomap_begin_delay(
	struct xfs_bmbt_irec	imap, cmap;
	struct xfs_iext_cursor	icur, ccur;
	xfs_fsblock_t		prealloc_blocks = 0;
	bool			eof = false, cow_eof = false, shared;
	bool			eof = false, cow_eof = false, shared = false;
	int			whichfork = XFS_DATA_FORK;
	int			error = 0;

@@ -710,13 +710,14 @@ xfs_file_iomap_begin_delay(
		if (imap.br_startoff > offset_fsb) {
			xfs_trim_extent(&cmap, offset_fsb,
					imap.br_startoff - offset_fsb);
			error = xfs_bmbt_to_iomap(ip, iomap, &cmap, false);
			error = xfs_bmbt_to_iomap(ip, iomap, &cmap, true);
			goto out_unlock;
		}
		/* ensure we only report blocks we have a reservation for */
		xfs_trim_extent(&imap, cmap.br_startoff, cmap.br_blockcount);
		shared = true;
	}
	error = xfs_bmbt_to_iomap(ip, iomap, &imap, false);
	error = xfs_bmbt_to_iomap(ip, iomap, &imap, shared);
out_unlock:
	xfs_iunlock(ip, XFS_ILOCK_EXCL);
	return error;