Messages in this thread | ![/](/images/icornerl.gif) | | Date | Wed, 1 May 2024 11:48:59 +0100 | Subject | Re: [PATCH v3 10/21] xfs: Update xfs_is_falloc_aligned() mask for forcealign | From | John Garry <> |
| |
On 01/05/2024 00:35, Dave Chinner wrote: >> return !((pos | len) & mask); > I think this whole function needs to be rewritten so that > non-power-of-2 extent sizes are supported on both devices properly. > > xfs_extlen_t fsbs = 1; > u64 bytes; > u32 mod; > > if (xfs_inode_has_forcealign(ip)) > fsbs = ip->i_extsize; > else if (XFS_IS_REALTIME_INODE(ip)) > fsbs = mp->m_sb.sb_rextsize; > > bytes = XFS_FSB_TO_B(mp, fsbs); > if (is_power_of_2(fsbs)) > return !((pos | len) & (bytes - 1)); > > div_u64_rem(pos, bytes, &mod); > if (mod) > return false; > div_u64_rem(len, bytes, &mod); > return mod == 0;
ok, but I still have a doubt about non-power-of-2 forcealign extsize support.
Thanks, John
| ![\](/images/icornerr.gif) |