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: Jan Kara <jack@suse.cz>
Signed-off-by: Ira Weiny <ira.weiny@intel.com>

Link: https://lore.kernel.org/r/20200528150003.828793-3-ira.weiny@intel.com
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
This commit is contained in:
Ira Weiny 2020-05-28 07:59:56 -07:00 коммит произвёл Theodore Ts'o
Родитель ff694ab60c
Коммит 6c0d077ff8
2 изменённых файлов: 6 добавлений и 0 удалений

Просмотреть файл

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

Просмотреть файл

@ -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;