xfs: call xfs_buf_delwri_queue directly
Unify the ways we add buffers to the delwri queue by always calling xfs_buf_delwri_queue directly. The xfs_bdwrite functions is removed and opencoded in its callers, and the two places setting XBF_DELWRI while a buffer is locked and expecting xfs_buf_unlock to pick it up are converted to call xfs_buf_delwri_queue directly, too. Also replace the XFS_BUF_UNDELAYWRITE macro with direct calls to xfs_buf_delwri_dequeue to make the explicit queuing/dequeuing more obvious. Signed-off-by: Christoph Hellwig <hch@lst.de> Reviewed-by: Dave Chinner <dchinner@redhat.com> Signed-off-by: Alex Elder <aelder@sgi.com>
This commit is contained in:
committed by
Alex Elder
parent
5a8ee6bafd
commit
61551f1ee5
@@ -643,13 +643,14 @@ xfs_trans_log_buf(xfs_trans_t *tp,
|
||||
* inside the b_bdstrat callback so that this won't get written to
|
||||
* disk.
|
||||
*/
|
||||
XFS_BUF_DELAYWRITE(bp);
|
||||
XFS_BUF_DONE(bp);
|
||||
|
||||
ASSERT(atomic_read(&bip->bli_refcount) > 0);
|
||||
bp->b_iodone = xfs_buf_iodone_callbacks;
|
||||
bip->bli_item.li_cb = xfs_buf_iodone;
|
||||
|
||||
xfs_buf_delwri_queue(bp);
|
||||
|
||||
trace_xfs_trans_log_buf(bip);
|
||||
|
||||
/*
|
||||
@@ -738,7 +739,7 @@ xfs_trans_binval(
|
||||
* We set the stale bit in the buffer as well since we're getting
|
||||
* rid of it.
|
||||
*/
|
||||
XFS_BUF_UNDELAYWRITE(bp);
|
||||
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);
|
||||
|
Reference in New Issue
Block a user