Re: [Patch v4 3/3] CIFS: Add direct I/O functions to file_operations

From: Steve French
Date: Wed Oct 31 2018 - 21:41:45 EST


made minor cleanup to patch 1 and 2, added Ronnie's reviewed to patch
3, and tentatively merged to cifs-2.6.git for-next
On Wed, Oct 31, 2018 at 5:16 PM Long Li <longli@xxxxxxxxxxxxxxxxx> wrote:
>
> From: Long Li <longli@xxxxxxxxxxxxx>
>
> With direct read/write functions implemented, add them to file_operations.
>
> Dircet I/O is used under two conditions:
> 1. When mounting with "cache=none", CIFS uses direct I/O for all user file
> data transfer.
> 2. When opening a file with O_DIRECT, CIFS uses direct I/O for all data
> transfer on this file.
>
> Signed-off-by: Long Li <longli@xxxxxxxxxxxxx>
> ---
> fs/cifs/cifsfs.c | 10 ++++------
> 1 file changed, 4 insertions(+), 6 deletions(-)
>
> diff --git a/fs/cifs/cifsfs.c b/fs/cifs/cifsfs.c
> index 62f1662..f18091b 100644
> --- a/fs/cifs/cifsfs.c
> +++ b/fs/cifs/cifsfs.c
> @@ -1113,9 +1113,8 @@ const struct file_operations cifs_file_strict_ops = {
> };
>
> const struct file_operations cifs_file_direct_ops = {
> - /* BB reevaluate whether they can be done with directio, no cache */
> - .read_iter = cifs_user_readv,
> - .write_iter = cifs_user_writev,
> + .read_iter = cifs_direct_readv,
> + .write_iter = cifs_direct_writev,
> .open = cifs_open,
> .release = cifs_close,
> .lock = cifs_lock,
> @@ -1169,9 +1168,8 @@ const struct file_operations cifs_file_strict_nobrl_ops = {
> };
>
> const struct file_operations cifs_file_direct_nobrl_ops = {
> - /* BB reevaluate whether they can be done with directio, no cache */
> - .read_iter = cifs_user_readv,
> - .write_iter = cifs_user_writev,
> + .read_iter = cifs_direct_readv,
> + .write_iter = cifs_direct_writev,
> .open = cifs_open,
> .release = cifs_close,
> .fsync = cifs_fsync,
> --
> 2.7.4
>


--
Thanks,

Steve