svc: Clean up deferred requests on transport destruction
authorTom Tucker <tom@opengridcomputing.com>
Mon, 5 Jan 2009 21:21:19 +0000 (15:21 -0600)
committerJ. Bruce Fields <bfields@citi.umich.edu>
Wed, 7 Jan 2009 22:08:46 +0000 (17:08 -0500)
A race between svc_revisit and svc_delete_xprt can result in
deferred requests holding references on a transport that can never be
recovered because dead transports are not enqueued for subsequent
processing.

Check for XPT_DEAD in revisit to clean up completing deferrals on a dead
transport and sweep a transport's deferred queue to do the same for queued
but unprocessed deferrals.

Signed-off-by: Tom Tucker <tom@opengridcomputing.com>
Signed-off-by: J. Bruce Fields <bfields@citi.umich.edu>

No differences found