mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
synced 2025-01-01 10:42:11 +00:00
76c218c5d1
Introduce xfs_notify_failure.c to handle failure related works, such as implement ->notify_failure(), register/unregister dax holder in xfs, and so on. If the rmap feature of XFS enabled, we can query it to find files and metadata which are associated with the corrupt data. For now all we do is kill processes with that file mapped into their address spaces, but future patches could actually do something about corrupt metadata. After that, the memory failure needs to notify the processes who are using those files. Link: https://lkml.kernel.org/r/20220603053738.1218681-7-ruansy.fnst@fujitsu.com Signed-off-by: Shiyang Ruan <ruansy.fnst@fujitsu.com> Reviewed-by: Christoph Hellwig <hch@lst.de> Reviewed-by: Darrick J. Wong <djwong@kernel.org> Cc: Al Viro <viro@zeniv.linux.org.uk> Cc: Dan Williams <dan.j.wiliams@intel.com> Cc: Dan Williams <dan.j.williams@intel.com> Cc: Dave Chinner <david@fromorbit.com> Cc: Goldwyn Rodrigues <rgoldwyn@suse.com> Cc: Goldwyn Rodrigues <rgoldwyn@suse.de> Cc: Jane Chu <jane.chu@oracle.com> Cc: Matthew Wilcox <willy@infradead.org> Cc: Miaohe Lin <linmiaohe@huawei.com> Cc: Naoya Horiguchi <naoya.horiguchi@nec.com> Cc: Ritesh Harjani <riteshh@linux.ibm.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
175 lines
3.9 KiB
Makefile
175 lines
3.9 KiB
Makefile
# SPDX-License-Identifier: GPL-2.0
|
|
#
|
|
# Copyright (c) 2000-2005 Silicon Graphics, Inc.
|
|
# All Rights Reserved.
|
|
#
|
|
|
|
ccflags-y += -I $(srctree)/$(src) # needed for trace events
|
|
ccflags-y += -I $(srctree)/$(src)/libxfs
|
|
|
|
obj-$(CONFIG_XFS_FS) += xfs.o
|
|
|
|
# this one should be compiled first, as the tracing macros can easily blow up
|
|
xfs-y += xfs_trace.o
|
|
|
|
# build the libxfs code first
|
|
xfs-y += $(addprefix libxfs/, \
|
|
xfs_ag.o \
|
|
xfs_alloc.o \
|
|
xfs_alloc_btree.o \
|
|
xfs_attr.o \
|
|
xfs_attr_leaf.o \
|
|
xfs_attr_remote.o \
|
|
xfs_bit.o \
|
|
xfs_bmap.o \
|
|
xfs_bmap_btree.o \
|
|
xfs_btree.o \
|
|
xfs_btree_staging.o \
|
|
xfs_da_btree.o \
|
|
xfs_defer.o \
|
|
xfs_dir2.o \
|
|
xfs_dir2_block.o \
|
|
xfs_dir2_data.o \
|
|
xfs_dir2_leaf.o \
|
|
xfs_dir2_node.o \
|
|
xfs_dir2_sf.o \
|
|
xfs_dquot_buf.o \
|
|
xfs_ialloc.o \
|
|
xfs_ialloc_btree.o \
|
|
xfs_iext_tree.o \
|
|
xfs_inode_fork.o \
|
|
xfs_inode_buf.o \
|
|
xfs_log_rlimit.o \
|
|
xfs_ag_resv.o \
|
|
xfs_rmap.o \
|
|
xfs_rmap_btree.o \
|
|
xfs_refcount.o \
|
|
xfs_refcount_btree.o \
|
|
xfs_sb.o \
|
|
xfs_symlink_remote.o \
|
|
xfs_trans_inode.o \
|
|
xfs_trans_resv.o \
|
|
xfs_types.o \
|
|
)
|
|
# xfs_rtbitmap is shared with libxfs
|
|
xfs-$(CONFIG_XFS_RT) += $(addprefix libxfs/, \
|
|
xfs_rtbitmap.o \
|
|
)
|
|
|
|
# highlevel code
|
|
xfs-y += xfs_aops.o \
|
|
xfs_attr_inactive.o \
|
|
xfs_attr_list.o \
|
|
xfs_bmap_util.o \
|
|
xfs_bio_io.o \
|
|
xfs_buf.o \
|
|
xfs_dir2_readdir.o \
|
|
xfs_discard.o \
|
|
xfs_error.o \
|
|
xfs_export.o \
|
|
xfs_extent_busy.o \
|
|
xfs_file.o \
|
|
xfs_filestream.o \
|
|
xfs_fsmap.o \
|
|
xfs_fsops.o \
|
|
xfs_globals.o \
|
|
xfs_health.o \
|
|
xfs_icache.o \
|
|
xfs_ioctl.o \
|
|
xfs_iomap.o \
|
|
xfs_iops.o \
|
|
xfs_inode.o \
|
|
xfs_itable.o \
|
|
xfs_iwalk.o \
|
|
xfs_message.o \
|
|
xfs_mount.o \
|
|
xfs_mru_cache.o \
|
|
xfs_pwork.o \
|
|
xfs_reflink.o \
|
|
xfs_stats.o \
|
|
xfs_super.o \
|
|
xfs_symlink.o \
|
|
xfs_sysfs.o \
|
|
xfs_trans.o \
|
|
xfs_xattr.o \
|
|
kmem.o
|
|
|
|
# low-level transaction/log code
|
|
xfs-y += xfs_log.o \
|
|
xfs_log_cil.o \
|
|
xfs_bmap_item.o \
|
|
xfs_buf_item.o \
|
|
xfs_buf_item_recover.o \
|
|
xfs_dquot_item_recover.o \
|
|
xfs_extfree_item.o \
|
|
xfs_attr_item.o \
|
|
xfs_icreate_item.o \
|
|
xfs_inode_item.o \
|
|
xfs_inode_item_recover.o \
|
|
xfs_refcount_item.o \
|
|
xfs_rmap_item.o \
|
|
xfs_log_recover.o \
|
|
xfs_trans_ail.o \
|
|
xfs_trans_buf.o
|
|
|
|
# optional features
|
|
xfs-$(CONFIG_XFS_QUOTA) += xfs_dquot.o \
|
|
xfs_dquot_item.o \
|
|
xfs_trans_dquot.o \
|
|
xfs_qm_syscalls.o \
|
|
xfs_qm_bhv.o \
|
|
xfs_qm.o \
|
|
xfs_quotaops.o
|
|
|
|
# xfs_rtbitmap is shared with libxfs
|
|
xfs-$(CONFIG_XFS_RT) += xfs_rtalloc.o
|
|
|
|
xfs-$(CONFIG_XFS_POSIX_ACL) += xfs_acl.o
|
|
xfs-$(CONFIG_SYSCTL) += xfs_sysctl.o
|
|
xfs-$(CONFIG_COMPAT) += xfs_ioctl32.o
|
|
xfs-$(CONFIG_EXPORTFS_BLOCK_OPS) += xfs_pnfs.o
|
|
|
|
# notify failure
|
|
ifeq ($(CONFIG_MEMORY_FAILURE),y)
|
|
xfs-$(CONFIG_FS_DAX) += xfs_notify_failure.o
|
|
endif
|
|
|
|
# online scrub/repair
|
|
ifeq ($(CONFIG_XFS_ONLINE_SCRUB),y)
|
|
|
|
# Tracepoints like to blow up, so build that before everything else
|
|
|
|
xfs-y += $(addprefix scrub/, \
|
|
trace.o \
|
|
agheader.o \
|
|
alloc.o \
|
|
attr.o \
|
|
bmap.o \
|
|
btree.o \
|
|
common.o \
|
|
dabtree.o \
|
|
dir.o \
|
|
fscounters.o \
|
|
health.o \
|
|
ialloc.o \
|
|
inode.o \
|
|
parent.o \
|
|
refcount.o \
|
|
rmap.o \
|
|
scrub.o \
|
|
symlink.o \
|
|
)
|
|
|
|
xfs-$(CONFIG_XFS_RT) += scrub/rtbitmap.o
|
|
xfs-$(CONFIG_XFS_QUOTA) += scrub/quota.o
|
|
|
|
# online repair
|
|
ifeq ($(CONFIG_XFS_ONLINE_REPAIR),y)
|
|
xfs-y += $(addprefix scrub/, \
|
|
agheader_repair.o \
|
|
bitmap.o \
|
|
repair.o \
|
|
)
|
|
endif
|
|
endif
|