From: Dave Chinner <david@fromorbit.com>
To: linux-xfs@vger.kernel.org
Subject: [PATCH 00/11] xfs: clean up log tickets and record writes
Date: Wed, 4 Mar 2020 18:53:50 +1100 [thread overview]
Message-ID: <20200304075401.21558-1-david@fromorbit.com> (raw)
This series follows up on conversions about relogging infrastructure
and the way xfs_log_done() does two things but only one of several
callers uses both of those functions. It also pointed out that
xfs_trans_commit() never writes to the log anymore, so only
checkpoints pass a ticket to xlog_write() with this flag set and
no transaction makes multiple calls to xlog_write() calls on the
same ticket. Hence there's no real need for XLOG_TIC_INITED to track
whether a ticket has written a start record to the log anymore.
A lot of further cleanups fell out of this. Once we no longer use
XLOG_TIC_INITED to carry state inside the write loop, the logic
can be simplified in both xlog_write and xfs_log_done. xfs_log_done
can be split up, and then the call chain can be flattened because
xlog_write_done() and xlog_commit_record() are basically the same.
This then leads to cleanups writing both commit and unmount records,
and removes a heap of duplicated error handling code in the unmount
record writing path.
And in looking over all this code, I noticed a heap of stale and
unnecessary comments through the code which can be cleaned up.
Finally, to complete what started all this, the XLOG_TIC_INITED flag
is removed.
This has made it through fstests without causing any obvious
regressions, so it's time for thoughts and comments. This can also
be found at:
https://git.kernel.org/pub/scm/linux/kernel/git/dgc/linux-xfs.git/h?xlog-ticket-cleanup
Note that this message appears as the first (empty) commit of the
series, as this is how I get my local hacked version of guilt to
format this cover message automatically.
Diffstat:
fs/xfs/xfs_log.c | 509 +++++++++++++++++++-------------------------------
fs/xfs/xfs_log.h | 4 -
fs/xfs/xfs_log_cil.c | 13 +-
fs/xfs/xfs_log_priv.h | 22 +--
fs/xfs/xfs_trans.c | 24 +--
5 files changed, 225 insertions(+), 347 deletions(-)
Signed-off-by: Dave Chinner <dchinner@redhat.com>
Dave Chinner (11):
xfs: don't try to write a start record into every iclog
xfs: re-order initial space accounting checks in xlog_write
xfs: refactor and split xfs_log_done()
xfs: merge xlog_commit_record with xlog_write_done()
xfs: factor out unmount record writing
xfs: move xlog_state_ioerror()
xfs: clean up xlog_state_ioerror()
xfs: rename the log unmount writing functions.
xfs: merge unmount record write iclog cleanup.
xfs: remove some stale comments from the log code
xfs: kill XLOG_TIC_INITED
fs/xfs/xfs_log.c | 509 ++++++++++++++++--------------------------
fs/xfs/xfs_log.h | 4 -
fs/xfs/xfs_log_cil.c | 13 +-
fs/xfs/xfs_log_priv.h | 22 +-
fs/xfs/xfs_trans.c | 24 +-
5 files changed, 225 insertions(+), 347 deletions(-)
--
2.24.0.rc0
next reply other threads:[~2020-03-04 7:54 UTC|newest]
Thread overview: 44+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-03-04 7:53 Dave Chinner [this message]
2020-03-04 7:53 ` [PATCH 01/11] xfs: don't try to write a start record into every iclog Dave Chinner
2020-03-04 15:44 ` Christoph Hellwig
2020-03-04 21:26 ` Dave Chinner
2020-03-05 15:19 ` Christoph Hellwig
2020-03-05 18:05 ` Brian Foster
2020-03-04 7:53 ` [PATCH 02/11] xfs: re-order initial space accounting checks in xlog_write Dave Chinner
2020-03-05 18:05 ` Brian Foster
2020-03-04 7:53 ` [PATCH 03/11] xfs: refactor and split xfs_log_done() Dave Chinner
2020-03-04 15:49 ` Christoph Hellwig
2020-03-04 21:28 ` Dave Chinner
2020-03-05 15:20 ` Christoph Hellwig
2020-03-05 18:06 ` Brian Foster
2020-03-24 12:37 ` Christoph Hellwig
2020-03-04 7:53 ` [PATCH 04/11] xfs: merge xlog_commit_record with xlog_write_done() Dave Chinner
2020-03-04 15:50 ` Christoph Hellwig
2020-03-05 18:06 ` Brian Foster
2020-03-04 7:53 ` [PATCH 05/11] xfs: factor out unmount record writing Dave Chinner
2020-03-04 15:51 ` Christoph Hellwig
2020-03-05 18:07 ` Brian Foster
2020-03-04 7:53 ` [PATCH 06/11] xfs: move xlog_state_ioerror() Dave Chinner
2020-03-04 15:51 ` Christoph Hellwig
2020-03-04 21:41 ` Dave Chinner
2020-03-05 15:21 ` Christoph Hellwig
2020-03-05 18:07 ` Brian Foster
2020-03-04 7:53 ` [PATCH 07/11] xfs: clean up xlog_state_ioerror() Dave Chinner
2020-03-05 18:07 ` Brian Foster
2020-03-04 7:53 ` [PATCH 08/11] xfs: rename the log unmount writing functions Dave Chinner
2020-03-04 15:52 ` Christoph Hellwig
2020-03-05 18:07 ` Brian Foster
2020-03-04 7:53 ` [PATCH 09/11] xfs: merge unmount record write iclog cleanup Dave Chinner
2020-03-04 15:53 ` Christoph Hellwig
2020-03-04 21:38 ` Dave Chinner
2020-03-05 15:27 ` Christoph Hellwig
2020-03-05 18:08 ` Brian Foster
2020-03-04 7:54 ` [PATCH 10/11] xfs: remove some stale comments from the log code Dave Chinner
2020-03-04 15:53 ` Christoph Hellwig
2020-03-05 18:08 ` Brian Foster
2020-03-04 7:54 ` [PATCH 11/11] xfs: kill XLOG_TIC_INITED Dave Chinner
2020-03-04 15:54 ` Christoph Hellwig
2020-03-05 18:08 ` Brian Foster
2020-03-05 16:05 ` [PATCH 00/11] xfs: clean up log tickets and record writes Christoph Hellwig
2020-03-05 21:42 ` Dave Chinner
2020-03-06 1:03 ` Christoph Hellwig
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20200304075401.21558-1-david@fromorbit.com \
--to=david@fromorbit.com \
--cc=linux-xfs@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.