[PATCH V5 0/9] Enable ext4 support for per-file/directory DAX operations

From: ira . weiny
Date: Thu May 28 2020 - 11:00:18 EST


From: Ira Weiny <ira.weiny@xxxxxxxxx>

Changes from V4:
Fix up DAX mutual exclusion with other flags.
Add clean up patch (remove jflags)

Changes from V3:
Change EXT4_DAX_FL to bit24
Cache device DAX support in the super block and use that is
ext4_should_use_dax()

Changes from V2:
Rework DAX exclusivity with verity and encryption based on feedback
from Eric

Enable the same per file DAX support in ext4 as was done for xfs. This series
builds and depends on the V11 series for xfs.[1]

This passes the same xfstests test as XFS.

The only issue is that this modifies the old mount option parsing code rather
than waiting for the new parsing code to be finalized.

This series starts with 3 fixes which include making Verity and Encrypt truly
mutually exclusive from DAX. I think these first 3 patches should be picked up
for 5.8 regardless of what is decided regarding the mount parsing.

[1] https://lore.kernel.org/lkml/20200428002142.404144-1-ira.weiny@xxxxxxxxx/

To: linux-ext4@xxxxxxxxxxxxxxx
To: Andreas Dilger <adilger.kernel@xxxxxxxxx>
To: "Theodore Y. Ts'o" <tytso@xxxxxxx>
To: Jan Kara <jack@xxxxxxx>
To: Eric Biggers <ebiggers@xxxxxxxxxx>

Cc: Al Viro <viro@xxxxxxxxxxxxxxxxxx>
Cc: Dan Williams <dan.j.williams@xxxxxxxxx>
Cc: Dave Chinner <david@xxxxxxxxxxxxx>
Cc: Christoph Hellwig <hch@xxxxxx>
Cc: Jeff Moyer <jmoyer@xxxxxxxxxx>
Cc: "Darrick J. Wong" <darrick.wong@xxxxxxxxxx>
Cc: linux-fsdevel@xxxxxxxxxxxxxxx
Cc: linux-kernel@xxxxxxxxxxxxxxx
Ira Weiny (9):
fs/ext4: Narrow scope of DAX check in setflags
fs/ext4: Disallow verity if inode is DAX
fs/ext4: Change EXT4_MOUNT_DAX to EXT4_MOUNT_DAX_ALWAYS
fs/ext4: Update ext4_should_use_dax()
fs/ext4: Only change S_DAX on inode load
fs/ext4: Make DAX mount option a tri-state
fs/ext4: Remove jflag variable
fs/ext4: Introduce DAX inode flag
Documentation/dax: Update DAX enablement for ext4

Documentation/filesystems/dax.txt | 6 +-
Documentation/filesystems/ext4/verity.rst | 3 +
fs/ext4/ext4.h | 27 +++++--
fs/ext4/ialloc.c | 2 +-
fs/ext4/inode.c | 26 +++++--
fs/ext4/ioctl.c | 65 ++++++++++++++---
fs/ext4/super.c | 85 ++++++++++++++++++-----
fs/ext4/verity.c | 5 +-
include/uapi/linux/fs.h | 1 +
9 files changed, 175 insertions(+), 45 deletions(-)

--
2.25.1