Skip to content

Commit

Permalink
xfs: turn io_append_trans into an io_private void pointer
Browse files Browse the repository at this point in the history
In preparation for moving the ioend structure to common code we need
to get rid of the xfs-specific xfs_trans type.  Just make it a file
system private void pointer instead.

Signed-off-by: Christoph Hellwig <[email protected]>
Reviewed-by: Dave Chinner <[email protected]>
Reviewed-by: Darrick J. Wong <[email protected]>
Signed-off-by: Darrick J. Wong <[email protected]>
  • Loading branch information
Christoph Hellwig authored and djwong committed Oct 21, 2019
1 parent 433dad9 commit 5653017
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 14 deletions.
26 changes: 13 additions & 13 deletions fs/xfs/xfs_aops.c
Original file line number Diff line number Diff line change
Expand Up @@ -153,7 +153,7 @@ xfs_setfilesize_trans_alloc(
if (error)
return error;

ioend->io_append_trans = tp;
ioend->io_private = tp;

/*
* We may pass freeze protection with a transaction. So tell lockdep
Expand Down Expand Up @@ -220,7 +220,7 @@ xfs_setfilesize_ioend(
int error)
{
struct xfs_inode *ip = XFS_I(ioend->io_inode);
struct xfs_trans *tp = ioend->io_append_trans;
struct xfs_trans *tp = ioend->io_private;

/*
* The transaction may have been allocated in the I/O submission thread,
Expand Down Expand Up @@ -285,10 +285,10 @@ xfs_end_ioend(
else if (ioend->io_type == IOMAP_UNWRITTEN)
error = xfs_iomap_write_unwritten(ip, offset, size, false);
else
ASSERT(!xfs_ioend_is_append(ioend) || ioend->io_append_trans);
ASSERT(!xfs_ioend_is_append(ioend) || ioend->io_private);

done:
if (ioend->io_append_trans)
if (ioend->io_private)
error = xfs_setfilesize_ioend(ioend, error);
xfs_destroy_ioends(ioend, error);
memalloc_nofs_restore(nofs_flag);
Expand Down Expand Up @@ -321,13 +321,13 @@ xfs_ioend_can_merge(
* as it is guaranteed to be clean.
*/
static void
xfs_ioend_merge_append_transactions(
xfs_ioend_merge_private(
struct xfs_ioend *ioend,
struct xfs_ioend *next)
{
if (!ioend->io_append_trans) {
ioend->io_append_trans = next->io_append_trans;
next->io_append_trans = NULL;
if (!ioend->io_private) {
ioend->io_private = next->io_private;
next->io_private = NULL;
} else {
xfs_setfilesize_ioend(next, -ECANCELED);
}
Expand All @@ -349,8 +349,8 @@ xfs_ioend_try_merge(
break;
list_move_tail(&next->io_list, &ioend->io_list);
ioend->io_size += next->io_size;
if (next->io_append_trans)
xfs_ioend_merge_append_transactions(ioend, next);
if (next->io_private)
xfs_ioend_merge_private(ioend, next);
}
}

Expand Down Expand Up @@ -415,7 +415,7 @@ xfs_end_bio(

if (ioend->io_fork == XFS_COW_FORK ||
ioend->io_type == IOMAP_UNWRITTEN ||
ioend->io_append_trans != NULL) {
ioend->io_private) {
spin_lock_irqsave(&ip->i_ioend_lock, flags);
if (list_empty(&ip->i_ioend_list))
WARN_ON_ONCE(!queue_work(mp->m_unwritten_workqueue,
Expand Down Expand Up @@ -680,7 +680,7 @@ xfs_submit_ioend(
(ioend->io_fork == XFS_COW_FORK ||
ioend->io_type != IOMAP_UNWRITTEN) &&
xfs_ioend_is_append(ioend) &&
!ioend->io_append_trans)
!ioend->io_private)
status = xfs_setfilesize_trans_alloc(ioend);

memalloc_nofs_restore(nofs_flag);
Expand Down Expand Up @@ -729,7 +729,7 @@ xfs_alloc_ioend(
ioend->io_inode = inode;
ioend->io_size = 0;
ioend->io_offset = offset;
ioend->io_append_trans = NULL;
ioend->io_private = NULL;
ioend->io_bio = bio;
return ioend;
}
Expand Down
2 changes: 1 addition & 1 deletion fs/xfs/xfs_aops.h
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ struct xfs_ioend {
struct inode *io_inode; /* file being written to */
size_t io_size; /* size of the extent */
xfs_off_t io_offset; /* offset in the file */
struct xfs_trans *io_append_trans;/* xact. for size update */
void *io_private; /* file system private data */
struct bio *io_bio; /* bio being built */
struct bio io_inline_bio; /* MUST BE LAST! */
};
Expand Down

0 comments on commit 5653017

Please sign in to comment.