diff options
author | Andy Adamson <andros@netapp.com> | 2014-01-29 11:34:38 -0500 |
---|---|---|
committer | Trond Myklebust <trond.myklebust@primarydata.com> | 2014-01-29 11:54:55 -0500 |
commit | f9c96fcc501a43dbc292b17fc0ded4b54e63b79d (patch) | |
tree | 50feb8393e5fa42095511a1417dbe56def085569 /fs/nfs/nfs4proc.c | |
parent | 4db72b40fdbc706f8957e9773ae73b1574b8c694 (diff) |
NFSv4.1 free slot before resending I/O to MDS
Fix a dynamic session slot leak where a slot is preallocated and I/O is
resent through the MDS.
Signed-off-by: Andy Adamson <andros@netapp.com>
Signed-off-by: Trond Myklebust <trond.myklebust@primarydata.com>
Diffstat (limited to 'fs/nfs/nfs4proc.c')
-rw-r--r-- | fs/nfs/nfs4proc.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/fs/nfs/nfs4proc.c b/fs/nfs/nfs4proc.c index ed10d0d4f860..ae00c3ed733f 100644 --- a/fs/nfs/nfs4proc.c +++ b/fs/nfs/nfs4proc.c | |||
@@ -592,7 +592,7 @@ out_unlock: | |||
592 | nfs41_server_notify_highest_slotid_update(session->clp); | 592 | nfs41_server_notify_highest_slotid_update(session->clp); |
593 | } | 593 | } |
594 | 594 | ||
595 | static int nfs41_sequence_done(struct rpc_task *task, struct nfs4_sequence_res *res) | 595 | int nfs41_sequence_done(struct rpc_task *task, struct nfs4_sequence_res *res) |
596 | { | 596 | { |
597 | struct nfs4_session *session; | 597 | struct nfs4_session *session; |
598 | struct nfs4_slot *slot; | 598 | struct nfs4_slot *slot; |
@@ -692,6 +692,7 @@ out_retry: | |||
692 | rpc_delay(task, NFS4_POLL_RETRY_MAX); | 692 | rpc_delay(task, NFS4_POLL_RETRY_MAX); |
693 | return 0; | 693 | return 0; |
694 | } | 694 | } |
695 | EXPORT_SYMBOL_GPL(nfs41_sequence_done); | ||
695 | 696 | ||
696 | static int nfs4_sequence_done(struct rpc_task *task, | 697 | static int nfs4_sequence_done(struct rpc_task *task, |
697 | struct nfs4_sequence_res *res) | 698 | struct nfs4_sequence_res *res) |