xfs: S_DAX is only for regular files
Only regular files can use DAX for data operations, so we should restrict setting it on the VFS inode to regular files. Setting it on metadata inodes may cause the VFS to do the wrong thing for such inodes, so avoid potential problems by restricting the scope of the flag to what we know is supported. Signed-off-by: Dave Chinner <dchinner@redhat.com> Reviewed-by: Brian Foster <bfoster@redhat.com> Tested-by: Ross Zwisler <ross.zwisler@linux.intel.com> Signed-off-by: Dave Chinner <david@fromorbit.com>
This commit is contained in:
parent
e889752905
commit
db10c697b4
|
@ -1205,8 +1205,9 @@ xfs_diflags_to_iflags(
|
|||
inode->i_flags |= S_SYNC;
|
||||
if (flags & XFS_DIFLAG_NOATIME)
|
||||
inode->i_flags |= S_NOATIME;
|
||||
if (ip->i_mount->m_flags & XFS_MOUNT_DAX ||
|
||||
ip->i_d.di_flags2 & XFS_DIFLAG2_DAX)
|
||||
if (S_ISREG(inode->i_mode) &&
|
||||
(ip->i_mount->m_flags & XFS_MOUNT_DAX ||
|
||||
ip->i_d.di_flags2 & XFS_DIFLAG2_DAX))
|
||||
inode->i_flags |= S_DAX;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue