Commit c19b104a authored by Christoph Hellwig's avatar Christoph Hellwig Committed by Dave Chinner
Browse files

xfs: fold xfs_vm_do_dio into xfs_vm_direct_IO

parent 273dda76
Loading
Loading
Loading
Loading
+14 −22
Original line number Original line Diff line number Diff line
@@ -1596,40 +1596,32 @@ xfs_end_io_direct_write(
	return error;
	return error;
}
}


static inline ssize_t
STATIC ssize_t
xfs_vm_do_dio(
xfs_vm_direct_IO(
	struct inode		*inode,
	struct kiocb		*iocb,
	struct kiocb		*iocb,
	struct iov_iter		*iter,
	struct iov_iter		*iter,
	loff_t			offset,
	loff_t			offset)
	dio_iodone_t		endio,
	int			flags)
{
{
	struct inode		*inode = iocb->ki_filp->f_mapping->host;
	dio_iodone_t		*endio = NULL;
	int			flags = 0;
	struct block_device	*bdev;
	struct block_device	*bdev;


	if (IS_DAX(inode))
	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, offset,
		return dax_do_io(iocb, inode, iter, offset,
				 xfs_get_blocks_direct, endio, 0);
				 xfs_get_blocks_direct, endio, 0);
	}


	bdev = xfs_find_bdev_for_inode(inode);
	bdev = xfs_find_bdev_for_inode(inode);
	return  __blockdev_direct_IO(iocb, inode, bdev, iter, offset,
	return  __blockdev_direct_IO(iocb, inode, bdev, iter, offset,
			xfs_get_blocks_direct, endio, NULL, flags);
			xfs_get_blocks_direct, endio, NULL, flags);
}
}


STATIC ssize_t
xfs_vm_direct_IO(
	struct kiocb		*iocb,
	struct iov_iter		*iter,
	loff_t			offset)
{
	struct inode		*inode = iocb->ki_filp->f_mapping->host;

	if (iov_iter_rw(iter) == WRITE)
		return xfs_vm_do_dio(inode, iocb, iter, offset,
				     xfs_end_io_direct_write, DIO_ASYNC_EXTEND);
	return xfs_vm_do_dio(inode, iocb, iter, offset, NULL, 0);
}

/*
/*
 * Punch out the delalloc blocks we have already allocated.
 * Punch out the delalloc blocks we have already allocated.
 *
 *