linux/fs/xfs/libxfs
Brian Foster 6691cd9267 xfs: skip small alloc cntbt logic on NULL cursor
The small allocation helper is implemented in a way that is fairly
tightly integrated to the existing allocation algorithms. It expects
a cntbt cursor beyond the end of the tree, attempts to locate the
last record in the tree and only attempts an AGFL allocation if the
cntbt is empty.

The upcoming generic algorithm doesn't rely on the cntbt processing
of this function. It will only call this function when the cntbt
doesn't have a big enough extent or is empty and thus AGFL
allocation is the only remaining option. Tweak
xfs_alloc_ag_vextent_small() to handle a NULL cntbt cursor and skip
the cntbt logic. This facilitates use by the existing allocation
code and new code that only requires an AGFL allocation attempt.

Signed-off-by: Brian Foster <bfoster@redhat.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Darrick J. Wong <darrick.wong@oracle.com>
Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
2019-06-28 19:30:20 -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_ag.c xfs: remove unused flag arguments 2019-06-12 09:00:00 -07:00
xfs_ag.h xfs: add a new ioctl to describe allocation group geometry 2019-04-14 18:15:57 -07:00
xfs_alloc_btree.c xfs: add struct xfs_mount pointer to struct xfs_buf 2019-06-28 19:27:29 -07:00
xfs_alloc_btree.h xfs: convert to SPDX license tags 2018-06-06 14:17:53 -07:00
xfs_alloc.c xfs: skip small alloc cntbt logic on NULL cursor 2019-06-28 19:30:20 -07:00
xfs_alloc.h xfs: const-ify xfs_owner_info arguments 2018-12-12 08:47:16 -08:00
xfs_attr_leaf.c xfs: add struct xfs_mount pointer to struct xfs_buf 2019-06-28 19:27:29 -07:00
xfs_attr_leaf.h xfs: convert to SPDX license tags 2018-06-06 14:17:53 -07:00
xfs_attr_remote.c xfs: add struct xfs_mount pointer to struct xfs_buf 2019-06-28 19:27:29 -07: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_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_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_btree.c xfs: add struct xfs_mount pointer to struct xfs_buf 2019-06-28 19:27:29 -07:00
xfs_bmap_btree.h xfs: convert to SPDX license tags 2018-06-06 14:17:53 -07:00
xfs_bmap.c xfs: remove unused flag arguments 2019-06-12 09:00:00 -07:00
xfs_bmap.h xfs: make COW fork unwritten extent conversions more robust 2019-02-21 07:55:07 -08:00
xfs_btree.c xfs: add struct xfs_mount pointer to struct xfs_buf 2019-06-28 19:27:29 -07:00
xfs_btree.h xfs: remove unused flag arguments 2019-06-12 09:00:00 -07:00
xfs_cksum.h
xfs_da_btree.c xfs: add struct xfs_mount pointer to struct xfs_buf 2019-06-28 19:27:29 -07: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_block.c xfs: add struct xfs_mount pointer to struct xfs_buf 2019-06-28 19:27:29 -07:00
xfs_dir2_data.c xfs: add struct xfs_mount pointer to struct xfs_buf 2019-06-28 19:27:29 -07:00
xfs_dir2_leaf.c xfs: add struct xfs_mount pointer to struct xfs_buf 2019-06-28 19:27:29 -07:00
xfs_dir2_node.c xfs: add struct xfs_mount pointer to struct xfs_buf 2019-06-28 19:27:29 -07:00
xfs_dir2_priv.h xfs: convert to SPDX license tags 2018-06-06 14:17:53 -07:00
xfs_dir2_sf.c xfs: move xfs_ino_geometry to xfs_shared.h 2019-06-28 19:25:35 -07:00
xfs_dir2.c xfs: move xfs_ino_geometry to xfs_shared.h 2019-06-28 19:25:35 -07:00
xfs_dir2.h xfs: check directory name validity 2019-02-11 16:06:40 -08:00
xfs_dquot_buf.c xfs: add struct xfs_mount pointer to struct xfs_buf 2019-06-28 19:27:29 -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_ino_geometry to xfs_shared.h 2019-06-28 19:25:35 -07: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_btree.c xfs: add struct xfs_mount pointer to struct xfs_buf 2019-06-28 19:27:29 -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_ialloc.c xfs: add struct xfs_mount pointer to struct xfs_buf 2019-06-28 19:27:29 -07:00
xfs_ialloc.h xfs: refactor inode geometry setup routines 2019-06-12 08:37:40 -07:00
xfs_iext_tree.c xfs: move xfs_ino_geometry to xfs_shared.h 2019-06-28 19:25:35 -07:00
xfs_inode_buf.c xfs: add struct xfs_mount pointer to struct xfs_buf 2019-06-28 19:27:29 -07:00
xfs_inode_buf.h xfs: convert to SPDX license tags 2018-06-06 14:17:53 -07:00
xfs_inode_fork.c xfs: move xfs_ino_geometry to xfs_shared.h 2019-06-28 19:25:35 -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_btree.c xfs: add struct xfs_mount pointer to struct xfs_buf 2019-06-28 19:27:29 -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_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_rmap_btree.c xfs: add struct xfs_mount pointer to struct xfs_buf 2019-06-28 19:27:29 -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_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_rtbitmap.c xfs: cache minimum realtime summary level 2018-12-12 08:47:17 -08:00
xfs_sb.c xfs: add struct xfs_mount pointer to struct xfs_buf 2019-06-28 19:27:29 -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: move xfs_ino_geometry to xfs_shared.h 2019-06-28 19:25:35 -07:00
xfs_symlink_remote.c xfs: add struct xfs_mount pointer to struct xfs_buf 2019-06-28 19:27:29 -07:00
xfs_trans_resv.c xfs: fix inode_cluster_size rounding mayhem 2019-06-12 08:37:40 -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: separate inode geometry 2019-06-12 08:37:40 -07:00
xfs_types.c xfs: separate inode geometry 2019-06-12 08:37:40 -07:00
xfs_types.h xfs: add online scrub for superblock counters 2019-04-30 08:19:13 -07:00