• Chuck Lever's avatar
    [PATCH] NFS: use atomic bitops to manipulate flags in nfsi->flags · 412d582e
    Chuck Lever authored
    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: default avatarChuck Lever <cel@netapp.com>
    Cc: Trond Myklebust <trond.myklebust@fys.uio.no>
    Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
    412d582e
inode.c 56.1 KB