android_kernel_google_msm/fs/nfsd
Neil Brown 59d6ce4370 nfsd: avoid permission checks on EXCLUSIVE_CREATE replay
commit 7007c90fb9 upstream.

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)

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>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2013-01-11 09:06:55 -08:00
..
acl.h
auth.c
auth.h
cache.h
current_stateid.h nfsd41: use current stateid by value 2012-02-15 11:20:45 -05:00
export.c nfsd: add get_uint for u32's 2012-11-17 13:16:12 -08:00
fault_inject.c debugfs-related mode_t whack-a-mole 2012-03-20 21:29:53 -04:00
fault_inject.h NFSD: Added fault injection 2011-11-07 21:10:47 -05:00
idmap.h
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: only register cld pipe notifier when CONFIG_NFSD_V4 is enabled 2012-03-29 08:01:07 -04:00
nfs2acl.c
nfs3acl.c
nfs3proc.c
nfs3xdr.c nfsd: fix compose_entry_fh() failure exits 2012-04-13 10:12:02 -04:00
nfs4acl.c fs: add export.h to files using EXPORT_SYMBOL/THIS_MODULE macros 2011-10-31 19:30:31 -04:00
nfs4callback.c nfsd4: use auth_unix unconditionally on backchannel 2012-03-28 19:14:36 -04:00
nfs4idmap.c NFSD: pass null terminated buf to kstrtouint() 2012-10-21 09:27:57 -07:00
nfs4proc.c nfsd: avoid permission checks on EXCLUSIVE_CREATE replay 2013-01-11 09:06:55 -08:00
nfs4recover.c nfsd: fix nfs4recover.c printk format warning 2012-04-30 12:28:48 -07:00
nfs4state.c nfs: fix wrong object type in lockowner_slab 2013-01-11 09:06:55 -08:00
nfs4xdr.c nfsd4: fix oops on unusual readlike compound 2013-01-11 09:06:55 -08:00
nfscache.c
nfsctl.c NFSd: introduce nfsd_destroy() helper 2012-10-02 10:30:38 -07:00
nfsd.h NFSd: set nfsd_serv to NULL after service destruction 2012-10-02 10:30:38 -07:00
nfsfh.c fs: propagate umode_t, misc bits 2012-01-03 22:55:10 -05:00
nfsfh.h fs: propagate umode_t, misc bits 2012-01-03 22:55:10 -05:00
nfsproc.c
nfssvc.c nfsd: fix v4 reply caching 2013-01-11 09:06:55 -08:00
nfsxdr.c
state.h nfsd: add nfsd4_client_tracking_ops struct and a way to set it 2012-03-26 11:49:47 -04: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 2013-01-11 09:06:55 -08:00
vfs.h nfsd: vfs_llseek() with 32 or 64 bit offsets (hashes) 2012-03-18 22:44:50 -04:00
xdr.h
xdr3.h
xdr4.h NFSD: Fix nfs4_verifier memory alignment 2012-03-20 15:36:15 -04:00