Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 230f5a89 authored by Dan Williams's avatar Dan Williams
Browse files

dax: fix vma_is_fsdax() helper



Gerd reports that ->i_mode may contain other bits besides S_IFCHR. Use
S_ISCHR() instead. Otherwise, get_user_pages_longterm() may fail on
device-dax instances when those are meant to be explicitly allowed.

Fixes: 2bb6d283 ("mm: introduce get_user_pages_longterm")
Cc: <stable@vger.kernel.org>
Reported-by: default avatarGerd Rausch <gerd.rausch@oracle.com>
Acked-by: default avatarJane Chu <jane.chu@oracle.com>
Reported-by: default avatarHaozhong Zhang <haozhong.zhang@intel.com>
Reviewed-by: default avatarJan Kara <jack@suse.cz>
Signed-off-by: default avatarDan Williams <dan.j.williams@intel.com>
parent 9d4949b4
Loading
Loading
Loading
Loading
+1 −1
Original line number Original line Diff line number Diff line
@@ -3198,7 +3198,7 @@ static inline bool vma_is_fsdax(struct vm_area_struct *vma)
	if (!vma_is_dax(vma))
	if (!vma_is_dax(vma))
		return false;
		return false;
	inode = file_inode(vma->vm_file);
	inode = file_inode(vma->vm_file);
	if (inode->i_mode == S_IFCHR)
	if (S_ISCHR(inode->i_mode))
		return false; /* device-dax */
		return false; /* device-dax */
	return true;
	return true;
}
}