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

Commit af5c4bee authored by Christoph Hellwig's avatar Christoph Hellwig Committed by Alex Elder
Browse files

xfs: remove buffers from the delwri list in xfs_buf_stale



For each call to xfs_buf_stale we call xfs_buf_delwri_dequeue either
directly before or after it, or are guaranteed by the surrounding
conditionals that we are never called on delwri buffers.  Simply
this situation by moving the call to xfs_buf_delwri_dequeue into
xfs_buf_stale.

Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
Reviewed-by: default avatarDave Chinner <dchinner@redhat.com>
Signed-off-by: default avatarAlex Elder <aelder@sgi.com>
parent c867cb61
Loading
Loading
Loading
Loading
+0 −1
Original line number Diff line number Diff line
@@ -2169,7 +2169,6 @@ xfs_attr_rmtval_remove(xfs_da_args_t *args)
		bp = xfs_incore(mp->m_ddev_targp, dblkno, blkcnt, XBF_TRYLOCK);
		if (bp) {
			xfs_buf_stale(bp);
			xfs_buf_delwri_dequeue(bp);
			xfs_buf_relse(bp);
			bp = NULL;
		}
+1 −2
Original line number Diff line number Diff line
@@ -151,6 +151,7 @@ xfs_buf_stale(
	struct xfs_buf	*bp)
{
	bp->b_flags |= XBF_STALE;
	xfs_buf_delwri_dequeue(bp);
	atomic_set(&(bp)->b_lru_ref, 0);
	if (!list_empty(&bp->b_lru)) {
		struct xfs_buftarg *btp = bp->b_target;
@@ -1059,7 +1060,6 @@ xfs_bioerror(
	 * We're calling xfs_buf_ioend, so delete XBF_DONE flag.
	 */
	XFS_BUF_UNREAD(bp);
	xfs_buf_delwri_dequeue(bp);
	XFS_BUF_UNDONE(bp);
	xfs_buf_stale(bp);

@@ -1088,7 +1088,6 @@ xfs_bioerror_relse(
	 * change that interface.
	 */
	XFS_BUF_UNREAD(bp);
	xfs_buf_delwri_dequeue(bp);
	XFS_BUF_DONE(bp);
	xfs_buf_stale(bp);
	bp->b_iodone = NULL;
+0 −2
Original line number Diff line number Diff line
@@ -967,7 +967,6 @@ xfs_buf_iodone_callbacks(
	 */
	if (XFS_FORCED_SHUTDOWN(mp)) {
		xfs_buf_stale(bp);
		xfs_buf_delwri_dequeue(bp);
		XFS_BUF_DONE(bp);
		trace_xfs_buf_item_iodone(bp, _RET_IP_);
		goto do_callbacks;
@@ -1009,7 +1008,6 @@ xfs_buf_iodone_callbacks(
	 */
	xfs_buf_stale(bp);
	XFS_BUF_DONE(bp);
	xfs_buf_delwri_dequeue(bp);

	trace_xfs_buf_error_relse(bp, _RET_IP_);

+0 −1
Original line number Diff line number Diff line
@@ -149,7 +149,6 @@ xfs_read_buf(
		}
		if (bp) {
			XFS_BUF_UNDONE(bp);
			xfs_buf_delwri_dequeue(bp);
			xfs_buf_stale(bp);
			/*
			 * brelse clears B_ERROR and b_error
+0 −3
Original line number Diff line number Diff line
@@ -162,7 +162,6 @@ xfs_trans_get_buf(xfs_trans_t *tp,
		ASSERT(xfs_buf_islocked(bp));
		if (XFS_FORCED_SHUTDOWN(tp->t_mountp)) {
			xfs_buf_stale(bp);
			xfs_buf_delwri_dequeue(bp);
			XFS_BUF_DONE(bp);
		}

@@ -391,7 +390,6 @@ xfs_trans_read_buf(
	if (bp->b_error) {
		error = bp->b_error;
		xfs_buf_stale(bp);
		xfs_buf_delwri_dequeue(bp);
		XFS_BUF_DONE(bp);
		xfs_ioerror_alert("xfs_trans_read_buf", mp,
				  bp, blkno);
@@ -744,7 +742,6 @@ xfs_trans_binval(
	 * We set the stale bit in the buffer as well since we're getting
	 * rid of it.
	 */
	xfs_buf_delwri_dequeue(bp);
	xfs_buf_stale(bp);
	bip->bli_flags |= XFS_BLI_STALE;
	bip->bli_flags &= ~(XFS_BLI_INODE_BUF | XFS_BLI_LOGGED | XFS_BLI_DIRTY);