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>