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 ------------------------------------------------------ --- linux-2.6.13/net/sunrpc/rpc_pipe.c.orig 2005-08-28 19:41:01.000000000 -0400 +++ linux-2.6.13/net/sunrpc/rpc_pipe.c 2005-09-16 11:18:53.598157000 -0400 @@ -177,6 +177,8 @@ rpc_pipe_release(struct inode *inode, st __rpc_purge_upcall(inode, -EPIPE); if (rpci->ops->release_pipe) rpci->ops->release_pipe(inode); + if (!rpci->nreaders && !rpci->nwriters) + rpci->ops = NULL; out: up(&inode->i_sem); return 0;