]> git.baikalelectronics.ru Git - kernel.git/commit
[PATCH] NFS: use atomic bitops to manipulate flags in nfsi->flags
authorChuck Lever <cel@citi.umich.edu>
Thu, 18 Aug 2005 18:24:11 +0000 (11:24 -0700)
committerLinus Torvalds <torvalds@g5.osdl.org>
Thu, 18 Aug 2005 19:53:56 +0000 (12:53 -0700)
commit5caf1edab37abb65af4f4b602ddd8a30c80d4adb
tree9088c5e29cbd4b33e907a7b5f9a950dd0dce36c1
parentaa56b79f0bdde0035b797860bf3f40900f00153d
[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>
fs/nfs/dir.c
fs/nfs/inode.c
include/linux/nfs_fs.h