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

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.com


Signed-off-by: default avatarTheodore Ts'o <tytso@mit.edu>
parent ff694ab6
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -39,3 +39,6 @@ is encrypted as well as the data itself.

Verity files cannot have blocks allocated past the end of the verity
metadata.

Verity and DAX are not compatible and attempts to set both of these flags
on a file will fail.
+3 −0
Original line number Diff line number Diff line
@@ -113,6 +113,9 @@ static int ext4_begin_enable_verity(struct file *filp)
	handle_t *handle;
	int err;

	if (IS_DAX(inode))
		return -EINVAL;

	if (ext4_verity_in_progress(inode))
		return -EBUSY;