Commit 044c6449 authored by Brian Foster's avatar Brian Foster Committed by Darrick J. Wong
Browse files

xfs: drop unused ioend private merge and setfilesize code



XFS no longer attaches anthing to ioend->io_private. Remove the
unnecessary ->io_private merging code. This removes the only remaining
user of xfs_setfilesize_ioend() so remove that function as well.

Signed-off-by: default avatarBrian Foster <bfoster@redhat.com>
Reviewed-by: default avatarChristoph Hellwig <hch@lst.de>
Reviewed-by: default avatarDarrick J. Wong <djwong@kernel.org>
Signed-off-by: default avatarDarrick J. Wong <djwong@kernel.org>
parent 7adb8f14
Loading
Loading
Loading
Loading
+1 −45
Original line number Diff line number Diff line
@@ -85,31 +85,6 @@ xfs_setfilesize(
	return __xfs_setfilesize(ip, tp, offset, size);
}

STATIC int
xfs_setfilesize_ioend(
	struct iomap_ioend	*ioend,
	int			error)
{
	struct xfs_inode	*ip = XFS_I(ioend->io_inode);
	struct xfs_trans	*tp = ioend->io_private;

	/*
	 * The transaction may have been allocated in the I/O submission thread,
	 * thus we need to mark ourselves as being in a transaction manually.
	 * Similarly for freeze protection.
	 */
	xfs_trans_set_context(tp);
	__sb_writers_acquired(VFS_I(ip)->i_sb, SB_FREEZE_FS);

	/* we abort the update if there was an IO error */
	if (error) {
		xfs_trans_cancel(tp);
		return error;
	}

	return __xfs_setfilesize(ip, tp, ioend->io_offset, ioend->io_size);
}

/*
 * IO write completion.
 */
@@ -163,25 +138,6 @@ xfs_end_ioend(
	memalloc_nofs_restore(nofs_flag);
}

/*
 * If the to be merged ioend has a preallocated transaction for file
 * size updates we need to ensure the ioend it is merged into also
 * has one.  If it already has one we can simply cancel the transaction
 * as it is guaranteed to be clean.
 */
static void
xfs_ioend_merge_private(
	struct iomap_ioend	*ioend,
	struct iomap_ioend	*next)
{
	if (!ioend->io_private) {
		ioend->io_private = next->io_private;
		next->io_private = NULL;
	} else {
		xfs_setfilesize_ioend(next, -ECANCELED);
	}
}

/* Finish all pending io completions. */
void
xfs_end_io(
@@ -201,7 +157,7 @@ xfs_end_io(
	while ((ioend = list_first_entry_or_null(&tmp, struct iomap_ioend,
			io_list))) {
		list_del_init(&ioend->io_list);
		iomap_ioend_try_merge(ioend, &tmp, xfs_ioend_merge_private);
		iomap_ioend_try_merge(ioend, &tmp, NULL);
		xfs_end_ioend(ioend);
	}
}