Commit 6c0d077f authored by Ira Weiny's avatar Ira Weiny Committed by Theodore Ts'o

fs/ext4: Disallow verity if inode is DAX

Verity and DAX are incompatible.  Changing the DAX mode due to a verity
flag change is wrong without a corresponding address_space_operations
update.

Make the 2 options mutually exclusive by returning an error if DAX was
set first.

(Setting DAX is already disabled if Verity is set first.)
Reviewed-by: default avatarJan Kara <jack@suse.cz>
Signed-off-by: default avatarIra Weiny <ira.weiny@intel.com>

Link: https://lore.kernel.org/r/20200528150003.828793-3-ira.weiny@intel.comSigned-off-by: default avatarTheodore Ts'o <tytso@mit.edu>
parent ff694ab6
...@@ -39,3 +39,6 @@ is encrypted as well as the data itself. ...@@ -39,3 +39,6 @@ is encrypted as well as the data itself.
Verity files cannot have blocks allocated past the end of the verity Verity files cannot have blocks allocated past the end of the verity
metadata. metadata.
Verity and DAX are not compatible and attempts to set both of these flags
on a file will fail.
...@@ -113,6 +113,9 @@ static int ext4_begin_enable_verity(struct file *filp) ...@@ -113,6 +113,9 @@ static int ext4_begin_enable_verity(struct file *filp)
handle_t *handle; handle_t *handle;
int err; int err;
if (IS_DAX(inode))
return -EINVAL;
if (ext4_verity_in_progress(inode)) if (ext4_verity_in_progress(inode))
return -EBUSY; return -EBUSY;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment