On 18:28 28/03, David Sterba wrote: > On Tue, Mar 26, 2019 at 02:02:47PM -0500, Goldwyn Rodrigues wrote: > > From: Goldwyn Rodrigues <rgoldwyn@xxxxxxxx> > > > > This sets S_DAX in inode->i_flags, which can be used with > > IS_DAX(). > > > > The dax option is restricted to non multi-device mounts. > > dax interacts with the device directly instead of using bio, so > > all bio-hooks which we use for multi-device cannot be performed > > here. While regular read/writes could be manipulated with > > RAID0/1, mmap() is still an issue. > > I'm looking for other features that would not work with dax. Disabling > multiple devices strikes out device add, device delete and device > replace. I am glad you brought this up. > > To be verified: > > - balance - at least profile changes must be forbidden > > - defrag Disabled for now with EOPNOTSUPP primarily because of (null) readpages() in dax. > > - compression - as it needs COW, it won't work on the nodatacow files, > thus seems to be ok Compression would require some sort of processing before writes. However, users are writing directly to disk. So no, this can't be supported either. > > - resize/grow - this could work without changes, no block relocation is > needed, only new structures created > > - resize/shrink - depends on balance, the block groups from the removed > area need to be relocated > > - swapfiles - I'm sure somebody will try that; I haven't seen any > IS_DAX checks in the swapfile activation code -- Goldwyn