linux-stable/fs/nfs
Weston Andros Adamson 6168f62cbd NFSv4: Add ACCESS operation to OPEN compound
The OPEN operation has no way to differentiate an open for read and an
open for execution - both look like read to the server. This allowed
users to read files that didn't have READ access but did have EXEC access,
which is obviously wrong.

This patch adds an ACCESS call to the OPEN compound to handle the
difference between OPENs for reading and execution.  Since we're going
through the trouble of calling ACCESS, we check all possible access bits
and cache the results hopefully avoiding an ACCESS call in the future.

Signed-off-by: Weston Andros Adamson <dros@netapp.com>
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
2012-10-01 15:20:11 -07:00
..
blocklayout NFSv4.1: Replace get_device_info() with filelayout_get_device_info() 2012-09-28 16:03:08 -04:00
objlayout
cache_lib.c
cache_lib.h
callback.c
callback.h
callback_proc.c NFSv4.1: Clean up the removal of pnfs_layout_hdr from the server list 2012-09-28 16:03:14 -04:00
callback_xdr.c
client.c NFS: Fix a regression when loading the NFS v4 module 2012-08-16 16:15:49 -04:00
delegation.c
delegation.h
dir.c NFSv4: Add ACCESS operation to OPEN compound 2012-10-01 15:20:11 -07:00
direct.c NFS: Convert nfs_get_lock_context to return an ERR_PTR on failure 2012-09-28 16:03:03 -04:00
dns_resolve.c
dns_resolve.h
file.c NFS: Write the entire file if a server reboot occurs during fsync() 2012-09-28 16:03:05 -04:00
fscache-index.c
fscache.c
fscache.h
getroot.c
idmap.c NFS: Use kzalloc() instead of kmalloc() in the idmapper 2012-10-01 15:18:44 -07:00
inode.c NFS: Clean up helper function nfs4_select_rw_stateid() 2012-09-28 16:03:04 -04:00
internal.h
iostat.h
Kconfig
Makefile NFS: Fix a regression when loading the NFS v4 module 2012-08-16 16:15:49 -04:00
mount_clnt.c
namespace.c
netns.h
nfs.h
nfs2super.c
nfs2xdr.c
nfs3acl.c
nfs3client.c
nfs3proc.c NFS: Fix the initialisation of the readdir 'cookieverf' array 2012-09-04 14:52:42 -04:00
nfs3super.c
nfs3xdr.c
nfs4_fs.h NFSv4.1: Simplify the pNFS return-on-close code 2012-09-28 16:03:12 -04:00
nfs4client.c NFSv4: Ensure that nfs4_alloc_client cleans up on error. 2012-08-20 12:12:29 -04:00
nfs4file.c NFS: Write the entire file if a server reboot occurs during fsync() 2012-09-28 16:03:05 -04:00
nfs4filelayout.c NFSv4.1: Get rid of the NFS_LAYOUT_DESTROYED state 2012-09-28 16:03:16 -04:00
nfs4filelayout.h NFSv4.1: Get rid of pNFS layout state "NFS_LAYOUT_INVALID" 2012-09-28 16:03:12 -04:00
nfs4filelayoutdev.c NFSv4.1: pNFS data servers may be temporarily offline 2012-09-28 16:03:09 -04:00
nfs4getroot.c
nfs4namespace.c NFS4: avoid underflow when converting error to pointer. 2012-09-25 10:38:54 -04:00
nfs4proc.c NFSv4: Add ACCESS operation to OPEN compound 2012-10-01 15:20:11 -07:00
nfs4renewd.c
nfs4state.c NFSv4.1: Simplify the pNFS return-on-close code 2012-09-28 16:03:12 -04:00
nfs4super.c NFS: Fix a regression when loading the NFS v4 module 2012-08-16 16:15:49 -04:00
nfs4sysctl.c
nfs4xdr.c NFSv4: Add ACCESS operation to OPEN compound 2012-10-01 15:20:11 -07:00
nfsroot.c
pagelist.c NFS: Clean up helper function nfs4_select_rw_stateid() 2012-09-28 16:03:04 -04:00
pnfs.c NFSv4.1: _pnfs_return_layout() shouldn't invalidate the layout on failure 2012-09-28 16:03:18 -04:00
pnfs.h NFSv4.1: Remove the NFS_LAYOUT_RETURNED state 2012-09-28 16:03:17 -04:00
pnfs_dev.c NFSv4.1: pNFS data servers may be temporarily offline 2012-09-28 16:03:09 -04:00
proc.c
read.c
super.c NFS: Fix a problem with the legacy binary mount code 2012-09-04 14:52:43 -04:00
symlink.c
sysctl.c
unlink.c
write.c NFS: Fix fdatasync/fsync() when confronted with a server reboot 2012-09-28 16:03:05 -04:00