[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20240501234518.GO360919@frogsfrogsfrogs>
Date: Wed, 1 May 2024 16:45:18 -0700
From: "Darrick J. Wong" <djwong@...nel.org>
To: John Garry <john.g.garry@...cle.com>
Cc: Dave Chinner <david@...morbit.com>, hch@....de, viro@...iv.linux.org.uk,
brauner@...nel.org, jack@...e.cz, chandan.babu@...cle.com,
willy@...radead.org, axboe@...nel.dk, martin.petersen@...cle.com,
linux-kernel@...r.kernel.org, linux-fsdevel@...r.kernel.org,
tytso@....edu, jbongio@...gle.com, ojaswin@...ux.ibm.com,
ritesh.list@...il.com, mcgrof@...nel.org, p.raghav@...sung.com,
linux-xfs@...r.kernel.org, catherine.hoang@...cle.com
Subject: Re: [PATCH v3 10/21] xfs: Update xfs_is_falloc_aligned() mask for
forcealign
On Wed, May 01, 2024 at 11:48:59AM +0100, John Garry wrote:
> 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.
The trouble is, non-power-of-2 extent size hints are supported for
regular and realtime files for funny cases like trying to align
allocations to RAID stripes. I think it would be hard to drop support
for this, given that means that old filesystems can't ever get upgraded
to forcealign.
--D
> Thanks,
> John
>
Powered by blists - more mailing lists