diff options
author | Steve Dickson <steved@redhat.com> | 2005-10-19 02:19:40 -0400 |
---|---|---|
committer | Trond Myklebust <Trond.Myklebust@netapp.com> | 2005-10-19 02:19:40 -0400 |
commit | 747c5534c9a6da4aa87e7cdc2209ea98ea27f381 (patch) | |
tree | 26b2343b7c941a4fa148f85df844557153971cd9 | |
parent | 7f709a48fa798cfa0f2f777c8752e12995054f78 (diff) |
RPC: stops the release_pipe() funtion from being called twice
This patch stops the release_pipe() funtion from being called
twice by invalidating the ops pointer in the rpc_inode
when rpc_pipe_release() is called.
Signed-off-by: Steve Dickson <steved@redhat.com>
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
-rw-r--r-- | net/sunrpc/rpc_pipe.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/net/sunrpc/rpc_pipe.c b/net/sunrpc/rpc_pipe.c index ded6c63f11ec..649d609e7d94 100644 --- a/net/sunrpc/rpc_pipe.c +++ b/net/sunrpc/rpc_pipe.c | |||
@@ -177,6 +177,8 @@ rpc_pipe_release(struct inode *inode, struct file *filp) | |||
177 | __rpc_purge_upcall(inode, -EPIPE); | 177 | __rpc_purge_upcall(inode, -EPIPE); |
178 | if (rpci->ops->release_pipe) | 178 | if (rpci->ops->release_pipe) |
179 | rpci->ops->release_pipe(inode); | 179 | rpci->ops->release_pipe(inode); |
180 | if (!rpci->nreaders && !rpci->nwriters) | ||
181 | rpci->ops = NULL; | ||
180 | out: | 182 | out: |
181 | up(&inode->i_sem); | 183 | up(&inode->i_sem); |
182 | return 0; | 184 | return 0; |