Commit cc3c92e7 authored by Christoph Hellwig's avatar Christoph Hellwig Committed by Chandan Babu R
Browse files

xfs: xfs_quota_unreserve_blkres can't fail



Unreserving quotas can't fail due to quota limits, and we'll notice a
shut down file system a bit later in all the callers anyway.  Return
void and remove the error checking and propagation in the callers.

Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
Reviewed-by: default avatar"Darrick J. Wong" <djwong@kernel.org>
Signed-off-by: default avatarChandan Babu R <chandanbabu@kernel.org>
parent f7b9ee78
Loading
Loading
Loading
Loading
+5 −11
Original line number Diff line number Diff line
@@ -4928,7 +4928,7 @@ xfs_bmap_split_indlen(
	*indlen2 = len2;
}

int
void
xfs_bmap_del_extent_delay(
	struct xfs_inode	*ip,
	int			whichfork,
@@ -4944,7 +4944,6 @@ xfs_bmap_del_extent_delay(
	xfs_filblks_t		got_indlen, new_indlen, stolen = 0;
	uint32_t		state = xfs_bmap_fork_to_state(whichfork);
	uint64_t		fdblocks;
	int			error = 0;
	bool			isrt;

	XFS_STATS_INC(mp, xs_del_exlist);
@@ -4964,9 +4963,7 @@ xfs_bmap_del_extent_delay(
	 * sb counters as we might have to borrow some blocks for the
	 * indirect block accounting.
	 */
	error = xfs_quota_unreserve_blkres(ip, del->br_blockcount);
	if (error)
		return error;
	xfs_quota_unreserve_blkres(ip, del->br_blockcount);
	ip->i_delayed_blks -= del->br_blockcount;

	if (got->br_startoff == del->br_startoff)
@@ -5064,7 +5061,6 @@ xfs_bmap_del_extent_delay(

	xfs_add_fdblocks(mp, fdblocks);
	xfs_mod_delalloc(ip, -(int64_t)del->br_blockcount, -da_diff);
	return error;
}

void
@@ -5622,17 +5618,15 @@ __xfs_bunmapi(

delete:
		if (wasdel) {
			error = xfs_bmap_del_extent_delay(ip, whichfork, &icur,
					&got, &del);
			xfs_bmap_del_extent_delay(ip, whichfork, &icur, &got, &del);
		} else {
			error = xfs_bmap_del_extent_real(ip, tp, &icur, cur,
					&del, &tmp_logflags, whichfork,
					flags);
			logflags |= tmp_logflags;
		}

			if (error)
				goto error0;
		}

		end = del.br_startoff - 1;
nodelete:
+1 −1
Original line number Diff line number Diff line
@@ -202,7 +202,7 @@ int xfs_bmapi_write(struct xfs_trans *tp, struct xfs_inode *ip,
int	xfs_bunmapi(struct xfs_trans *tp, struct xfs_inode *ip,
		xfs_fileoff_t bno, xfs_filblks_t len, uint32_t flags,
		xfs_extnum_t nexts, int *done);
int	xfs_bmap_del_extent_delay(struct xfs_inode *ip, int whichfork,
void	xfs_bmap_del_extent_delay(struct xfs_inode *ip, int whichfork,
		struct xfs_iext_cursor *cur, struct xfs_bmbt_irec *got,
		struct xfs_bmbt_irec *del);
void	xfs_bmap_del_extent_cow(struct xfs_inode *ip,
+1 −5
Original line number Diff line number Diff line
@@ -443,7 +443,6 @@ xfs_discard_folio(
{
	struct xfs_inode	*ip = XFS_I(folio->mapping->host);
	struct xfs_mount	*mp = ip->i_mount;
	int			error;

	if (xfs_is_shutdown(mp))
		return;
@@ -457,11 +456,8 @@ xfs_discard_folio(
	 * byte of the next folio. Hence the end offset is only dependent on the
	 * folio itself and not the start offset that is passed in.
	 */
	error = xfs_bmap_punch_delalloc_range(ip, pos,
	xfs_bmap_punch_delalloc_range(ip, pos,
				folio_pos(folio) + folio_size(folio));

	if (error && !xfs_is_shutdown(mp))
		xfs_alert(mp, "page discard unable to remove delalloc mapping.");
}

static const struct iomap_writeback_ops xfs_writeback_ops = {
+3 −6
Original line number Diff line number Diff line
@@ -440,7 +440,7 @@ xfs_getbmap(
 * if the ranges only partially overlap them, so it is up to the caller to
 * ensure that partial blocks are not passed in.
 */
int
void
xfs_bmap_punch_delalloc_range(
	struct xfs_inode	*ip,
	xfs_off_t		start_byte,
@@ -452,7 +452,6 @@ xfs_bmap_punch_delalloc_range(
	xfs_fileoff_t		end_fsb = XFS_B_TO_FSB(mp, end_byte);
	struct xfs_bmbt_irec	got, del;
	struct xfs_iext_cursor	icur;
	int			error = 0;

	ASSERT(!xfs_need_iread_extents(ifp));

@@ -476,15 +475,13 @@ xfs_bmap_punch_delalloc_range(
			continue;
		}

		error = xfs_bmap_del_extent_delay(ip, XFS_DATA_FORK, &icur,
						  &got, &del);
		if (error || !xfs_iext_get_extent(ifp, &icur, &got))
		xfs_bmap_del_extent_delay(ip, XFS_DATA_FORK, &icur, &got, &del);
		if (!xfs_iext_get_extent(ifp, &icur, &got))
			break;
	}

out_unlock:
	xfs_iunlock(ip, XFS_ILOCK_EXCL);
	return error;
}

/*
+1 −1
Original line number Diff line number Diff line
@@ -30,7 +30,7 @@ xfs_bmap_rtalloc(struct xfs_bmalloca *ap)
}
#endif /* CONFIG_XFS_RT */

int	xfs_bmap_punch_delalloc_range(struct xfs_inode *ip,
void	xfs_bmap_punch_delalloc_range(struct xfs_inode *ip,
		xfs_off_t start_byte, xfs_off_t end_byte);

struct kgetbmap {
Loading