mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-11 21:38:32 +08:00
xfs: use ->t_dfops for collapse/insert range operations
Use ->t_dfops for the collapse and insert range transactions. These are the only callers of the respective bmap helpers, so replace the unnecessary dfops parameters with direct accesses to ->t_dfops. Signed-off-by: Brian Foster <bfoster@redhat.com> Reviewed-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>
This commit is contained in:
parent
3e3673e302
commit
f4a9cf97fa
@ -5683,8 +5683,7 @@ xfs_bmap_collapse_extents(
|
|||||||
xfs_fileoff_t *next_fsb,
|
xfs_fileoff_t *next_fsb,
|
||||||
xfs_fileoff_t offset_shift_fsb,
|
xfs_fileoff_t offset_shift_fsb,
|
||||||
bool *done,
|
bool *done,
|
||||||
xfs_fsblock_t *firstblock,
|
xfs_fsblock_t *firstblock)
|
||||||
struct xfs_defer_ops *dfops)
|
|
||||||
{
|
{
|
||||||
int whichfork = XFS_DATA_FORK;
|
int whichfork = XFS_DATA_FORK;
|
||||||
struct xfs_mount *mp = ip->i_mount;
|
struct xfs_mount *mp = ip->i_mount;
|
||||||
@ -5718,7 +5717,7 @@ xfs_bmap_collapse_extents(
|
|||||||
if (ifp->if_flags & XFS_IFBROOT) {
|
if (ifp->if_flags & XFS_IFBROOT) {
|
||||||
cur = xfs_bmbt_init_cursor(mp, tp, ip, whichfork);
|
cur = xfs_bmbt_init_cursor(mp, tp, ip, whichfork);
|
||||||
cur->bc_private.b.firstblock = *firstblock;
|
cur->bc_private.b.firstblock = *firstblock;
|
||||||
cur->bc_private.b.dfops = dfops;
|
cur->bc_private.b.dfops = tp->t_dfops;
|
||||||
cur->bc_private.b.flags = 0;
|
cur->bc_private.b.flags = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -5739,7 +5738,7 @@ xfs_bmap_collapse_extents(
|
|||||||
if (xfs_bmse_can_merge(&prev, &got, offset_shift_fsb)) {
|
if (xfs_bmse_can_merge(&prev, &got, offset_shift_fsb)) {
|
||||||
error = xfs_bmse_merge(ip, whichfork, offset_shift_fsb,
|
error = xfs_bmse_merge(ip, whichfork, offset_shift_fsb,
|
||||||
&icur, &got, &prev, cur, &logflags,
|
&icur, &got, &prev, cur, &logflags,
|
||||||
dfops);
|
tp->t_dfops);
|
||||||
if (error)
|
if (error)
|
||||||
goto del_cursor;
|
goto del_cursor;
|
||||||
goto done;
|
goto done;
|
||||||
@ -5752,7 +5751,7 @@ xfs_bmap_collapse_extents(
|
|||||||
}
|
}
|
||||||
|
|
||||||
error = xfs_bmap_shift_update_extent(ip, whichfork, &icur, &got, cur,
|
error = xfs_bmap_shift_update_extent(ip, whichfork, &icur, &got, cur,
|
||||||
&logflags, dfops, new_startoff);
|
&logflags, tp->t_dfops, new_startoff);
|
||||||
if (error)
|
if (error)
|
||||||
goto del_cursor;
|
goto del_cursor;
|
||||||
|
|
||||||
@ -5806,8 +5805,7 @@ xfs_bmap_insert_extents(
|
|||||||
xfs_fileoff_t offset_shift_fsb,
|
xfs_fileoff_t offset_shift_fsb,
|
||||||
bool *done,
|
bool *done,
|
||||||
xfs_fileoff_t stop_fsb,
|
xfs_fileoff_t stop_fsb,
|
||||||
xfs_fsblock_t *firstblock,
|
xfs_fsblock_t *firstblock)
|
||||||
struct xfs_defer_ops *dfops)
|
|
||||||
{
|
{
|
||||||
int whichfork = XFS_DATA_FORK;
|
int whichfork = XFS_DATA_FORK;
|
||||||
struct xfs_mount *mp = ip->i_mount;
|
struct xfs_mount *mp = ip->i_mount;
|
||||||
@ -5841,7 +5839,7 @@ xfs_bmap_insert_extents(
|
|||||||
if (ifp->if_flags & XFS_IFBROOT) {
|
if (ifp->if_flags & XFS_IFBROOT) {
|
||||||
cur = xfs_bmbt_init_cursor(mp, tp, ip, whichfork);
|
cur = xfs_bmbt_init_cursor(mp, tp, ip, whichfork);
|
||||||
cur->bc_private.b.firstblock = *firstblock;
|
cur->bc_private.b.firstblock = *firstblock;
|
||||||
cur->bc_private.b.dfops = dfops;
|
cur->bc_private.b.dfops = tp->t_dfops;
|
||||||
cur->bc_private.b.flags = 0;
|
cur->bc_private.b.flags = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -5884,7 +5882,7 @@ xfs_bmap_insert_extents(
|
|||||||
}
|
}
|
||||||
|
|
||||||
error = xfs_bmap_shift_update_extent(ip, whichfork, &icur, &got, cur,
|
error = xfs_bmap_shift_update_extent(ip, whichfork, &icur, &got, cur,
|
||||||
&logflags, dfops, new_startoff);
|
&logflags, tp->t_dfops, new_startoff);
|
||||||
if (error)
|
if (error)
|
||||||
goto del_cursor;
|
goto del_cursor;
|
||||||
|
|
||||||
|
@ -219,14 +219,12 @@ void xfs_bmap_del_extent_cow(struct xfs_inode *ip,
|
|||||||
uint xfs_default_attroffset(struct xfs_inode *ip);
|
uint xfs_default_attroffset(struct xfs_inode *ip);
|
||||||
int xfs_bmap_collapse_extents(struct xfs_trans *tp, struct xfs_inode *ip,
|
int xfs_bmap_collapse_extents(struct xfs_trans *tp, struct xfs_inode *ip,
|
||||||
xfs_fileoff_t *next_fsb, xfs_fileoff_t offset_shift_fsb,
|
xfs_fileoff_t *next_fsb, xfs_fileoff_t offset_shift_fsb,
|
||||||
bool *done, xfs_fsblock_t *firstblock,
|
bool *done, xfs_fsblock_t *firstblock);
|
||||||
struct xfs_defer_ops *dfops);
|
|
||||||
int xfs_bmap_can_insert_extents(struct xfs_inode *ip, xfs_fileoff_t off,
|
int xfs_bmap_can_insert_extents(struct xfs_inode *ip, xfs_fileoff_t off,
|
||||||
xfs_fileoff_t shift);
|
xfs_fileoff_t shift);
|
||||||
int xfs_bmap_insert_extents(struct xfs_trans *tp, struct xfs_inode *ip,
|
int xfs_bmap_insert_extents(struct xfs_trans *tp, struct xfs_inode *ip,
|
||||||
xfs_fileoff_t *next_fsb, xfs_fileoff_t offset_shift_fsb,
|
xfs_fileoff_t *next_fsb, xfs_fileoff_t offset_shift_fsb,
|
||||||
bool *done, xfs_fileoff_t stop_fsb, xfs_fsblock_t *firstblock,
|
bool *done, xfs_fileoff_t stop_fsb, xfs_fsblock_t *firstblock);
|
||||||
struct xfs_defer_ops *dfops);
|
|
||||||
int xfs_bmap_split_extent(struct xfs_inode *ip, xfs_fileoff_t split_offset);
|
int xfs_bmap_split_extent(struct xfs_inode *ip, xfs_fileoff_t split_offset);
|
||||||
int xfs_bmapi_reserve_delalloc(struct xfs_inode *ip, int whichfork,
|
int xfs_bmapi_reserve_delalloc(struct xfs_inode *ip, int whichfork,
|
||||||
xfs_fileoff_t off, xfs_filblks_t len, xfs_filblks_t prealloc,
|
xfs_fileoff_t off, xfs_filblks_t len, xfs_filblks_t prealloc,
|
||||||
|
@ -1348,12 +1348,13 @@ xfs_collapse_file_space(
|
|||||||
xfs_trans_ijoin(tp, ip, XFS_ILOCK_EXCL);
|
xfs_trans_ijoin(tp, ip, XFS_ILOCK_EXCL);
|
||||||
|
|
||||||
xfs_defer_init(&dfops, &first_block);
|
xfs_defer_init(&dfops, &first_block);
|
||||||
|
tp->t_dfops = &dfops;
|
||||||
error = xfs_bmap_collapse_extents(tp, ip, &next_fsb, shift_fsb,
|
error = xfs_bmap_collapse_extents(tp, ip, &next_fsb, shift_fsb,
|
||||||
&done, &first_block, &dfops);
|
&done, &first_block);
|
||||||
if (error)
|
if (error)
|
||||||
goto out_bmap_cancel;
|
goto out_bmap_cancel;
|
||||||
|
|
||||||
error = xfs_defer_finish(&tp, &dfops);
|
error = xfs_defer_finish(&tp, tp->t_dfops);
|
||||||
if (error)
|
if (error)
|
||||||
goto out_bmap_cancel;
|
goto out_bmap_cancel;
|
||||||
error = xfs_trans_commit(tp);
|
error = xfs_trans_commit(tp);
|
||||||
@ -1362,7 +1363,7 @@ xfs_collapse_file_space(
|
|||||||
return error;
|
return error;
|
||||||
|
|
||||||
out_bmap_cancel:
|
out_bmap_cancel:
|
||||||
xfs_defer_cancel(&dfops);
|
xfs_defer_cancel(tp->t_dfops);
|
||||||
out_trans_cancel:
|
out_trans_cancel:
|
||||||
xfs_trans_cancel(tp);
|
xfs_trans_cancel(tp);
|
||||||
return error;
|
return error;
|
||||||
@ -1427,12 +1428,13 @@ xfs_insert_file_space(
|
|||||||
xfs_ilock(ip, XFS_ILOCK_EXCL);
|
xfs_ilock(ip, XFS_ILOCK_EXCL);
|
||||||
xfs_trans_ijoin(tp, ip, XFS_ILOCK_EXCL);
|
xfs_trans_ijoin(tp, ip, XFS_ILOCK_EXCL);
|
||||||
xfs_defer_init(&dfops, &first_block);
|
xfs_defer_init(&dfops, &first_block);
|
||||||
|
tp->t_dfops = &dfops;
|
||||||
error = xfs_bmap_insert_extents(tp, ip, &next_fsb, shift_fsb,
|
error = xfs_bmap_insert_extents(tp, ip, &next_fsb, shift_fsb,
|
||||||
&done, stop_fsb, &first_block, &dfops);
|
&done, stop_fsb, &first_block);
|
||||||
if (error)
|
if (error)
|
||||||
goto out_bmap_cancel;
|
goto out_bmap_cancel;
|
||||||
|
|
||||||
error = xfs_defer_finish(&tp, &dfops);
|
error = xfs_defer_finish(&tp, tp->t_dfops);
|
||||||
if (error)
|
if (error)
|
||||||
goto out_bmap_cancel;
|
goto out_bmap_cancel;
|
||||||
error = xfs_trans_commit(tp);
|
error = xfs_trans_commit(tp);
|
||||||
@ -1441,7 +1443,7 @@ xfs_insert_file_space(
|
|||||||
return error;
|
return error;
|
||||||
|
|
||||||
out_bmap_cancel:
|
out_bmap_cancel:
|
||||||
xfs_defer_cancel(&dfops);
|
xfs_defer_cancel(tp->t_dfops);
|
||||||
xfs_trans_cancel(tp);
|
xfs_trans_cancel(tp);
|
||||||
return error;
|
return error;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user