summaryrefslogtreecommitdiff
path: root/fs/xfs/xfs_aops.c
diff options
context:
space:
mode:
authorDave Chinner <david@fromorbit.com>2016-07-20 11:54:37 +1000
committerDave Chinner <david@fromorbit.com>2016-07-20 11:54:37 +1000
commitb47ec80bfe1eadd530a13522890d43d71eda10f8 (patch)
tree29e95ca6aebb2f6a911fdfb33cdf8f5b794c1779 /fs/xfs/xfs_aops.c
parentbbfeb6141fcc8e2aea47b2f235cc8cc8ffb4a293 (diff)
parent16d4d43595b4780daac8fcea6d042689124cb094 (diff)
Merge branch 'xfs-4.8-split-dax-dio' into for-next
Diffstat (limited to 'fs/xfs/xfs_aops.c')
-rw-r--r--fs/xfs/xfs_aops.c24
1 files changed, 5 insertions, 19 deletions
diff --git a/fs/xfs/xfs_aops.c b/fs/xfs/xfs_aops.c
index 80714ebd54c0..b3682774a07d 100644
--- a/fs/xfs/xfs_aops.c
+++ b/fs/xfs/xfs_aops.c
@@ -1303,7 +1303,7 @@ xfs_get_blocks_dax_fault(
* whereas if we have flags set we will always be called in task context
* (i.e. from a workqueue).
*/
-STATIC int
+int
xfs_end_io_direct_write(
struct kiocb *iocb,
loff_t offset,
@@ -1374,24 +1374,10 @@ xfs_vm_direct_IO(
struct kiocb *iocb,
struct iov_iter *iter)
{
- struct inode *inode = iocb->ki_filp->f_mapping->host;
- dio_iodone_t *endio = NULL;
- int flags = 0;
- struct block_device *bdev;
-
- if (iov_iter_rw(iter) == WRITE) {
- endio = xfs_end_io_direct_write;
- flags = DIO_ASYNC_EXTEND;
- }
-
- if (IS_DAX(inode)) {
- return dax_do_io(iocb, inode, iter,
- xfs_get_blocks_direct, endio, 0);
- }
-
- bdev = xfs_find_bdev_for_inode(inode);
- return __blockdev_direct_IO(iocb, inode, bdev, iter,
- xfs_get_blocks_direct, endio, NULL, flags);
+ /*
+ * We just need the method present so that open/fcntl allow direct I/O.
+ */
+ return -EINVAL;
}
STATIC sector_t