sst-linux/include/linux/sunrpc
NeilBrown 7c96aef759 sunrpc: remove xpt_pool
The xpt_pool field is only used for reporting BUGs.
And it isn't used correctly.

In particular, when it is cleared in svc_xprt_received before
XPT_BUSY is cleared, there is no guarantee that either the
compiler or the CPU might not re-order to two assignments, just
setting xpt_pool to NULL after XPT_BUSY is cleared.

If a different cpu were running svc_xprt_enqueue at this moment,
it might see XPT_BUSY clear and then xpt_pool non-NULL, and
so BUG.

This could be fixed by calling
  smp_mb__before_clear_bit()
before the clear_bit.  However as xpt_pool isn't really used,
it seems safest to simply remove xpt_pool.

Another alternate would be to change the clear_bit to
clear_bit_unlock, and the test_and_set_bit to test_and_set_bit_lock.

Signed-off-by: NeilBrown <neilb@suse.de>
Signed-off-by: J. Bruce Fields <bfields@redhat.com>
2010-12-17 15:48:18 -05:00
..
auth_gss.h nfs: __rcu annotations 2010-08-19 17:18:00 -07:00
auth.h sunrpc: fix up rpcauth_remove_module section mismatch 2010-09-29 12:27:37 -04:00
bc_xprt.h
cache.h sunrpc: Add routines that allow registering per-net caches 2010-09-27 10:16:11 -04:00
clnt.h Merge branch 'for-2.6.37' of git://linux-nfs.org/~bfields/linux 2010-10-26 09:55:25 -07:00
debug.h
gss_api.h
gss_asn1.h
gss_err.h
gss_krb5.h
Kbuild include: replace unifdef-y with header-y 2010-08-14 22:26:51 +02:00
metrics.h
msg_prot.h
rpc_pipe_fs.h
rpc_rdma.h
sched.h
stats.h sunrpc: Make the /proc/net/rpc appear in net namespaces 2010-09-27 10:16:12 -04:00
svc_rdma.h
svc_xprt.h sunrpc: remove xpt_pool 2010-12-17 15:48:18 -05:00
svc.h
svcauth_gss.h
svcauth.h sunrpc: Add net to pure API calls 2010-09-27 10:16:11 -04:00
svcsock.h
timer.h
types.h
xdr.h SUNRPC: define xdr_decode_opaque_fixed 2010-10-24 18:02:53 -04:00
xprt.h sunrpc: Tag rpc_xprt with net 2010-10-01 17:18:58 -04:00
xprtrdma.h
xprtsock.h