On Thu, Oct 28, 2021 at 11:29:08AM -0500, Eric Sandeen wrote: > 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! I was rather hoping that we'd solve this problem by helping Shiyang get his two patchsets landed, and then we can eliminate the dax+reflink check entirely. [1] (dax poison notifications via rmap V7) https://lore.kernel.org/linux-xfs/20210924130959.2695749-1-ruansy.fnst@xxxxxxxxxxx/ [2] (reflink + dax V10) https://lore.kernel.org/linux-xfs/20210928062311.4012070-1-ruansy.fnst@xxxxxxxxxxx/ (The second patchset is AFAICT ready to go, but we still need to iron out the difficulties pointed out in the last review of patchset #1) --D > -Eric > > > > IO