linux/fs/xfs/libxfs
Darrick J. Wong 490d451fa5 xfs: fix inode_cluster_size rounding mayhem
inode_cluster_size is supposed to represent the size (in bytes) of an
inode cluster buffer.  We avoid having to handle multiple clusters per
filesystem block on filesystems with large blocks by openly rounding
this value up to 1 FSB when necessary.  However, we never reset
inode_cluster_size to reflect this new rounded value, which adds to the
potential for mistakes in calculating geometries.

Fix this by setting inode_cluster_size to reflect the rounded-up size if
needed, and special-case the few places in the sparse inodes code where
we actually need the smaller value to validate on-disk metadata.

Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
Reviewed-by: Dave Chinner <dchinner@redhat.com>
2019-06-12 08:37:40 -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: 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_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_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_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_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: 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_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_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_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_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_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: fix inode_cluster_size rounding mayhem 2019-06-12 08:37:40 -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: separate inode geometry 2019-06-12 08:37:40 -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: fix inode_cluster_size rounding mayhem 2019-06-12 08:37:40 -07:00
xfs_ialloc.h xfs: refactor inode geometry setup routines 2019-06-12 08:37:40 -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: separate inode geometry 2019-06-12 08:37:40 -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: 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_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_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: 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_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: refactor inode geometry setup routines 2019-06-12 08:37:40 -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: 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