linux/fs/xfs/libxfs
Darrick J. Wong e5821e57af xfs: during btree split, save new block key & ptr for future insertion
When a btree block has to be split, we pass the new block's ptr from
xfs_btree_split() back to xfs_btree_insert() via a pointer parameter;
however, we pass the block's key through the cursor's record.  It is a
little weird to "initialize" a record from a key since the non-key
attributes will have garbage values.

When we go to add support for interval queries, we have to be able to
pass the lowest and highest keys accessible via a pointer.  There's no
clean way to pass this back through the cursor's record field.
Therefore, pass the key directly back to xfs_btree_insert() the same
way that we pass the btree_ptr.

As a bonus, we no longer need init_rec_from_key and can drop it from the
codebase.

Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
Reviewed-by: Brian Foster <bfoster@redhat.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Dave Chinner <david@fromorbit.com>
2016-08-03 11:02:39 +10:00
..
xfs_alloc_btree.c xfs: during btree split, save new block key & ptr for future insertion 2016-08-03 11:02:39 +10:00
xfs_alloc_btree.h
xfs_alloc.c Merge branch 'xfs-4.8-misc-fixes-2' into for-next 2016-06-21 11:55:13 +10:00
xfs_alloc.h Merge branch 'xfs-4.8-misc-fixes-2' into for-next 2016-06-21 11:55:13 +10:00
xfs_attr_leaf.c xfs: print name of verifier if it fails 2016-01-04 16:10:19 +11:00
xfs_attr_leaf.h xfs: make several functions static 2016-06-01 17:38:15 +10:00
xfs_attr_remote.c xfs: eliminate committed arg from xfs_bmap_finish 2016-01-11 11:34:01 +11:00
xfs_attr_remote.h
xfs_attr_sf.h xfs: move struct xfs_attr_shortform to xfs_da_format.h 2016-02-08 15:00:01 +11:00
xfs_attr.c xfs: better xfs_trans_alloc interface 2016-04-06 09:19:55 +10:00
xfs_bit.c libxfs: Optimize the loop for xfs_bitmap_empty 2016-01-04 16:10:19 +11:00
xfs_bit.h
xfs_bmap_btree.c xfs: during btree split, save new block key & ptr for future insertion 2016-08-03 11:02:39 +10:00
xfs_bmap_btree.h
xfs_bmap.c xfs: fix locking of the rt bitmap/summary inodes 2016-08-03 11:00:42 +10:00
xfs_bmap.h xfs: convert list of extents to free into a regular list 2016-06-21 11:53:28 +10:00
xfs_btree.c xfs: during btree split, save new block key & ptr for future insertion 2016-08-03 11:02:39 +10:00
xfs_btree.h xfs: during btree split, save new block key & ptr for future insertion 2016-08-03 11:02:39 +10:00
xfs_cksum.h
xfs_da_btree.c libxfs: directory node splitting does not have an extra block 2016-07-22 09:51:05 +10:00
xfs_da_btree.h
xfs_da_format.c xfs: kill xfs_dir2_inou_t 2016-07-20 11:48:31 +10:00
xfs_da_format.h xfs: fix attr shortform structure alignment on cris 2016-08-03 10:59:42 +10:00
xfs_dir2_block.c xfs: print name of verifier if it fails 2016-01-04 16:10:19 +11:00
xfs_dir2_data.c xfs: print name of verifier if it fails 2016-01-04 16:10:19 +11:00
xfs_dir2_leaf.c xfs: print name of verifier if it fails 2016-01-04 16:10:19 +11:00
xfs_dir2_node.c xfs: always set rvalp in xfs_dir2_node_trim_free 2016-03-15 11:44:18 +11:00
xfs_dir2_priv.h xfs: move type conversion functions to xfs_dir.h 2014-12-04 09:43:17 +11:00
xfs_dir2_sf.c xfs: kill xfs_dir2_inou_t 2016-07-20 11:48:31 +10:00
xfs_dir2.c xfs: mode di_mode to vfs inode 2016-02-09 16:54:58 +11:00
xfs_dir2.h xfs: move type conversion functions to xfs_dir.h 2014-12-04 09:43:17 +11:00
xfs_dquot_buf.c xfs: handle dquot buffer readahead in log recovery correctly 2016-01-12 07:04:01 +11:00
xfs_format.h xfs: remove the magic numbers in xfs_btree_block-related len macros 2016-07-20 10:43:11 +10:00
xfs_fs.h xfs: define XFS_IOC_FREEZE even if FIFREEZE is defined 2016-06-01 17:38:15 +10:00
xfs_ialloc_btree.c xfs: during btree split, save new block key & ptr for future insertion 2016-08-03 11:02:39 +10:00
xfs_ialloc_btree.h xfs: allocate sparse inode chunks on full chunk allocation failure 2015-05-29 09:18:32 +10:00
xfs_ialloc.c xfs: refactor btree maxlevels computation 2016-06-21 11:53:28 +10:00
xfs_ialloc.h Merge branch 'xfs-misc-fixes-for-4.2-3' into for-next 2015-06-23 08:49:01 +10:00
xfs_inode_buf.c xfs: mode di_mode to vfs inode 2016-02-09 16:54:58 +11:00
xfs_inode_buf.h xfs: mode di_mode to vfs inode 2016-02-09 16:54:58 +11:00
xfs_inode_fork.c Merge branch 'xfs-4.7-inode-reclaim' into for-next 2016-05-20 10:34:00 +10:00
xfs_inode_fork.h xfs: factor out a helper to initialize a local format inode fork 2016-04-06 07:41:43 +10:00
xfs_log_format.h xfs: remove transaction types 2016-04-06 09:20:36 +10:00
xfs_log_recover.h xfs: support a crc verification only log record pass 2016-01-04 15:55:10 +11:00
xfs_log_rlimit.c xfs: move most of xfs_sb.h to xfs_format.h 2014-11-28 14:27:09 +11:00
xfs_quota_defs.h xfs: wire up Q_XGETNEXTQUOTA / get_nextdqblk 2016-02-08 11:27:38 +11:00
xfs_rtbitmap.c xfs: make several functions static 2016-06-01 17:38:15 +10:00
xfs_sb.c xfs: better xfs_trans_alloc interface 2016-04-06 09:19:55 +10:00
xfs_sb.h xfs: remove unused function definitions 2016-02-08 14:58:07 +11:00
xfs_shared.h xfs: remove transaction types 2016-04-06 09:20:36 +10:00
xfs_symlink_remote.c xfs: print name of verifier if it fails 2016-01-04 16:10:19 +11:00
xfs_trans_resv.c xfs: consolidate superblock logging functions 2015-01-22 09:10:31 +11:00
xfs_trans_resv.h xfs: clean up XFS_MIN_FREELIST macros 2015-06-22 10:13:30 +10:00
xfs_trans_space.h xfs: clean up XFS_MIN_FREELIST macros 2015-06-22 10:13:30 +10:00
xfs_types.h xfs: move xfs_types.h to libxfs 2015-01-09 10:46:31 +11:00