J. Bruce Fields
880a3a5325
nfsd: fix incorrect umasks
...
We're neglecting to clear the umask after it's set, which can cause a
later unrelated rpc to (incorrectly) use the same umask if it happens to
be processed by the same thread.
There's a more subtle problem here too:
An NFSv4 compound request is decoded all in one pass before any
operations are executed.
Currently we're setting current->fs->umask at the time we decode the
compound. In theory a single compound could contain multiple creates
each setting a umask. In that case we'd end up using whichever umask
was passed in the *last* operation as the umask for all the creates,
whether that was correct or not.
So, we should just be saving the umask at decode time and waiting to set
it until we actually process the corresponding operation.
In practice it's unlikely any client would do multiple creates in a
single compound. And even if it did they'd likely be from the same
process (hence carry the same umask). So this is a little academic, but
we should get it right anyway.
Fixes: 47057abde5 (nfsd: add support for the umask attribute)
Cc: [email protected]
Reported-by: Lucash Stach <[email protected] >
Signed-off-by: J. Bruce Fields <[email protected] >
2018-04-03 16:27:08 -04:00
..
acl.h
auth.c
nfsd: auth: Fix gid sorting when rootsquash enabled
2018-01-22 20:13:07 -08:00
auth.h
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
blocklayout.c
Add support for online resizing of file systems with bigalloc. Fix a
2017-11-14 12:59:42 -08:00
blocklayoutxdr.c
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
blocklayoutxdr.h
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
cache.h
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
current_stateid.h
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
export.c
NFSD: make cache_detail structures const
2017-11-27 16:45:11 -05:00
export.h
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
fault_inject.c
Lots of good bugfixes, including:
2017-11-18 11:22:04 -08:00
flexfilelayout.c
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
flexfilelayoutxdr.c
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
flexfilelayoutxdr.h
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
idmap.h
nfsd: Remove duplicate define of IDMAP_NAMESZ/IDMAP_TYPE_xx
2015-07-20 14:58:46 -04:00
Kconfig
block: make scsi_request and scsi ioctl support optional
2017-01-31 10:53:05 -07:00
lockd.c
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
Makefile
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
netns.h
race of nfsd inetaddr notifiers vs nn->nfsd_serv change
2017-11-27 16:45:11 -05:00
nfs2acl.c
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
nfs3acl.c
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
nfs3proc.c
NFSD: Clean up legacy NFS SYMLINK argument XDR decoders
2018-04-03 15:08:16 -04:00
nfs3xdr.c
NFSD: Clean up legacy NFS SYMLINK argument XDR decoders
2018-04-03 15:08:16 -04:00
nfs4acl.c
nfsd: check permissions when setting ACLs
2016-06-24 12:11:52 -04:00
nfs4callback.c
nfsd: use correct enum type in decode_cb_op_status
2018-04-03 15:08:08 -04:00
nfs4idmap.c
NFSD: make cache_detail structures const
2017-11-27 16:45:11 -05:00
nfs4layouts.c
nfsd: Add "nfsd_" to trace point names
2018-04-03 15:08:14 -04:00
nfs4proc.c
nfsd: fix incorrect umasks
2018-04-03 16:27:08 -04:00
nfs4recover.c
Various bugfixes, a RDMA update from Chuck Lever, and support for a new
2016-03-24 10:41:00 -07:00
nfs4state.c
nfsd: fix boolreturn.cocci warnings
2018-04-03 15:08:08 -04:00
nfs4xdr.c
nfsd: fix incorrect umasks
2018-04-03 16:27:08 -04:00
nfscache.c
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
nfsctl.c
race of nfsd inetaddr notifiers vs nn->nfsd_serv change
2017-11-27 16:45:11 -05:00
nfsd.h
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
nfsfh.c
nfsd: don't require low ports for gss requests
2018-03-19 16:38:13 -04:00
nfsfh.h
This request is late, apologies.
2018-02-08 15:18:32 -08:00
nfsproc.c
NFSD: Clean up legacy NFS SYMLINK argument XDR decoders
2018-04-03 15:08:16 -04:00
nfssvc.c
race of nfsd inetaddr notifiers vs nn->nfsd_serv change
2017-11-27 16:45:11 -05:00
nfsxdr.c
NFSD: Clean up legacy NFS SYMLINK argument XDR decoders
2018-04-03 15:08:16 -04:00
pnfs.h
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
state.h
fs, nfsd: convert nfs4_file.fi_ref from atomic_t to refcount_t
2017-11-07 16:43:59 -05:00
stats.c
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
stats.h
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
trace.c
nfsd: move include of state.h from trace.c to trace.h
2015-10-23 15:57:29 -04:00
trace.h
nfsd: Trace NFSv4 COMPOUND execution
2018-04-03 15:08:15 -04:00
vfs.c
nfsd: Add I/O trace points in the NFSv4 read proc
2018-04-03 15:08:15 -04:00
vfs.h
nfsd: Add I/O trace points in the NFSv4 read proc
2018-04-03 15:08:15 -04:00
xdr.h
NFSD: Clean up legacy NFS SYMLINK argument XDR decoders
2018-04-03 15:08:16 -04:00
xdr3.h
NFSD: Clean up legacy NFS SYMLINK argument XDR decoders
2018-04-03 15:08:16 -04:00
xdr4.h
nfsd: fix incorrect umasks
2018-04-03 16:27:08 -04:00
xdr4cb.h
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00