xfs: dynamically switch modes when XFS_DIFLAG2_DAX is set/cleared
authorDave Chinner <dchinner@redhat.com>
Mon, 29 Feb 2016 22:41:33 +0000 (09:41 +1100)
committerDave Chinner <david@fromorbit.com>
Mon, 29 Feb 2016 22:41:33 +0000 (09:41 +1100)
commit3a6a854a82fc1cf12c7f2095b80aff32c563b3ab
treeb67749f7f0d8242d3f0e45644492b4c922bd8b06
parentdb10c697b40e34ac91bbcdd866e73a3d0bad7780
xfs: dynamically switch modes when XFS_DIFLAG2_DAX is set/cleared

When we set or clear the XFS_DIFLAG2_DAX flag, we should also
set/clear the S_DAX flag in the VFS inode. To do this, we need to
ensure that we first flush and remove any cached entries in the
radix tree to ensure the correct data access method is used when we
next try to read or write data. We ahve to be especially careful
here to lock out page faults so they don't race with the flush and
invalidation before we change the access mode.

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>
fs/xfs/xfs_ioctl.c