linux-kernel-test/fs/nfsd
Neil Brown 7007c90fb9 nfsd: avoid permission checks on EXCLUSIVE_CREATE replay
With NFSv4, if we create a file then open it we explicit avoid checking
the permissions on the file during the open because the fact that we
created it ensures we should be allow to open it (the create and the
open should appear to be a single operation).

However if the reply to an EXCLUSIVE create gets lots and the client
resends the create, the current code will perform the permission check -
because it doesn't realise that it did the open already..

This patch should fix this.

Note that I haven't actually seen this cause a problem.  I was just
looking at the code trying to figure out a different EXCLUSIVE open
related issue, and this looked wrong.

(Fix confirmed with pynfs 4.0 test OPEN4--bfields)

Cc: stable@kernel.org
Signed-off-by: NeilBrown <neilb@suse.de>
[bfields: use OWNER_OVERRIDE and update for 4.1]
Signed-off-by: J. Bruce Fields <bfields@redhat.com>
2012-12-10 16:25:31 -05:00
..
acl.h
auth.c Merge branch 'for-3.5' of git://linux-nfs.org/~bfields/linux 2012-06-01 08:32:58 -07:00
auth.h
cache.h
current_stateid.h nfsd41: use current stateid by value 2012-02-15 11:20:45 -05:00
export.c SUNRPC: service request network namespace helper introduced 2012-07-27 16:49:21 -04:00
fault_inject.c NFSD: Forget state for a specific client 2012-12-03 09:59:03 -05:00
idmap.h nfsd: pass network context to idmap init/exit functions 2012-04-12 09:12:10 -04:00
Kconfig NFSD: Added fault injection 2011-11-07 21:10:47 -05:00
lockd.c
Makefile NFSD: Added fault injection 2011-11-07 21:10:47 -05:00
netns.h nfsd: make NFSv4 recovery client tracking options per net 2012-12-10 16:25:30 -05:00
nfs2acl.c nfsd4: nfsaclsvc_encode_voidres static 2012-08-20 18:39:49 -04:00
nfs3acl.c
nfs3proc.c nfsd: do_nfsd_create verf argument is a u32 2012-08-20 18:39:49 -04:00
nfs3xdr.c nfsd: fix compose_entry_fh() failure exits 2012-04-13 10:12:02 -04:00
nfs4acl.c
nfs4callback.c nfsd: make NFSv4 lease time per net 2012-11-28 10:39:46 -05:00
nfs4idmap.c NFSD: pass null terminated buf to kstrtouint() 2012-09-10 17:46:19 -04:00
nfs4proc.c nfsd: avoid permission checks on EXCLUSIVE_CREATE replay 2012-12-10 16:25:31 -05:00
nfs4recover.c nfsd: make NFSv4 recovery client tracking options per net 2012-12-10 16:25:30 -05:00
nfs4state.c nfsd4: lockt, release_lockowner should renew clients 2012-12-04 07:51:12 -05:00
nfs4xdr.c nfsd4: discard some unused nfsd4_verify xdr code 2012-12-03 09:43:51 -05:00
nfscache.c
nfsctl.c NFSD: Fold fault_inject.h into state.h 2012-11-28 13:01:02 -05:00
nfsd.h nfsd: make NFSv4 grace time per net 2012-11-28 10:39:47 -05:00
nfsfh.c exportfs: add FILEID_INVALID to indicate invalid fid_type 2012-11-07 19:22:30 -05:00
nfsfh.h fs: propagate umode_t, misc bits 2012-01-03 22:55:10 -05:00
nfsproc.c nfsd: Push mnt_want_write() outside of i_mutex 2012-07-31 01:02:51 +04:00
nfssvc.c nfsd: call state init and shutdown twice 2012-11-28 10:13:53 -05:00
nfsxdr.c
state.h NFSD: Forget state for a specific client 2012-12-03 09:59:03 -05:00
stats.c SUNRPC: register service stats /proc entries in passed network namespace context 2012-01-31 19:28:18 -05:00
vfs.c nfsd: avoid permission checks on EXCLUSIVE_CREATE replay 2012-12-10 16:25:31 -05:00
vfs.h nfsd: Push mnt_want_write() outside of i_mutex 2012-07-31 01:02:51 +04:00
xdr3.h
xdr4.h nfsd4: delay filling in write iovec array till after xdr decoding 2012-11-26 09:08:15 -05:00
xdr.h