> > This allows the direct I/O path to do I/O and raise &
lower page->_refcount
> > while we're executing a truncate/hole punch. This leads to us trying to
free
> > a page with an elevated refcount.
I don't see how this is possible in XFS - maybe I'm missing
something, but "direct IO submission during truncate" is not
something that should ever be happening in XFS, DAX or not.
The pages involved in a direct I/O are not that of the file that
the direct I/O read/write syscalls are called on, but those of the
memory regions the direct I/O read/write syscalls operate on.
Those pages could be file backed and undergo a truncate at the
same time.