1
0
Fork 0
alistair23-linux/fs/xfs/libxfs
Darrick J. Wong 5cd213b0fe xfs: don't reserve per-AG space for an internal log
It turns out that the log can consume nearly all the space in an AG, and
when this happens this it's possible that there will be less free space
in the AG than the reservation would try to hide.  On a debug kernel
this can trigger an ASSERT in xfs/250:

XFS: Assertion failed: xfs_perag_resv(pag, XFS_AG_RESV_METADATA)->ar_reserved + xfs_perag_resv(pag, XFS_AG_RESV_RMAPBT)->ar_reserved <= pag->pagf_freeblks + pag->pagf_flcount, file: fs/xfs/libxfs/xfs_ag_resv.c, line: 319

The log is permanently allocated, so we know we're never going to have
to expand the btrees to hold any records associated with the log space.
We therefore can treat the space as if it doesn't exist.

Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
Reviewed-by: Eric Sandeen <sandeen@redhat.com>
2019-05-20 11:25:39 -07:00
..
xfs_ag.c xfs: report AG health via AG geometry ioctl 2019-04-14 18:15:57 -07:00
xfs_ag.h xfs: add a new ioctl to describe allocation group geometry 2019-04-14 18:15:57 -07:00
xfs_ag_resv.c xfs: rename m_inotbt_nores to m_finobt_nores 2019-02-14 22:42:57 -08:00
xfs_ag_resv.h xfs: pass transaction lock while setting up agresv on cyclic metadata 2018-07-29 22:37:08 -07:00
xfs_alloc.c xfs: assert that we don't enter agfl freeing with a non-permanent transaction 2019-04-23 08:36:23 -07:00
xfs_alloc.h xfs: const-ify xfs_owner_info arguments 2018-12-12 08:47:16 -08:00
xfs_alloc_btree.c xfs: distinguish between bnobt and cntbt magic values 2019-02-11 16:07:01 -08:00
xfs_alloc_btree.h xfs: convert to SPDX license tags 2018-06-06 14:17:53 -07:00
xfs_attr.c xfs: always rejoin held resources during defer roll 2019-04-30 08:19:13 -07:00
xfs_attr.h xfs: always rejoin held resources during defer roll 2019-04-30 08:19:13 -07:00
xfs_attr_leaf.c xfs: fix xfs_buf magic number endian checks 2019-02-18 09:38:41 -08:00
xfs_attr_leaf.h xfs: convert to SPDX license tags 2018-06-06 14:17:53 -07:00
xfs_attr_remote.c xfs: miscellaneous verifier magic value fixups 2019-02-11 16:07:01 -08:00
xfs_attr_remote.h xfs: convert to SPDX license tags 2018-06-06 14:17:53 -07:00
xfs_attr_sf.h xfs: convert to SPDX license tags 2018-06-06 14:17:53 -07:00
xfs_bit.c xfs: convert to SPDX license tags 2018-06-06 14:17:53 -07:00
xfs_bit.h xfs: convert to SPDX license tags 2018-06-06 14:17:53 -07:00
xfs_bmap.c xfs: track delayed allocation reservations across the filesystem 2019-04-26 12:28:55 -07:00
xfs_bmap.h xfs: make COW fork unwritten extent conversions more robust 2019-02-21 07:55:07 -08:00
xfs_bmap_btree.c xfs: miscellaneous verifier magic value fixups 2019-02-11 16:07:01 -08:00
xfs_bmap_btree.h xfs: convert to SPDX license tags 2018-06-06 14:17:53 -07:00
xfs_btree.c xfs: fix inverted return from xfs_btree_sblock_verify_crc 2018-12-04 08:50:49 -08:00
xfs_btree.h xfs: fold dfops into the transaction 2018-08-02 23:05:14 -07:00
xfs_cksum.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
xfs_da_btree.c xfs: fix xfs_buf magic number endian checks 2019-02-18 09:38:41 -08:00
xfs_da_btree.h xfs: fold dfops into the transaction 2018-08-02 23:05:14 -07:00
xfs_da_format.c xfs: convert to SPDX license tags 2018-06-06 14:17:53 -07:00
xfs_da_format.h xfs: factor xfs_da3_blkinfo verification into common helper 2019-02-11 16:07:01 -08:00
xfs_defer.c xfs: always rejoin held resources during defer roll 2019-04-30 08:19:13 -07:00
xfs_defer.h xfs: streamline defer op type handling 2018-12-12 08:47:16 -08:00
xfs_dir2.c xfs: check directory name validity 2019-02-11 16:06:40 -08:00
xfs_dir2.h xfs: check directory name validity 2019-02-11 16:06:40 -08:00
xfs_dir2_block.c xfs: miscellaneous verifier magic value fixups 2019-02-11 16:07:01 -08:00
xfs_dir2_data.c xfs: miscellaneous verifier magic value fixups 2019-02-11 16:07:01 -08:00
xfs_dir2_leaf.c xfs: clean up xfs_dir2_leaf_addname 2019-03-12 09:19:38 -07:00
xfs_dir2_node.c xfs: clean up xfs_dir2_leafn_add 2019-03-08 14:24:43 -08:00
xfs_dir2_priv.h xfs: convert to SPDX license tags 2018-06-06 14:17:53 -07:00
xfs_dir2_sf.c xfs: convert to SPDX license tags 2018-06-06 14:17:53 -07:00
xfs_dquot_buf.c xfs: change some error-less functions to void types 2019-05-01 20:26:30 -07:00
xfs_errortag.h xfs: cache unlinked pointers in an rhashtable 2019-02-11 16:07:01 -08:00
xfs_format.h xfs: move XFS_INODE_FORMAT_STR mappings to libxfs 2018-12-19 14:02:01 -08:00
xfs_fs.h xfs: add online scrub for superblock counters 2019-04-30 08:19:13 -07:00
xfs_health.h xfs: report inode health via bulkstat 2019-04-14 18:15:58 -07:00
xfs_ialloc.c xfs: miscellaneous verifier magic value fixups 2019-02-11 16:07:01 -08:00
xfs_ialloc.h xfs: remove dfops parameter from ifree call stack 2018-07-11 22:26:07 -07:00
xfs_ialloc_btree.c xfs: don't reserve per-AG space for an internal log 2019-05-20 11:25:39 -07:00
xfs_ialloc_btree.h xfs: pass transaction lock while setting up agresv on cyclic metadata 2018-07-29 22:37:08 -07:00
xfs_iext_tree.c xfs: update fork seq counter on data fork changes 2019-02-11 16:07:00 -08:00
xfs_inode_buf.c xfs: fix xfs_buf magic number endian checks 2019-02-18 09:38:41 -08:00
xfs_inode_buf.h xfs: convert to SPDX license tags 2018-06-06 14:17:53 -07:00
xfs_inode_fork.c xfs: remove the xfs_ifork_t typedef 2018-07-30 07:57:48 -07:00
xfs_inode_fork.h xfs: update fork seq counter on data fork changes 2019-02-11 16:07:00 -08:00
xfs_log_format.h xfs: refactor unmount record write 2018-07-23 09:08:01 -07:00
xfs_log_recover.h xfs: convert to SPDX license tags 2018-06-06 14:17:53 -07:00
xfs_log_rlimit.c xfs: convert to SPDX license tags 2018-06-06 14:17:53 -07:00
xfs_quota_defs.h xfs: change some error-less functions to void types 2019-05-01 20:26:30 -07:00
xfs_refcount.c xfs: pass transaction to xfs_defer_add() 2018-08-02 23:05:14 -07:00
xfs_refcount.h xfs: pass transaction to xfs_defer_add() 2018-08-02 23:05:14 -07:00
xfs_refcount_btree.c xfs: don't reserve per-AG space for an internal log 2019-05-20 11:25:39 -07:00
xfs_refcount_btree.h xfs: pass transaction lock while setting up agresv on cyclic metadata 2018-07-29 22:37:08 -07:00
xfs_rmap.c xfs: remove xfs_rmap_ag_owner and friends 2018-12-12 08:47:16 -08:00
xfs_rmap.h xfs: remove xfs_rmap_ag_owner and friends 2018-12-12 08:47:16 -08:00
xfs_rmap_btree.c xfs: don't reserve per-AG space for an internal log 2019-05-20 11:25:39 -07:00
xfs_rmap_btree.h xfs: pass transaction lock while setting up agresv on cyclic metadata 2018-07-29 22:37:08 -07:00
xfs_rtbitmap.c xfs: cache minimum realtime summary level 2018-12-12 08:47:17 -08:00
xfs_sb.c xfs: change some error-less functions to void types 2019-05-01 20:26:30 -07:00
xfs_sb.h xfs: change some error-less functions to void types 2019-05-01 20:26:30 -07:00
xfs_shared.h xfs: split up allocation btree verifier 2019-02-11 16:07:01 -08:00
xfs_symlink_remote.c xfs: miscellaneous verifier magic value fixups 2019-02-11 16:07:01 -08:00
xfs_trans_resv.c xfs: make tr_growdata a permanent transaction 2019-04-22 16:28:45 -07:00
xfs_trans_resv.h xfs: convert to SPDX license tags 2018-06-06 14:17:53 -07:00
xfs_trans_space.h xfs: convert to SPDX license tags 2018-06-06 14:17:53 -07:00
xfs_types.c xfs: add online scrub for superblock counters 2019-04-30 08:19:13 -07:00
xfs_types.h xfs: add online scrub for superblock counters 2019-04-30 08:19:13 -07:00