Re: [Question] ext4/xfs: Default behavior changed after per-file DAX

Eric Sandeen
2021-10-28T16:29:11Z

On 10/27/21 8:14 AM, Vivek Goyal wrote:
> On Wed, Oct 27, 2021 at 09:33:17AM +1100, Dave Chinner wrote:

...

> Hi Dave,
>
> Thanks for all the explanaiton and background. It helps me a lot in
> wrapping my head around the rationale for current design.
>
>> It's perfectly reasonable. If the hardware doesn't support DAX, then
>> we just always behave as if dax=never is set.
>
> I tried mounting non-DAX block device with dax=always and it failed
> saying DAX can't be used with reflink.
>
> [ 100.371978] XFS (vdb): DAX unsupported by block device. Turning off DAX.
> [ 100.374185] XFS (vdb): DAX and reflink cannot be used together!
>
> So looks like first check tried to fallback to dax=never as device does
> not support DAX. But later reflink check thought dax is enabled and
> did not fallback to dax=never.

We need to think hard about this stuff and audit it to be sure.

But, I think that reflink check should probably just be removed, now that
DAX files and reflinked files can co-exist on a filesystem - it's just
that they can't both be active on the /same file/.

I think that even "dax=always" is still just "advisory" - it means,
try to enable dax on every file. It may still fail in the same ways as
dax=inode (default) + flag set may fail.

But ... we should go through the whole mount option / feature set /
device capability logic to be sure this is all consistent. Thanks for
pointing it out!

-Eric

>> IO