From: "Darrick J. Wong" <djwong@kernel.org>
To: Long Li <leo.lilong@huawei.com>
Cc: chandanbabu@kernel.org, linux-xfs@vger.kernel.org,
david@fromorbit.com, yi.zhang@huawei.com, houtao1@huawei.com,
yangerkun@huawei.com
Subject: Re: [PATCH 2/5] xfs: ensuere deleting item from AIL after shutdown in dquot flush
Date: Fri, 23 Aug 2024 10:00:06 -0700 [thread overview]
Message-ID: <20240823170006.GF865349@frogsfrogsfrogs> (raw)
In-Reply-To: <20240823110439.1585041-3-leo.lilong@huawei.com>
On Fri, Aug 23, 2024 at 07:04:36PM +0800, Long Li wrote:
> Deleting items from the AIL before the log is shut down can result in the
> log tail moving forward in the journal on disk because log writes can still
> be taking place. As a result, items that have been deleted from the AIL
> might not be recovered during the next mount, even though they should be,
> as they were never written back to disk.
>
> Signed-off-by: Long Li <leo.lilong@huawei.com>
> ---
> fs/xfs/xfs_dquot.c | 8 +++++++-
> 1 file changed, 7 insertions(+), 1 deletion(-)
>
> diff --git a/fs/xfs/xfs_dquot.c b/fs/xfs/xfs_dquot.c
> index c1b211c260a9..4cbe3db6fc32 100644
> --- a/fs/xfs/xfs_dquot.c
> +++ b/fs/xfs/xfs_dquot.c
> @@ -1332,9 +1332,15 @@ xfs_qm_dqflush(
> return 0;
>
> out_abort:
> + /*
> + * Shutdown first to stop the log before deleting items from the AIL.
> + * Deleting items from the AIL before the log is shut down can result
> + * in the log tail moving forward in the journal on disk because log
> + * writes can still be taking place.
> + */
> + xfs_force_shutdown(mp, SHUTDOWN_CORRUPT_INCORE);
> dqp->q_flags &= ~XFS_DQFLAG_DIRTY;
> xfs_trans_ail_delete(lip, 0);
> - xfs_force_shutdown(mp, SHUTDOWN_CORRUPT_INCORE);
I see the logic in shutting down the log before letting go of the dquot
log item that triggered the shutdown, but I wonder, why do we delete the
item from the AIL? AFAICT the inode items don't do that on iflush
failure, but OTOH I couldn't figure out how the log items in the AIL get
deleted from the AIL after a shutdown. Or maybe during a shutdown we
just stop xfsaild and let the higher level objects free the log items
during reclaim?
--D
> out_unlock:
> xfs_dqfunlock(dqp);
> return error;
> --
> 2.39.2
>
>
next prev parent reply other threads:[~2024-08-23 17:00 UTC|newest]
Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-08-23 11:04 [PATCH 0/5] xfs: fix and cleanups for log item push Long Li
2024-08-23 11:04 ` [PATCH 1/5] xfs: remove redundant set null for ip->i_itemp Long Li
2024-08-23 16:37 ` Darrick J. Wong
2024-08-25 4:52 ` Christoph Hellwig
2024-08-23 11:04 ` [PATCH 2/5] xfs: ensuere deleting item from AIL after shutdown in dquot flush Long Li
2024-08-23 17:00 ` Darrick J. Wong [this message]
2024-08-24 3:08 ` Long Li
2024-08-27 9:40 ` Dave Chinner
2024-08-31 13:45 ` Long Li
2024-08-23 11:04 ` [PATCH 3/5] xfs: add XFS_ITEM_UNSAFE for log item push return result Long Li
2024-08-23 17:17 ` Darrick J. Wong
2024-08-24 3:30 ` Long Li
2024-08-27 9:44 ` Dave Chinner
2024-08-24 3:34 ` Christoph Hellwig
2024-08-27 9:41 ` Long Li
2024-08-27 10:00 ` Dave Chinner
2024-08-27 12:30 ` Christoph Hellwig
2024-08-27 21:52 ` Dave Chinner
2024-08-28 4:23 ` Christoph Hellwig
2024-08-29 10:16 ` Dave Chinner
2024-08-23 11:04 ` [PATCH 4/5] xfs: fix a UAF when dquot item push Long Li
2024-08-23 17:20 ` Darrick J. Wong
2024-08-24 2:03 ` Long Li
2024-08-23 11:04 ` [PATCH 5/5] xfs: fix a UAF when inode " Long Li
2024-08-23 17:22 ` Darrick J. Wong
2024-08-27 8:14 ` Long Li
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=20240823170006.GF865349@frogsfrogsfrogs \
--to=djwong@kernel.org \
--cc=chandanbabu@kernel.org \
--cc=david@fromorbit.com \
--cc=houtao1@huawei.com \
--cc=leo.lilong@huawei.com \
--cc=linux-xfs@vger.kernel.org \
--cc=yangerkun@huawei.com \
--cc=yi.zhang@huawei.com \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox