diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2020-11-09 12:43:12 -0800 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2020-11-09 12:43:12 -0800 |
commit | 3552c3709c0e78144c11748718180441ac647ece (patch) | |
tree | e965be9f04f6c0a28706784fb5cac3bb5667beb4 /net | |
parent | 91808cd6c24359eee0c1eb7a06ea02dac358cbb5 (diff) | |
parent | ae2975046dbc65855c217fe6fbd5b33140c5ff18 (diff) | |
download | linux-stable-3552c3709c0e78144c11748718180441ac647ece.tar.gz linux-stable-3552c3709c0e78144c11748718180441ac647ece.tar.bz2 linux-stable-3552c3709c0e78144c11748718180441ac647ece.zip |
Merge tag 'nfsd-5.10-1' of git://linux-nfs.org/~bfields/linux
Pull nfsd fixes from Bruce Fields:
"This is mainly server-to-server copy and fallout from Chuck's 5.10 rpc
refactoring"
* tag 'nfsd-5.10-1' of git://linux-nfs.org/~bfields/linux:
net/sunrpc: fix useless comparison in proc_do_xprt()
net/sunrpc: return 0 on attempt to write to "transports"
NFSD: fix missing refcount in nfsd4_copy by nfsd4_do_async_copy
NFSD: Fix use-after-free warning when doing inter-server copy
NFSD: MKNOD should return NFSERR_BADTYPE instead of NFSERR_INVAL
SUNRPC: Fix general protection fault in trace_rpc_xdr_overflow()
NFSD: NFSv3 PATHCONF Reply is improperly formed
Diffstat (limited to 'net')
-rw-r--r-- | net/sunrpc/sysctl.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/net/sunrpc/sysctl.c b/net/sunrpc/sysctl.c index a18b36b5422d..3aad6ef18504 100644 --- a/net/sunrpc/sysctl.c +++ b/net/sunrpc/sysctl.c @@ -63,19 +63,20 @@ static int proc_do_xprt(struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos) { char tmpbuf[256]; - size_t len; + ssize_t len; - if ((*ppos && !write) || !*lenp) { + if (write || *ppos) { *lenp = 0; return 0; } len = svc_print_xprts(tmpbuf, sizeof(tmpbuf)); - *lenp = memory_read_from_buffer(buffer, *lenp, ppos, tmpbuf, len); + len = memory_read_from_buffer(buffer, *lenp, ppos, tmpbuf, len); - if (*lenp < 0) { + if (len < 0) { *lenp = 0; return -EINVAL; } + *lenp = len; return 0; } |