pnfs: change layout state seqlock to a spinlock
commitfd6002e9b8a93220d5f53b93d9624caf73cdc8a2
authorFred Isaman <iisaman@netapp.com>
Thu, 6 Jan 2011 11:36:22 +0000 (6 11:36 +0000)
committerTrond Myklebust <Trond.Myklebust@netapp.com>
Thu, 6 Jan 2011 19:46:31 +0000 (6 14:46 -0500)
treef45c22c9ec855949b1ec0488162229df4eb3f5ed
parentb7edfaa1983362842351e425adeb8e297b4c11fb
pnfs: change layout state seqlock to a spinlock

This prepares for future changes, where the layout state needs
to change atomically with several other variables.  In particular,
it will need to know if lo->segs is empty, as we test that instead
of manipulating the NFS_LAYOUT_STATEID_SET bit.  Moreover, the
layoutstateid is not really a read-mostly structure, as it is
written almost as often as it is read.

The behavior of pnfs_get_layout_stateid is also slightly changed, so that
it no longer changes the stateid.  Its name is changed to +pnfs_choose_layoutget_stateid.

Signed-off-by: Fred Isaman <iisaman@netapp.com>
Signed-off-by: Benny Halevy <bhalevy@panasas.com>
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
fs/nfs/nfs4xdr.c
fs/nfs/pnfs.c
fs/nfs/pnfs.h