linux/fs/nfs
Chuck Lever 412d582ec1 [PATCH] NFS: use atomic bitops to manipulate flags in nfsi->flags
Introduce atomic bitops to manipulate the bits in the nfs_inode structure's
"flags" field.

Using bitops means we can use a generic wait_on_bit call instead of an ad hoc
locking scheme in fs/nfs/inode.c, so we can remove the "nfs_i_wait" field from
nfs_inode at the same time.

The other new flags field will continue to use bitmask and logic AND and OR.
This permits several flags to be set at the same time efficiently.  The
following patch adds a spin lock to protect these flags, and this spin lock
will later cover other fields in the nfs_inode structure, amortizing the cost
of using this type of serialization.

Test plan:
 Millions of fsx ops on SMP clients.

Signed-off-by: Chuck Lever <cel@netapp.com>
Cc: Trond Myklebust <trond.myklebust@fys.uio.no>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-08-18 12:53:56 -07:00
..
callback_proc.c [PATCH] NFS: Header file cleanup... 2005-06-22 16:07:06 -04:00
callback_xdr.c [PATCH] NFSv4: Fix an Oops in the callback code. 2005-06-22 16:07:29 -04:00
callback.c [PATCH] NFS: Header file cleanup... 2005-06-22 16:07:06 -04:00
callback.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
delegation.c [PATCH] NFS: Header file cleanup... 2005-06-22 16:07:06 -04:00
delegation.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
dir.c [PATCH] NFS: use atomic bitops to manipulate flags in nfsi->flags 2005-08-18 12:53:56 -07:00
direct.c [PATCH] Remove f_error field from struct file 2005-06-23 09:45:33 -07:00
file.c [PATCH] NFS: split nfsi->flags into two fields 2005-08-18 12:53:56 -07:00
idmap.c [PATCH] NFS: Header file cleanup... 2005-06-22 16:07:06 -04:00
inode.c [PATCH] NFS: use atomic bitops to manipulate flags in nfsi->flags 2005-08-18 12:53:56 -07:00
Makefile [PATCH] NFS: Add support for NFSv3 ACLs 2005-06-22 16:07:24 -04:00
mount_clnt.c [PATCH] RPC: Make rpc_create_client() destroy the transport on failure. 2005-06-22 16:07:03 -04:00
nfs2xdr.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
nfs3acl.c [PATCH] NFS: split nfsi->flags into two fields 2005-08-18 12:53:56 -07:00
nfs3proc.c [PATCH] NFS: Ensure we always update inode->i_mode when doing O_EXCL creates 2005-08-16 09:30:58 -07:00
nfs3xdr.c [PATCH] fix nfsacl pointer arithmetic and pg_class initialization bugs 2005-06-22 16:07:27 -04:00
nfs4_fs.h [PATCH] NFSv4: Clean up nfs4 lock state accounting 2005-06-22 16:07:42 -04:00
nfs4proc.c [PATCH] NFS: Ensure we always update inode->i_mode when doing O_EXCL creates 2005-08-16 09:30:58 -07:00
nfs4renewd.c [PATCH] NFS: Header file cleanup... 2005-06-22 16:07:06 -04:00
nfs4state.c [PATCH] NFSv4: Clean up nfs4 lock state accounting 2005-06-22 16:07:42 -04:00
nfs4xdr.c [PATCH] NFS: Add debugging code to NFSv4 readdir 2005-06-22 16:07:44 -04:00
nfsroot.c [PATCH] NFS: Add support for NFSv3 ACLs 2005-06-22 16:07:24 -04:00
pagelist.c [PATCH] NFS: Replace nfs_page insertion sort with a radix sort 2005-06-22 16:07:39 -04:00
proc.c [PATCH] NFS: Ensure we always update inode->i_mode when doing O_EXCL creates 2005-08-16 09:30:58 -07:00
read.c [PATCH] NFS: split nfsi->flags into two fields 2005-08-18 12:53:56 -07:00
symlink.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
unlink.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
write.c [PATCH] NFS: Replace nfs_page insertion sort with a radix sort 2005-06-22 16:07:39 -04:00