linux/fs/nfs
Trond Myklebust a3d01454bc NFS: Remove BKL requirement from attribute updates
The main problem is dealing with inode->i_size: we need to set the
inode->i_lock on all attribute updates, and so vmtruncate won't cut it.
Make an NFS-private version of vmtruncate that has the necessary locking
semantics.

The result should be that the following inode attribute updates are
protected by inode->i_lock
	nfsi->cache_validity
	nfsi->read_cache_jiffies
	nfsi->attrtimeo
	nfsi->attrtimeo_timestamp
	nfsi->change_attr
	nfsi->last_updated
	nfsi->cache_change_attribute
	nfsi->access_cache
	nfsi->access_cache_entry_lru
	nfsi->access_cache_inode_lru
	nfsi->acl_access
	nfsi->acl_default
	nfsi->nfs_page_tree
	nfsi->ncommit
	nfsi->npages
	nfsi->open_files
	nfsi->silly_list
	nfsi->acl
	nfsi->open_states
	inode->i_size
	inode->i_atime
	inode->i_mtime
	inode->i_ctime
	inode->i_nlink
	inode->i_uid
	inode->i_gid

The following is protected by dir->i_mutex
	nfsi->cookieverf

Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
2008-07-15 18:10:51 -04:00
..
callback_proc.c nfs: replace remaining __FUNCTION__ occurrences 2008-05-16 09:43:29 -07:00
callback_xdr.c nfs: replace remaining __FUNCTION__ occurrences 2008-05-16 09:43:29 -07:00
callback.c nfs4: fix potential race with rapid nfs_callback_up/down cycle 2008-07-09 12:09:32 -04:00
callback.h NFS: Change cb_recallargs to pass "struct sockaddr *" instead of sockaddr_in 2008-01-30 02:05:55 -05:00
client.c NFS: set transport defaults after mount option parsing is finished 2008-07-09 12:09:38 -04:00
delegation.c nfs: replace remaining __FUNCTION__ occurrences 2008-05-16 09:43:29 -07:00
delegation.h NFS: Add an asynchronous delegreturn operation for use in nfs_clear_inode 2008-01-30 02:06:12 -05:00
dir.c NFS: Protect inode->i_nlink updates using inode->i_lock 2008-07-15 18:10:50 -04:00
direct.c NFS: Use NFSDBG_FILE for all fops 2008-07-09 12:09:04 -04:00
file.c NFS: Remove the redundant file_open entry from struct nfs_rpc_ops 2008-07-09 12:09:16 -04:00
getroot.c Convert ERR_PTR(PTR_ERR(p)) instances to ERR_CAST(p) 2008-02-07 08:42:26 -08:00
idmap.c nfs: fix sparse warnings 2008-02-20 16:15:44 -05:00
inode.c NFS: Remove BKL requirement from attribute updates 2008-07-15 18:10:51 -04:00
internal.h NFS: Ensure we zap only the access and acl caches when setting new acls 2008-07-09 12:09:19 -04:00
iostat.h NFS: Fix a warning in nfs4_async_handle_error 2008-07-09 12:09:18 -04:00
Makefile NFS: Always enable NFS direct I/O 2008-03-19 18:00:34 -04:00
mount_clnt.c NFS: Fix filehandle size comparisons in the mount code 2008-06-23 17:09:06 -04:00
namespace.c nfs: path_{get,put}() cleanups 2008-05-16 09:43:30 -07:00
nfs2xdr.c nfs: return negative error value from nfs{,4}_stat_to_errno 2008-04-19 16:54:47 -04:00
nfs3acl.c NFS: Ensure we zap only the access and acl caches when setting new acls 2008-07-09 12:09:19 -04:00
nfs3proc.c NFS: Remove the redundant file_open entry from struct nfs_rpc_ops 2008-07-09 12:09:16 -04:00
nfs3xdr.c nfs: return negative error value from nfs{,4}_stat_to_errno 2008-04-19 16:54:47 -04:00
nfs4_fs.h nfs: make nfs4_drop_state_owner() static 2008-05-16 09:43:31 -07:00
nfs4namespace.c nfs: replace remaining __FUNCTION__ occurrences 2008-05-16 09:43:29 -07:00
nfs4proc.c nfs: initialize timeout variable in nfs4_proc_setclientid_confirm 2008-07-09 12:09:30 -04:00
nfs4renewd.c nfs: replace remaining __FUNCTION__ occurrences 2008-05-16 09:43:29 -07:00
nfs4state.c nfs: make nfs4_drop_state_owner() static 2008-05-16 09:43:31 -07:00
nfs4xdr.c nfs: replace remaining __FUNCTION__ occurrences 2008-05-16 09:43:29 -07:00
nfsroot.c NFS: use documenting macro constants for initializing ac{reg, dir}{min, max} 2008-07-09 12:09:40 -04:00
pagelist.c Merge branch 'task_killable' of git://git.kernel.org/pub/scm/linux/kernel/git/willy/misc 2008-02-01 11:45:47 +11:00
proc.c NFS: Remove the redundant file_open entry from struct nfs_rpc_ops 2008-07-09 12:09:16 -04:00
read.c nfs: replace remaining __FUNCTION__ occurrences 2008-05-16 09:43:29 -07:00
super.c NFS: Allow either strict or sloppy mount option parsing 2008-07-09 12:09:44 -04:00
symlink.c nfs: remove unnecessary NFS_NEED_* defines 2008-04-23 16:13:37 -04:00
sysctl.c
unlink.c SUNRPC: Add a helper rpcauth_lookup_generic_cred() 2008-03-14 13:42:49 -04:00
write.c NFS: Remove BKL requirement from attribute updates 2008-07-15 18:10:51 -04:00