Re: [PATCH] netfs: Fix undifferentiation of DIO reads from unbuffered reads

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



David Howells <dhowells@xxxxxxxxxx> writes:

> On cifs, "DIO reads" (specified by O_DIRECT) need to be differentiated from
> "unbuffered reads" (specified by cache=none in the mount parameters).  The
> difference is flagged in the protocol and the server may behave
> differently: Windows Server will, for example, mandate that DIO reads are
> block aligned.
>
> Fix this by adding a NETFS_UNBUFFERED_READ to differentiate this from
> NETFS_DIO_READ, parallelling the write differentiation that already exists.
>
> A further patch will be required to make cifs do something different,
> depending on the rreq->origin set.
>
> Fixes: 016dc8516aec ("netfs: Implement unbuffered/DIO read support")
> Signed-off-by: David Howells <dhowells@xxxxxxxxxx>
> cc: Paulo Alcantara <pc@xxxxxxxxxxxxx>
> cc: Steve French <sfrench@xxxxxxxxx>
> cc: netfs@xxxxxxxxxxxxxxx
> cc: v9fs@xxxxxxxxxxxxxxx
> cc: linux-afs@xxxxxxxxxxxxxxxxxxx
> cc: linux-cifs@xxxxxxxxxxxxxxx
> cc: ceph-devel@xxxxxxxxxxxxxxx
> cc: linux-nfs@xxxxxxxxxxxxxxx
> cc: linux-fsdevel@xxxxxxxxxxxxxxx
> ---
>  fs/9p/vfs_addr.c             |    3 ++-
>  fs/afs/write.c               |    1 +
>  fs/ceph/addr.c               |    4 +++-
>  fs/netfs/direct_read.c       |    3 ++-
>  fs/netfs/main.c              |    1 +
>  fs/netfs/misc.c              |    1 +
>  fs/netfs/objects.c           |    1 +
>  fs/netfs/read_collect.c      |    7 +++++--
>  fs/nfs/fscache.c             |    1 +
>  fs/smb/client/file.c         |    3 ++-
>  include/linux/netfs.h        |    1 +
>  include/trace/events/netfs.h |    1 +
>  12 files changed, 21 insertions(+), 6 deletions(-)

Reviewed-by: Paulo Alcantara (Red Hat) <pc@xxxxxxxxxxxxx>




[Index of Archives]     [CEPH Users]     [Ceph Large]     [Ceph Dev]     [Information on CEPH]     [Linux BTRFS]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux