linux_dsm_epyc7002/fs/nfsd
Trond Myklebust 83a63072c8 nfsd: fix nfs read eof detection
Currently, the knfsd server assumes that a short read indicates an
end of file. That assumption is incorrect. The short read means that
either we've hit the end of file, or we've hit a read error.

In the case of a read error, the client may want to retry (as per the
implementation recommendations in RFC1813 and RFC7530), but currently it
is being told that it hit an eof.

Move the code to detect eof from version specific code into the generic
nfsd read.

Report eof only in the two following cases:
1) read() returns a zero length short read with no error.
2) the offset+length of the read is >= the file size.

Signed-off-by: Trond Myklebust <trond.myklebust@hammerspace.com>
Signed-off-by: J. Bruce Fields <bfields@redhat.com>
2019-09-23 16:24:08 -04:00
..
acl.h nfsd: eliminate an unnecessary acl size limit 2019-08-28 21:13:45 -04:00
auth.c
auth.h
blocklayout.c nfsd: convert fi_deleg_file and ls_file fields to nfsd_file 2019-08-19 11:09:09 -04:00
blocklayoutxdr.c
blocklayoutxdr.h
cache.h nfsd4: drc containerization 2019-07-03 17:52:08 -04:00
current_stateid.h
export.c nfsd: nfsd_file cache entries should be per net namespace 2019-09-10 09:23:41 -04:00
export.h knfsd: Allow lockless lookups of the exports 2018-10-29 16:58:04 -04:00
fault_inject.c nfsd: no need to check return value of debugfs_create functions 2019-07-03 16:57:17 +02:00
filecache.c nfsd: Don't garbage collect files that might contain write errors 2019-09-10 09:23:41 -04:00
filecache.h nfsd: nfsd_file cache entries should be per net namespace 2019-09-10 09:23:41 -04:00
flexfilelayout.c
flexfilelayoutxdr.c
flexfilelayoutxdr.h
idmap.h
Kconfig Deprecate nfsd fault injection 2019-08-26 10:36:56 -04:00
lockd.c
Makefile nfsd: add a new struct file caching facility to nfsd 2019-08-19 11:00:39 -04:00
netns.h nfsd: Support the server resetting the boot verifier 2019-09-10 09:23:41 -04:00
nfs2acl.c
nfs3acl.c
nfs3proc.c nfsd: fix nfs read eof detection 2019-09-23 16:24:08 -04:00
nfs3xdr.c nfsd: Support the server resetting the boot verifier 2019-09-10 09:23:41 -04:00
nfs4acl.c
nfs4callback.c nfsd: Remove unnecessary NULL checks 2019-08-16 13:49:29 -04:00
nfs4idmap.c nfsd: Fix misuse of strlcpy 2019-07-08 23:16:11 -04:00
nfs4layouts.c nfsd: convert fi_deleg_file and ls_file fields to nfsd_file 2019-08-19 11:09:09 -04:00
nfs4proc.c nfsd: Support the server resetting the boot verifier 2019-09-10 09:23:41 -04:00
nfs4recover.c nfsd: add support for upcall version 2 2019-09-10 09:26:33 -04:00
nfs4state.c nfsd: degraded slot-count more gracefully as allocation nears exhaustion. 2019-09-20 12:31:51 -04:00
nfs4xdr.c nfsd: fix nfs read eof detection 2019-09-23 16:24:08 -04:00
nfscache.c nfsd4: Fix kernel crash when reading proc file reply_cache_stats 2019-08-16 13:36:55 -04:00
nfsctl.c nfsd: Support the server resetting the boot verifier 2019-09-10 09:23:41 -04:00
nfsd.h nfsd4: add a client info file 2019-07-03 17:52:50 -04:00
nfsfh.c
nfsfh.h
nfsproc.c nfsd: fix nfs read eof detection 2019-09-23 16:24:08 -04:00
nfssvc.c nfsd: Make nfsd_reset_boot_verifier_locked static 2019-09-23 12:20:10 -04:00
nfsxdr.c nfsd: knfsd must use the container user namespace 2019-04-24 09:46:35 -04:00
pnfs.h
state.h nfsd: add support for upcall version 2 2019-09-10 09:26:33 -04:00
stats.c
stats.h
trace.c
trace.h nfsd: add a new struct file caching facility to nfsd 2019-08-19 11:00:39 -04:00
vfs.c nfsd: fix nfs read eof detection 2019-09-23 16:24:08 -04:00
vfs.h nfsd: fix nfs read eof detection 2019-09-23 16:24:08 -04:00
xdr3.h nfsd: fix nfs read eof detection 2019-09-23 16:24:08 -04:00
xdr4.h nfsd: hook up nfs4_preprocess_stateid_op to the nfsd_file cache 2019-08-19 11:09:09 -04:00
xdr4cb.h NFSD CB_OFFLOAD xdr 2018-09-25 20:34:54 -04:00
xdr.h