Skip to content

Commit d4bc4c5

Browse files
Brian Fosterdjwong
authored andcommitted
xfs: return locked status of inode buffer on xfsaild push
If the inode buffer backing a particular inode is locked, xfs_iflush() returns -EAGAIN and xfs_inode_item_push() skips the inode. It still returns success to xfsaild, however, which bypasses the xfsaild backoff heuristic. Update xfs_inode_item_push() to return locked status if the inode buffer couldn't be locked. Signed-off-by: Brian Foster <[email protected]> Reviewed-by: Christoph Hellwig <[email protected]> Reviewed-by: Darrick J. Wong <[email protected]> Signed-off-by: Darrick J. Wong <[email protected]>
1 parent 8d3d7e2 commit d4bc4c5

File tree

1 file changed

+2
-1
lines changed

1 file changed

+2
-1
lines changed

fs/xfs/xfs_inode_item.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -552,7 +552,8 @@ xfs_inode_item_push(
552552
if (!xfs_buf_delwri_queue(bp, buffer_list))
553553
rval = XFS_ITEM_FLUSHING;
554554
xfs_buf_relse(bp);
555-
}
555+
} else if (error == -EAGAIN)
556+
rval = XFS_ITEM_LOCKED;
556557

557558
spin_lock(&lip->li_ailp->ail_lock);
558559
out_unlock:

0 commit comments

Comments
 (0)