xfs: move CIL ordering to the logvec chain
authorDave Chinner <dchinner@redhat.com>
Thu, 7 Jul 2022 08:56:08 +0000 (18:56 +1000)
committerDave Chinner <david@fromorbit.com>
Thu, 7 Jul 2022 08:56:08 +0000 (18:56 +1000)
commit4eb56069cb2835fafe569e27e746e6a4c9735186
tree03a3e764b3ceca81df2fb0994618eb2b1aabf97d
parent169248536a2b28e4228ba63772936c1ba979c9c0
xfs: move CIL ordering to the logvec chain

Adding a list_sort() call to the CIL push work while the xc_ctx_lock
is held exclusively has resulted in fairly long lock hold times and
that stops all front end transaction commits from making progress.

We can move the sorting out of the xc_ctx_lock if we can transfer
the ordering information to the log vectors as they are detached
from the log items and then we can sort the log vectors.  With these
changes, we can move the list_sort() call to just before we call
xlog_write() when we aren't holding any locks at all.

Signed-off-by: Dave Chinner <dchinner@redhat.com>
Reviewed-by: Darrick J. Wong <djwong@kernel.org>
fs/xfs/xfs_log.h
fs/xfs/xfs_log_cil.c