xfs: don't commit the first deferred transaction without intents
authorDave Chinner <dchinner@redhat.com>
Wed, 4 May 2022 01:46:00 +0000 (11:46 +1000)
committerDave Chinner <david@fromorbit.com>
Wed, 4 May 2022 01:46:00 +0000 (11:46 +1000)
commit5ddd658ea878f8dbae5ec33dba6cfdabb5056916
tree2293f6b600ceb14f0e9a0d9bd675ee78bbc31b13
parentb2c28035cea290edbcec697504e5b7a4b1e023e7
xfs: don't commit the first deferred transaction without intents

If the first operation in a string of defer ops has no intents,
then there is no reason to commit it before running the first call
to xfs_defer_finish_one(). This allows the defer ops to be used
effectively for non-intent based operations without requiring an
unnecessary extra transaction commit when first called.

This fixes a regression in per-attribute modification transaction
count when delayed attributes are not being used.

Signed-off-by: Dave Chinner <dchinner@redhat.com>
Reviewed-by: Darrick J. Wong <djwong@kernel.org>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Allison Henderson <allison.henderson@oracle.com>
Signed-off-by: Dave Chinner <david@fromorbit.com>
fs/xfs/libxfs/xfs_defer.c