From: Stanislav Kinsbursky <skinsbursky@parallels.com>
To: Chuck Lever <chuck.lever@oracle.com>
Cc: "linux-nfs@vger.kernel.org" <linux-nfs@vger.kernel.org>
Subject: Re: [PATCH 0/3] rpcauth_create() returns -EEXIST
Date: Fri, 10 Aug 2012 12:17:37 +0400 [thread overview]
Message-ID: <5024C3A1.7030908@parallels.com> (raw)
In-Reply-To: <20120809205748.12984.88991.stgit@degas.1015granger.net>
Ack on all set.
10.08.2012 01:31, Chuck Lever пишет:
> A few weeks ago I reported a problem with calling rpcauth_create()
> in a loop to serially replace an RPC transport's with different
> flavors. When the loop gets up to the GSS flavors, the second
> GSS flavor in the list can't be created. rpcauth_create() fails
> with -EEXIST. See:
>
> http://marc.info/?t=134073471800002&r=1&w=2
>
> rpcauth_create() invokes the rpc_auth ->create operation first then
> releases the old rpc_auth. But the old rpc_auth is holding onto
> upcall pipes, which prevents the new GSS rpc_auth from creating its
> own upcall pipes.
>
> This breaks our client's SECINFO implementation, and will also break
> UCS server trunking discovery when it appears.
>
> Trond proposed a solution in the same e-mail thread, but it was
> archived uuencoded. Here is his suggestion in human-readable form:
>
>> The solution here would be to create a per-rpc_client, per-pipename
>> shared 'rpcsec_gss_pipe' object that holds the upcall pipe data.
>
> Here's my crack at this idea. This post is a request for comments;
> more testing is needed.
>
> ---
>
> Chuck Lever (3):
> SUNRPC: Share upcall pipes among an rpc_clnt's rpc_auth objects
> SUNRPC: Insert a shim under gss_create()
> SUNRPC: Prepare gss_pipes_dentries_create() for sharing pipe data
>
>
> include/linux/sunrpc/clnt.h | 1
> net/sunrpc/auth_gss/auth_gss.c | 232 ++++++++++++++++++++++++++++++++--------
> net/sunrpc/clnt.c | 1
> 3 files changed, 189 insertions(+), 45 deletions(-)
>
--
Best regards,
Stanislav Kinsbursky
prev parent reply other threads:[~2012-08-10 8:17 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-08-09 21:31 [PATCH 0/3] rpcauth_create() returns -EEXIST Chuck Lever
2012-08-09 21:31 ` [PATCH 1/3] SUNRPC: Prepare gss_pipes_dentries_create() for sharing pipe data Chuck Lever
2012-08-09 21:31 ` [PATCH 2/3] SUNRPC: Insert a shim under gss_create() Chuck Lever
2012-08-09 21:31 ` [PATCH 3/3] SUNRPC: Share upcall pipes among an rpc_clnt's rpc_auth objects Chuck Lever
2012-08-10 8:17 ` Stanislav Kinsbursky [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=5024C3A1.7030908@parallels.com \
--to=skinsbursky@parallels.com \
--cc=chuck.lever@oracle.com \
--cc=linux-nfs@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.