linux/fs/xfs
Darrick J. Wong e6a74dcf9b xfs: refactor aligning bestlen to prod
There are two places in xfs_rtalloc.c where we want to make sure that a
count of rt extents is aligned with a particular prod(uct) factor.  In
one spot, we actually use rounddown(), albeit unnecessarily if prod < 2.
In the other case, we open-code this rounding inefficiently by promoting
the 32-bit length value to a 64-bit value and then performing a 64-bit
division to figure out the subtraction.

Refactor this into a single helper that uses the correct types and
division method for the type, and skips the division entirely unless
prod is large enough to make a difference.

Signed-off-by: Darrick J. Wong <djwong@kernel.org>
Reviewed-by: Christoph Hellwig <hch@lst.de>
2024-09-01 08:58:19 -07:00
..
libxfs xfs: ensure rtx mask/shift are correct after growfs 2024-09-01 08:58:19 -07:00
scrub xfs: pass the icreate args object to xfs_dialloc 2024-09-01 08:58:19 -07:00
Kconfig xfs: verify buffer, inode, and dquot items every tx commit 2024-07-02 11:36:54 -07:00
Makefile xfs: hoist inode flag conversion functions to libxfs 2024-07-02 11:36:55 -07:00
xfs_acl.c xfs: make attr removal an explicit operation 2024-04-23 07:46:51 -07:00
xfs_acl.h
xfs_aops.c xfs: xfs_quota_unreserve_blkres can't fail 2024-05-03 11:15:03 +05:30
xfs_aops.h
xfs_attr_inactive.c xfs: report dir/attr block corruption errors to the health system 2024-02-22 12:32:18 -08:00
xfs_attr_item.c xfs: fix xfs_init_attr_trans not handling explicit operation codes 2024-05-27 15:55:52 +05:30
xfs_attr_item.h xfs: create attr log item opcodes and formats for parent pointers 2024-04-23 07:46:57 -07:00
xfs_attr_list.c xfs: convert comma to semicolon 2024-07-29 09:32:53 +05:30
xfs_bio_io.c
xfs_bmap_item.c xfs: pass the fsbno to xfs_perag_intent_get 2024-07-02 11:37:01 -07:00
xfs_bmap_item.h xfs: move xfs_bmap_defer_add to xfs_bmap_item.c 2024-02-22 12:44:21 -08:00
xfs_bmap_util.c xfs: Fix xfs_prepare_shift() range for RT 2024-07-01 09:32:29 +05:30
xfs_bmap_util.h xfs: fix freeing speculative preallocations for preallocated files 2024-06-26 14:29:17 +05:30
xfs_buf_item_recover.c xfs: convert remaining kmem_free() to kfree() 2024-02-13 18:07:34 +05:30
xfs_buf_item.c xfs: verify buffer, inode, and dquot items every tx commit 2024-07-02 11:36:54 -07:00
xfs_buf_item.h
xfs_buf_mem.c xfs: fix dev_t usage in xmbuf tracepoints 2024-03-15 10:30:23 +05:30
xfs_buf_mem.h xfs: launder in-memory btree buffers before transaction commit 2024-02-22 12:43:36 -08:00
xfs_buf.c getting rid of bogus set_blocksize() uses, switching it 2024-05-21 08:34:51 -07:00
xfs_buf.h New code for 6.9: 2024-03-13 13:52:24 -07:00
xfs_dahash_test.c
xfs_dahash_test.h
xfs_dir2_readdir.c xfs: refactor dir format helpers 2024-04-26 11:21:46 +05:30
xfs_discard.c xfs: don't bother reporting blocks trimmed via FITRIM 2024-08-26 09:52:13 +05:30
xfs_discard.h
xfs_dquot_item_recover.c xfs: dquot recovery does not validate the recovered dquot 2023-11-22 23:39:36 +05:30
xfs_dquot_item.c xfs: verify buffer, inode, and dquot items every tx commit 2024-07-02 11:36:54 -07:00
xfs_dquot_item.h
xfs_dquot.c xfs: simplify iext overflow checking and upgrade 2024-05-03 11:20:06 +05:30
xfs_dquot.h xfs: Increase XFS_QM_TRANS_MAXDQS to 5 2024-04-15 14:59:01 -07:00
xfs_drain.c xfs: pass the fsbno to xfs_perag_intent_get 2024-07-02 11:37:01 -07:00
xfs_drain.h xfs: pass the fsbno to xfs_perag_intent_get 2024-07-02 11:37:01 -07:00
xfs_error.c xfs: add error injection to test file mapping exchange recovery 2024-04-15 14:54:19 -07:00
xfs_error.h
xfs_exchmaps_item.c xfs: capture inode generation numbers in the ondisk exchmaps log item 2024-04-15 14:54:24 -07:00
xfs_exchmaps_item.h xfs: create deferred log items for file mapping exchanges 2024-04-15 14:54:17 -07:00
xfs_exchrange.c xfs: introduce new file range commit ioctls 2024-09-01 08:58:19 -07:00
xfs_exchrange.h xfs: introduce new file range commit ioctls 2024-09-01 08:58:19 -07:00
xfs_export.c xfs: add parent pointer ioctls 2024-04-23 07:47:00 -07:00
xfs_export.h xfs: add parent pointer ioctls 2024-04-23 07:47:00 -07:00
xfs_extent_busy.c xfs: unwind xfs_extent_busy_clear 2024-04-22 12:53:34 +05:30
xfs_extent_busy.h xfs: repair free space btrees 2023-12-15 10:03:32 -08:00
xfs_extfree_item.c xfs: move xfs_extent_free_defer_add to xfs_extfree_item.c 2024-07-02 11:37:03 -07:00
xfs_extfree_item.h xfs: move xfs_extent_free_defer_add to xfs_extfree_item.c 2024-07-02 11:37:03 -07:00
xfs_file.c xfs: fold xfs_ilock_for_write_fault into xfs_write_fault 2024-07-01 09:32:29 +05:30
xfs_file.h xfs: create a new helper to return a file's allocation unit 2024-04-15 14:54:10 -07:00
xfs_filestream.c xfs: convert remaining kmem_free() to kfree() 2024-02-13 18:07:34 +05:30
xfs_filestream.h
xfs_fsmap.c xfs: Fix missing interval for missing_owner in xfs fsmap 2024-08-27 18:32:14 +05:30
xfs_fsmap.h
xfs_fsops.c xfs: split xfs_mod_freecounter 2024-04-22 18:00:47 +05:30
xfs_fsops.h xfs: split xfs_mod_freecounter 2024-04-22 18:00:47 +05:30
xfs_globals.c xfs: add debug knobs to control btree bulk load slack factors 2023-12-15 10:03:28 -08:00
xfs_handle.c xfs: Remove header files which are included more than once 2024-07-01 09:32:29 +05:30
xfs_handle.h xfs: add parent pointer ioctls 2024-04-23 07:47:00 -07:00
xfs_health.c xfs: report directory tree corruption in the health information 2024-04-23 16:55:17 -07:00
xfs_hooks.c xfs: allow scrub to hook metadata updates in other writers 2024-02-22 12:30:45 -08:00
xfs_hooks.h xfs: allow scrub to hook metadata updates in other writers 2024-02-22 12:30:45 -08:00
xfs_icache.c xfs: validate inumber in xfs_iget 2024-09-01 08:58:19 -07:00
xfs_icache.h
xfs_icreate_item.c xfs: convert kmem_free() for kvmalloc users to kvfree() 2024-02-13 18:07:34 +05:30
xfs_icreate_item.h
xfs_inode_item_recover.c xfs: convert remaining kmem_free() to kfree() 2024-02-13 18:07:34 +05:30
xfs_inode_item.c xfs: skip flushing log items during push 2024-07-04 12:46:47 +05:30
xfs_inode_item.h
xfs_inode.c xfs: pass the icreate args object to xfs_dialloc 2024-09-01 08:58:19 -07:00
xfs_inode.h xfs: match on the global RT inode numbers in xfs_is_metadata_inode 2024-09-01 08:58:19 -07:00
xfs_ioctl32.c xfs: move handle ioctl code to xfs_handle.c 2024-04-23 07:47:00 -07:00
xfs_ioctl32.h
xfs_ioctl.c xfs: introduce new file range commit ioctls 2024-09-01 08:58:19 -07:00
xfs_ioctl.h xfs: move handle ioctl code to xfs_handle.c 2024-04-23 07:47:00 -07:00
xfs_iomap.c xfs: move the dio write relocking out of xfs_ilock_for_iomap 2024-07-01 09:32:29 +05:30
xfs_iomap.h
xfs_iops.c New code for 6.11: 2024-07-17 12:57:48 -07:00
xfs_iops.h xfs: declare xfs_file.c symbols in xfs_file.h 2024-04-15 14:54:09 -07:00
xfs_itable.c xfs: hide private inodes from bulkstat and handle functions 2024-04-15 14:58:48 -07:00
xfs_itable.h
xfs_iunlink_item.c
xfs_iunlink_item.h
xfs_iwalk.c xfs: Clear W=1 warning in xfs_iwalk_run_callbacks() 2024-05-27 15:54:24 +05:30
xfs_iwalk.h
xfs_linux.h xfs: hoist project id get/set functions to libxfs 2024-07-02 11:36:56 -07:00
xfs_log_cil.c xfs: grant heads track byte counts, not LSNs 2024-07-04 12:46:47 +05:30
xfs_log_priv.h xfs: grant heads track byte counts, not LSNs 2024-07-04 12:46:47 +05:30
xfs_log_recover.c xfs: grant heads track byte counts, not LSNs 2024-07-04 12:46:47 +05:30
xfs_log.c xfs: grant heads track byte counts, not LSNs 2024-07-04 12:46:47 +05:30
xfs_log.h xfs: AIL doesn't need manual pushing 2024-07-04 12:46:46 +05:30
xfs_message.c
xfs_message.h
xfs_mount.c xfs: use an XFS_OPSTATE_ flag for detecting if logged xattrs are available 2024-04-23 07:46:51 -07:00
xfs_mount.h xfs: use an XFS_OPSTATE_ flag for detecting if logged xattrs are available 2024-04-23 07:46:51 -07:00
xfs_mru_cache.c xfs: use GFP_KERNEL in pure transaction contexts 2024-02-13 18:07:35 +05:30
xfs_mru_cache.h
xfs_notify_failure.c mm, pmem, xfs: Introduce MF_MEM_PRE_REMOVE for unbind 2023-12-07 14:34:26 +05:30
xfs_pnfs.c
xfs_pnfs.h
xfs_pwork.c
xfs_pwork.h
xfs_qm_bhv.c xfs: Remove header files which are included more than once 2024-07-01 09:32:29 +05:30
xfs_qm_syscalls.c
xfs_qm.c xfs: pass the icreate args object to xfs_dialloc 2024-09-01 08:58:19 -07:00
xfs_qm.h xfs: Increase XFS_QM_TRANS_MAXDQS to 5 2024-04-15 14:59:01 -07:00
xfs_quota.h xfs: xfs_quota_unreserve_blkres can't fail 2024-05-03 11:15:03 +05:30
xfs_quotaops.c
xfs_refcount_item.c xfs: move xfs_refcount_update_defer_add to xfs_refcount_item.c 2024-07-02 11:37:07 -07:00
xfs_refcount_item.h xfs: move xfs_refcount_update_defer_add to xfs_refcount_item.c 2024-07-02 11:37:07 -07:00
xfs_reflink.c xfs: convert "skip_discard" to a proper flags bitset 2024-07-02 11:37:01 -07:00
xfs_reflink.h xfs: move inode copy-on-write predicates to xfs_inode.[ch] 2024-07-02 11:36:55 -07:00
xfs_rmap_item.c xfs: move xfs_rmap_update_defer_add to xfs_rmap_item.c 2024-07-02 11:37:05 -07:00
xfs_rmap_item.h xfs: move xfs_rmap_update_defer_add to xfs_rmap_item.c 2024-07-02 11:37:05 -07:00
xfs_rtalloc.c xfs: refactor aligning bestlen to prod 2024-09-01 08:58:19 -07:00
xfs_rtalloc.h xfs: move xfs_bmap_rtalloc to xfs_rtalloc.c 2023-12-22 11:18:11 +05:30
xfs_stats.c xfs: define an in-memory btree for storing refcount bag info during repairs 2024-02-22 12:43:40 -08:00
xfs_stats.h xfs: define an in-memory btree for storing refcount bag info during repairs 2024-02-22 12:43:40 -08:00
xfs_super.c xfs: add a incompat feature bit for parent pointers 2024-04-23 07:47:01 -07:00
xfs_super.h
xfs_symlink.c xfs: pass the icreate args object to xfs_dialloc 2024-09-01 08:58:19 -07:00
xfs_symlink.h xfs: move remote symlink target read function to libxfs 2024-02-22 12:45:17 -08:00
xfs_sysctl.c sysctl: treewide: constify the ctl_table argument of proc_handlers 2024-07-24 20:59:29 +02:00
xfs_sysctl.h xfs: add debug knobs to control btree bulk load slack factors 2023-12-15 10:03:28 -08:00
xfs_sysfs.c xfs: grant heads track byte counts, not LSNs 2024-07-04 12:46:47 +05:30
xfs_sysfs.h
xfs_trace.c xfs: l_last_sync_lsn is really AIL state 2024-07-04 12:46:46 +05:30
xfs_trace.h xfs: introduce new file range commit ioctls 2024-09-01 08:58:19 -07:00
xfs_trans_ail.c xfs: revert AIL TASK_KILLABLE threshold 2024-08-14 21:19:34 +05:30
xfs_trans_buf.c xfs: launder in-memory btree buffers before transaction commit 2024-02-22 12:43:36 -08:00
xfs_trans_dquot.c xfs: Increase XFS_QM_TRANS_MAXDQS to 5 2024-04-15 14:59:01 -07:00
xfs_trans_priv.h xfs: l_last_sync_lsn is really AIL state 2024-07-04 12:46:46 +05:30
xfs_trans.c xfs: move and rename xfs_trans_committed_bulk 2024-07-04 12:46:46 +05:30
xfs_trans.h xfs: skip flushing log items during push 2024-07-04 12:46:47 +05:30
xfs_xattr.c xfs: allow SECURE namespace xattrs to use reserved block pool 2024-07-29 09:26:20 +05:30
xfs_xattr.h xfs: remove xfs_da_args.attr_flags 2024-04-23 07:46:50 -07:00
xfs.h xfs: verify buffer, inode, and dquot items every tx commit 2024-07-02 11:36:54 -07:00