diff options
Diffstat (limited to 'xlators/nfs/lib/src')
-rw-r--r-- | xlators/nfs/lib/src/rpcsvc.c | 4 | ||||
-rw-r--r-- | xlators/nfs/lib/src/rpcsvc.h | 1 |
2 files changed, 5 insertions, 0 deletions
diff --git a/xlators/nfs/lib/src/rpcsvc.c b/xlators/nfs/lib/src/rpcsvc.c index da9cb3bc8bb..ff3c1facc18 100644 --- a/xlators/nfs/lib/src/rpcsvc.c +++ b/xlators/nfs/lib/src/rpcsvc.c @@ -1987,6 +1987,8 @@ nfs_rpcsvc_handle_rpc_call (rpcsvc_conn_t *conn) err_reply: if (ret == RPCSVC_ACTOR_ERROR) ret = nfs_rpcsvc_error_reply (req); + else if (ret == RPCSVC_ACTOR_IGNORE) + mem_put (conn->rxpool, req); /* No need to propagate error beyond this function since the reply * has now been queued. */ @@ -2297,6 +2299,8 @@ nfs_rpcsvc_record_vectored_call_actor (rpcsvc_conn_t *conn) err_reply: if (ret == RPCSVC_ACTOR_ERROR) ret = nfs_rpcsvc_error_reply (req); + else if (ret == RPCSVC_ACTOR_IGNORE) + mem_put (conn->rxpool, req); /* No need to propagate error beyond this function since the reply * has now been queued. */ diff --git a/xlators/nfs/lib/src/rpcsvc.h b/xlators/nfs/lib/src/rpcsvc.h index a43a8500f4b..4e7c8184547 100644 --- a/xlators/nfs/lib/src/rpcsvc.h +++ b/xlators/nfs/lib/src/rpcsvc.h @@ -395,6 +395,7 @@ struct rpcsvc_request { #define RPCSVC_ACTOR_SUCCESS 0 #define RPCSVC_ACTOR_ERROR (-1) +#define RPCSVC_ACTOR_IGNORE (-2) /* Functor for every type of protocol actor * must be defined like this. |