Commit 67997df2 authored by Dave Chinner's avatar Dave Chinner Committed by Long Li
Browse files

xfs: log items should have a xlog pointer, not a mount

mainline inclusion
from mainline-v5.17-rc6
commit d86142dd
category: bugfix
bugzilla: https://gitee.com/openeuler/kernel/issues/I4KIAO
CVE: NA

Reference: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=d86142dd7c4e10e50bdb3679b405d748214b2c28



--------------------------------

Log items belong to the log, not the xfs_mount. Convert the mount
pointer in the log item to a xlog pointer in preparation for
upcoming log centric changes to the log items.

Signed-off-by: default avatarDave Chinner <dchinner@redhat.com>
Reviewed-by: default avatarChandan Babu R <chandan.babu@oracle.com>
Reviewed-by: default avatarDarrick J. Wong <djwong@kernel.org>
Signed-off-by: default avatarDarrick J. Wong <djwong@kernel.org>

Conflicts:
	fs/xfs/xfs_refcount_item.c
	fs/xfs/xfs_bmap_item.c
	fs/xfs/xfs_buf_item.c
	fs/xfs/xfs_rmap_item.c

Signed-off-by: default avatarWu Guanghao <wuguanghao3@huawei.com>
Signed-off-by: default avatarGuo Xuenan <guoxuenan@huawei.com>
Signed-off-by: default avatarLong Li <leo.lilong@huawei.com>
parent 508b549a
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -432,7 +432,7 @@ xfs_bui_item_recover(
	struct xfs_bui_log_item		*buip = BUI_ITEM(lip);
	struct xfs_trans		*tp;
	struct xfs_inode		*ip = NULL;
	struct xfs_mount		*mp = lip->li_mountp;
	struct xfs_mount		*mp = lip->li_log->l_mp;
	struct xfs_map_extent		*bmap;
	struct xfs_bud_log_item		*budp;
	xfs_fsblock_t			startblock_fsb;
+3 −2
Original line number Diff line number Diff line
@@ -21,6 +21,7 @@
#include "xfs_dquot.h"
#include "xfs_trace.h"
#include "xfs_log.h"
#include "xfs_log_priv.h"


kmem_zone_t	*xfs_buf_item_zone;
@@ -347,7 +348,7 @@ xfs_buf_item_format(
	 * occurs during recovery.
	 */
	if (bip->bli_flags & XFS_BLI_INODE_BUF) {
		if (xfs_sb_version_has_v3inode(&lip->li_mountp->m_sb) ||
		if (xfs_sb_version_has_v3inode(&lip->li_log->l_mp->m_sb) ||
		    !((bip->bli_flags & XFS_BLI_INODE_ALLOC_BUF) &&
		      xfs_log_item_in_current_chkpt(lip)))
			bip->__bli_format.blf_flags |= XFS_BLF_INODE_BUF;
@@ -577,7 +578,7 @@ xfs_buf_item_put(
	 * that case, the bli is freed on buffer writeback completion.
	 */
	aborted = test_bit(XFS_LI_ABORTED, &lip->li_flags) ||
		  XFS_FORCED_SHUTDOWN(lip->li_mountp);
		  xlog_is_shutdown(lip->li_log);
	dirty = bip->bli_flags & XFS_BLI_DIRTY;
	if (dirty && !aborted)
		return false;
+1 −1
Original line number Diff line number Diff line
@@ -593,7 +593,7 @@ xfs_efi_item_recover(
	struct list_head		*capture_list)
{
	struct xfs_efi_log_item		*efip = EFI_ITEM(lip);
	struct xfs_mount		*mp = lip->li_mountp;
	struct xfs_mount		*mp = lip->li_log->l_mp;
	struct xfs_efd_log_item		*efdp;
	struct xfs_trans		*tp;
	struct xfs_extent		*extp;
+1 −1
Original line number Diff line number Diff line
@@ -1084,7 +1084,7 @@ xfs_log_item_init(
	int			type,
	const struct xfs_item_ops *ops)
{
	item->li_mountp = mp;
	item->li_log = mp->m_log;
	item->li_ailp = mp->m_ail;
	item->li_type = type;
	item->li_ops = ops;
+1 −1
Original line number Diff line number Diff line
@@ -1468,7 +1468,7 @@ bool
xfs_log_item_in_current_chkpt(
	struct xfs_log_item	*lip)
{
	struct xfs_cil		*cil = lip->li_mountp->m_log->l_cilp;
	struct xfs_cil		*cil = lip->li_log->l_cilp;

	if (list_empty(&lip->li_cil))
		return false;
Loading