xfs: use direct calls for dquot IO completion

Similar to inodes, we can call the dquot IO completion functions
directly from the buffer completion code, removing another user of
log item callbacks for IO completion processing.

Signed-off-by: Dave Chinner <dchinner@redhat.com>
Reviewed-by: Brian Foster <bfoster@redhat.com>
Reviewed-by: Darrick J. Wong <darrick.wong@oracle.com>
Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
This commit is contained in:
Dave Chinner
2020-06-29 14:48:59 -07:00
committad av Darrick J. Wong
förälder aac855ab1a
incheckning 6f5de1808e
3 ändrade filer med 40 tillägg och 5 borttagningar

Visa fil

@@ -15,6 +15,9 @@
#include "xfs_buf_item.h"
#include "xfs_inode.h"
#include "xfs_inode_item.h"
#include "xfs_quota.h"
#include "xfs_dquot_item.h"
#include "xfs_dquot.h"
#include "xfs_trans_priv.h"
#include "xfs_trace.h"
#include "xfs_log.h"
@@ -1209,7 +1212,20 @@ void
xfs_buf_dquot_iodone(
struct xfs_buf *bp)
{
xfs_buf_run_callbacks(bp);
struct xfs_buf_log_item *blip = bp->b_log_item;
struct xfs_log_item *lip;
if (xfs_buf_had_callback_errors(bp))
return;
/* a newly allocated dquot buffer might have a log item attached */
if (blip) {
lip = &blip->bli_item;
lip->li_cb(bp, lip);
bp->b_log_item = NULL;
}
xfs_dquot_done(bp);
xfs_buf_ioend_finish(bp);
}