All of lore.kernel.org
 help / color / mirror / Atom feed
From: Matt Helsley <matthltc-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org>
To: Chuck Lever <chuck.lever-QHcLZuEGTsvQT0dZR+AlfA@public.gmane.org>
Cc: Linux Containers
	<containers-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org>,
	"J. Bruce Fields"
	<bfields-uC3wQj2KruNg9hUCZPvPmw@public.gmane.org>,
	Cedric Le Goater <clg-NmTC/0ZBporQT0dZR+AlfA@public.gmane.org>,
	Linux Kernel Mailing List
	<linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>,
	linux-nfs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	Trond Myklebust
	<trond.myklebust-41N18TsMXrtuMpJDpNschA@public.gmane.org>,
	"Eric W. Biederman"
	<ebiederm-aS9lmoZGLiVWk0Htik3J/w@public.gmane.org>,
	Linux Containers
	<containers-qjLDD68F18O7TbgM5vRIOg@public.gmane.org>
Subject: Re: [RFC][PATCH 3/4] sunrpc: Improve UTS namespace workaround
Date: Tue, 06 Jan 2009 19:02:12 -0800	[thread overview]
Message-ID: <1231297332.14345.334.camel@localhost> (raw)
In-Reply-To: <E184097A-C995-4C92-9608-A97B43E750E0-QHcLZuEGTsvQT0dZR+AlfA@public.gmane.org>

Argh, missed some questions I should've answered earlier...

On Tue, 2009-01-06 at 11:02 -0500, Chuck Lever wrote:
> Matt-
> 
> Thanks for pursuing a permanent fix for this.
> 
> On Jan 5, 2009, at Jan 5, 2009, 8:13 PM, Matt Helsley wrote:
> 
> > We can improve upon a workaround applied in commit
> > 63ffc23d307c9534c732edd87895e37b223004a3 ( http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=63ffc23d307c9534c732edd87895e37b223004a3 
> >  )
> >
> > The original problem was:
> >
> > "On a system with nfs mounts, if a task unshares its mount namespace,
> > a oops can occur when the system is rebooted if the task is the last
> > to unreference the nfs mount. It will try to create a rpc request
> > using utsname() which has been invalidated by free_nsproxy()."
> >
> > Cedric worked around this by always using the initial uts namespace  
> > for RPC.
> > Critically this workaround meant that RPC clients in uts namespaces  
> > can never
> > report the changed nodename when utilizing RPC.
> >
> > Fix that by storing the nodename in the NFS server structure (part  
> > of the NFS
> > super block) and, when an RPC client is operating on behalf of NFS,  
> > reporting
> > that nodename. This solves the problem for NFS clients but leaves  
> > any other
> > RPC users out in the cold.
> >
> > Rather than caching the nodename in the client structure RPC should  
> > obtain the
> > nodename from RPC callers. It would then be up to those services  
> > making RPC
> > calls to cache the nodename for as long as necessary -- somewhat  
> > like this patch
> > does with NFS.
> 
> Instead of having the RPC client call the consumer back, why can't you  
> pass the nodename as an argument to each RPC call; say, via the  
> rpc_message structure?

I suspect it would work and it would avoid the layering violation you
pointed out.

> > NOTE: Part of Cedric's workaround -- use of the initial uts  
> > namespace -- is
> > still necessary because non-NFS RPC callers still rely on the  
> > nodename cached
> > with the RPC client struct.
> 
> In the long run I think it would be more useful to spell out where  
> each consumer gets its nodename value, rather than having a convenient  
> default value.  A default would encourage exposing nodenames  
> inappropriately due to sloppy coding and incorrect assumptions (on the  
> developer's part) about a complex API.

You make some good points here. I'll add your idea to my list of patches
to try writing:
	1. Store a reference to the uts namespace with the credentials
	2. Pass the nodename directly for each RPC call (via rpc_message
		perhaps)

<snip>

> > Index: linux-2.6.28/include/linux/sunrpc/clnt.h
> > ===================================================================
> > --- linux-2.6.28.orig/include/linux/sunrpc/clnt.h
> > +++ linux-2.6.28/include/linux/sunrpc/clnt.h
> > @@ -19,6 +19,7 @@
> > #include <asm/signal.h>
> >
> > struct rpc_inode;
> > +struct nfs_server;
> >
> > /*
> >  * The high-level client handle
> > @@ -50,6 +51,7 @@ struct rpc_clnt {
> >
> > 	int			cl_nodelen;	/* nodename length */
> > 	char 			cl_nodename[UNX_MAXNODENAME];
> > +	struct nfs_server	*cl_nfs_server;
> 
> This is a layering violation...  I would rather avoid introducing new  
> strong data structure dependencies on one of RPC's consumers.

<snip>

I addressed your other comments in an earlier reply.

Thanks!

Cheers,
	-Matt Helsley

--
To unsubscribe from this list: send the line "unsubscribe linux-nfs" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

WARNING: multiple messages have this Message-ID (diff)
From: Matt Helsley <matthltc@us.ibm.com>
To: Chuck Lever <chuck.lever@oracle.com>
Cc: Linux Containers <containers@lists.linux-foundation.org>,
	"J. Bruce Fields" <bfields@fieldses.org>,
	Cedric Le Goater <clg-NmTC/0ZBporQT0dZR+AlfA@public.gmane.org>,
	Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
	linux-nfs@vger.kernel.org,
	Trond Myklebust <trond.myklebust@fys.uio.no>,
	"Eric W. Biederman" <ebiederm@xmission.com>,
	Linux Containers
	<containers-qjLDD68F18O7TbgM5vRIOg@public.gmane.org>
Subject: Re: [RFC][PATCH 3/4] sunrpc: Improve UTS namespace workaround
Date: Tue, 06 Jan 2009 19:02:12 -0800	[thread overview]
Message-ID: <1231297332.14345.334.camel@localhost> (raw)
In-Reply-To: <E184097A-C995-4C92-9608-A97B43E750E0@oracle.com>

Argh, missed some questions I should've answered earlier...

On Tue, 2009-01-06 at 11:02 -0500, Chuck Lever wrote:
> Matt-
> 
> Thanks for pursuing a permanent fix for this.
> 
> On Jan 5, 2009, at Jan 5, 2009, 8:13 PM, Matt Helsley wrote:
> 
> > We can improve upon a workaround applied in commit
> > 63ffc23d307c9534c732edd87895e37b223004a3 ( http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=63ffc23d307c9534c732edd87895e37b223004a3 
> >  )
> >
> > The original problem was:
> >
> > "On a system with nfs mounts, if a task unshares its mount namespace,
> > a oops can occur when the system is rebooted if the task is the last
> > to unreference the nfs mount. It will try to create a rpc request
> > using utsname() which has been invalidated by free_nsproxy()."
> >
> > Cedric worked around this by always using the initial uts namespace  
> > for RPC.
> > Critically this workaround meant that RPC clients in uts namespaces  
> > can never
> > report the changed nodename when utilizing RPC.
> >
> > Fix that by storing the nodename in the NFS server structure (part  
> > of the NFS
> > super block) and, when an RPC client is operating on behalf of NFS,  
> > reporting
> > that nodename. This solves the problem for NFS clients but leaves  
> > any other
> > RPC users out in the cold.
> >
> > Rather than caching the nodename in the client structure RPC should  
> > obtain the
> > nodename from RPC callers. It would then be up to those services  
> > making RPC
> > calls to cache the nodename for as long as necessary -- somewhat  
> > like this patch
> > does with NFS.
> 
> Instead of having the RPC client call the consumer back, why can't you  
> pass the nodename as an argument to each RPC call; say, via the  
> rpc_message structure?

I suspect it would work and it would avoid the layering violation you
pointed out.

> > NOTE: Part of Cedric's workaround -- use of the initial uts  
> > namespace -- is
> > still necessary because non-NFS RPC callers still rely on the  
> > nodename cached
> > with the RPC client struct.
> 
> In the long run I think it would be more useful to spell out where  
> each consumer gets its nodename value, rather than having a convenient  
> default value.  A default would encourage exposing nodenames  
> inappropriately due to sloppy coding and incorrect assumptions (on the  
> developer's part) about a complex API.

You make some good points here. I'll add your idea to my list of patches
to try writing:
	1. Store a reference to the uts namespace with the credentials
	2. Pass the nodename directly for each RPC call (via rpc_message
		perhaps)

<snip>

> > Index: linux-2.6.28/include/linux/sunrpc/clnt.h
> > ===================================================================
> > --- linux-2.6.28.orig/include/linux/sunrpc/clnt.h
> > +++ linux-2.6.28/include/linux/sunrpc/clnt.h
> > @@ -19,6 +19,7 @@
> > #include <asm/signal.h>
> >
> > struct rpc_inode;
> > +struct nfs_server;
> >
> > /*
> >  * The high-level client handle
> > @@ -50,6 +51,7 @@ struct rpc_clnt {
> >
> > 	int			cl_nodelen;	/* nodename length */
> > 	char 			cl_nodename[UNX_MAXNODENAME];
> > +	struct nfs_server	*cl_nfs_server;
> 
> This is a layering violation...  I would rather avoid introducing new  
> strong data structure dependencies on one of RPC's consumers.

<snip>

I addressed your other comments in an earlier reply.

Thanks!

Cheers,
	-Matt Helsley


WARNING: multiple messages have this Message-ID (diff)
From: Matt Helsley <matthltc@us.ibm.com>
To: Chuck Lever <chuck.lever@oracle.com>
Cc: Linux Containers <containers@lists.linux-foundation.org>,
	"J. Bruce Fields" <bfields@fieldses.org>,
	Cedric Le Goater <clg@fr.ibm.com>,
	Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
	linux-nfs@vger.kernel.org,
	Trond Myklebust <trond.myklebust@fys.uio.no>,
	"Eric W. Biederman" <ebiederm@xmission.com>,
	Linux Containers <containers@lists.osdl.org>
Subject: Re: [RFC][PATCH 3/4] sunrpc: Improve UTS namespace workaround
Date: Tue, 06 Jan 2009 19:02:12 -0800	[thread overview]
Message-ID: <1231297332.14345.334.camel@localhost> (raw)
In-Reply-To: <E184097A-C995-4C92-9608-A97B43E750E0@oracle.com>

Argh, missed some questions I should've answered earlier...

On Tue, 2009-01-06 at 11:02 -0500, Chuck Lever wrote:
> Matt-
> 
> Thanks for pursuing a permanent fix for this.
> 
> On Jan 5, 2009, at Jan 5, 2009, 8:13 PM, Matt Helsley wrote:
> 
> > We can improve upon a workaround applied in commit
> > 63ffc23d307c9534c732edd87895e37b223004a3 ( http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=63ffc23d307c9534c732edd87895e37b223004a3 
> >  )
> >
> > The original problem was:
> >
> > "On a system with nfs mounts, if a task unshares its mount namespace,
> > a oops can occur when the system is rebooted if the task is the last
> > to unreference the nfs mount. It will try to create a rpc request
> > using utsname() which has been invalidated by free_nsproxy()."
> >
> > Cedric worked around this by always using the initial uts namespace  
> > for RPC.
> > Critically this workaround meant that RPC clients in uts namespaces  
> > can never
> > report the changed nodename when utilizing RPC.
> >
> > Fix that by storing the nodename in the NFS server structure (part  
> > of the NFS
> > super block) and, when an RPC client is operating on behalf of NFS,  
> > reporting
> > that nodename. This solves the problem for NFS clients but leaves  
> > any other
> > RPC users out in the cold.
> >
> > Rather than caching the nodename in the client structure RPC should  
> > obtain the
> > nodename from RPC callers. It would then be up to those services  
> > making RPC
> > calls to cache the nodename for as long as necessary -- somewhat  
> > like this patch
> > does with NFS.
> 
> Instead of having the RPC client call the consumer back, why can't you  
> pass the nodename as an argument to each RPC call; say, via the  
> rpc_message structure?

I suspect it would work and it would avoid the layering violation you
pointed out.

> > NOTE: Part of Cedric's workaround -- use of the initial uts  
> > namespace -- is
> > still necessary because non-NFS RPC callers still rely on the  
> > nodename cached
> > with the RPC client struct.
> 
> In the long run I think it would be more useful to spell out where  
> each consumer gets its nodename value, rather than having a convenient  
> default value.  A default would encourage exposing nodenames  
> inappropriately due to sloppy coding and incorrect assumptions (on the  
> developer's part) about a complex API.

You make some good points here. I'll add your idea to my list of patches
to try writing:
	1. Store a reference to the uts namespace with the credentials
	2. Pass the nodename directly for each RPC call (via rpc_message
		perhaps)

<snip>

> > Index: linux-2.6.28/include/linux/sunrpc/clnt.h
> > ===================================================================
> > --- linux-2.6.28.orig/include/linux/sunrpc/clnt.h
> > +++ linux-2.6.28/include/linux/sunrpc/clnt.h
> > @@ -19,6 +19,7 @@
> > #include <asm/signal.h>
> >
> > struct rpc_inode;
> > +struct nfs_server;
> >
> > /*
> >  * The high-level client handle
> > @@ -50,6 +51,7 @@ struct rpc_clnt {
> >
> > 	int			cl_nodelen;	/* nodename length */
> > 	char 			cl_nodename[UNX_MAXNODENAME];
> > +	struct nfs_server	*cl_nfs_server;
> 
> This is a layering violation...  I would rather avoid introducing new  
> strong data structure dependencies on one of RPC's consumers.

<snip>

I addressed your other comments in an earlier reply.

Thanks!

Cheers,
	-Matt Helsley


  parent reply	other threads:[~2009-01-07  3:02 UTC|newest]

Thread overview: 135+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-01-06  1:13 [RFC][PATCH 0/4] utsns: RPC/NFS bug rework Matt Helsley
2009-01-06  1:13 ` [RFC][PATCH 1/4] Remove useless utsname.h includes Matt Helsley
2009-01-06  1:13 ` Matt Helsley
2009-01-06  1:13   ` Matt Helsley
2009-01-06  1:13 ` [RFC][PATCH 2/4] sunrpc: Use utsnamespaces Matt Helsley
2009-01-06  1:13   ` Matt Helsley
2009-01-06  1:13   ` Matt Helsley
     [not found]   ` <20090106011314.961946803-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org>
2009-01-06 20:02     ` Serge E. Hallyn
2009-01-06 20:02       ` Serge E. Hallyn
2009-01-06 20:02       ` Serge E. Hallyn
     [not found]       ` <20090106200229.GA17031-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org>
2009-01-06 20:20         ` J. Bruce Fields
2009-01-06 20:20           ` J. Bruce Fields
2009-01-06 20:20           ` J. Bruce Fields
     [not found]           ` <20090106202046.GF5901-uC3wQj2KruNg9hUCZPvPmw@public.gmane.org>
2009-01-06 21:53             ` Serge E. Hallyn
2009-01-06 21:53               ` Serge E. Hallyn
2009-01-06 21:53               ` Serge E. Hallyn
     [not found]               ` <20090106215324.GD18147-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org>
2009-01-06 23:35                 ` Matt Helsley
2009-01-06 23:35                   ` Matt Helsley
2009-01-06 23:35                   ` Matt Helsley
2009-01-06 22:43             ` Matt Helsley
2009-01-06 22:43               ` Matt Helsley
2009-01-06 22:43               ` Matt Helsley
2009-01-06 20:44         ` Trond Myklebust
2009-01-06 20:44           ` Trond Myklebust
2009-01-06 20:44           ` Trond Myklebust
     [not found]           ` <1231274682.20316.65.camel-rJ7iovZKK19ZJLDQqaL3InhyD016LWXt@public.gmane.org>
2009-01-06 21:58             ` Serge E. Hallyn
2009-01-06 21:58               ` Serge E. Hallyn
2009-01-06 21:58               ` Serge E. Hallyn
2009-01-06 22:42               ` Trond Myklebust
     [not found]                 ` <1231281732.4173.6.camel-rJ7iovZKK19ZJLDQqaL3InhyD016LWXt@public.gmane.org>
2009-01-07  0:08                   ` Matt Helsley
2009-01-07  0:08                     ` Matt Helsley
2009-01-07  0:08                     ` Matt Helsley
2009-01-07  0:20                     ` Trond Myklebust
2009-01-07  0:20                       ` Trond Myklebust
2009-01-07  0:20                       ` Trond Myklebust
     [not found]                       ` <1231287619.11487.2.camel-rJ7iovZKK19ZJLDQqaL3InhyD016LWXt@public.gmane.org>
2009-01-07  0:43                         ` Matt Helsley
2009-01-07  0:43                           ` Matt Helsley
2009-01-07  0:43                           ` Matt Helsley
2009-01-07  1:10                           ` Trond Myklebust
2009-01-07  1:10                             ` Trond Myklebust
2009-01-07  1:10                             ` Trond Myklebust
2009-01-07  0:20                     ` J. Bruce Fields
2009-01-07  0:20                       ` J. Bruce Fields
2009-01-07  0:20                       ` J. Bruce Fields
     [not found]                       ` <20090107002024.GJ13785-uC3wQj2KruNg9hUCZPvPmw@public.gmane.org>
2009-01-07  0:23                         ` Trond Myklebust
2009-01-07  0:23                           ` Trond Myklebust
2009-01-07  0:23                           ` Trond Myklebust
     [not found]                           ` <1231287791.11487.4.camel-rJ7iovZKK19ZJLDQqaL3InhyD016LWXt@public.gmane.org>
2009-01-07  3:44                             ` Matt Helsley
2009-01-07  3:44                               ` Matt Helsley
2009-01-07  3:44                               ` Matt Helsley
     [not found]               ` <20090106215831.GE18147-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org>
2009-01-06 23:04                 ` Eric W. Biederman
2009-01-06 23:04                   ` Eric W. Biederman
2009-01-06 23:04                   ` Eric W. Biederman
     [not found]                   ` <m1eizg11fy.fsf-B27657KtZYmhTnVgQlOflh2eb7JE58TQ@public.gmane.org>
2009-01-06 23:15                     ` Trond Myklebust
2009-01-06 23:15                       ` Trond Myklebust
2009-01-06 23:15                       ` Trond Myklebust
     [not found]                       ` <1231283734.8041.6.camel-rJ7iovZKK19ZJLDQqaL3InhyD016LWXt@public.gmane.org>
2009-01-06 23:32                         ` J. Bruce Fields
2009-01-06 23:32                           ` J. Bruce Fields
2009-01-06 23:32                           ` J. Bruce Fields
     [not found]                           ` <20090106233238.GD13785-uC3wQj2KruNg9hUCZPvPmw@public.gmane.org>
2009-01-06 23:35                             ` Trond Myklebust
2009-01-06 23:35                               ` Trond Myklebust
2009-01-06 23:35                               ` Trond Myklebust
     [not found]                               ` <1231284943.8041.8.camel-rJ7iovZKK19ZJLDQqaL3InhyD016LWXt@public.gmane.org>
2009-01-06 23:48                                 ` Matt Helsley
2009-01-06 23:48                                   ` Matt Helsley
2009-01-06 23:48                                   ` Matt Helsley
2009-01-06 23:51                                 ` Chuck Lever
2009-01-06 23:51                                   ` Chuck Lever
2009-01-06 23:51                                   ` Chuck Lever
2009-01-06 23:53                                 ` J. Bruce Fields
2009-01-06 23:53                                   ` J. Bruce Fields
2009-01-06 23:53                                   ` J. Bruce Fields
     [not found]                                   ` <20090106235322.GE13785-uC3wQj2KruNg9hUCZPvPmw@public.gmane.org>
2009-01-07  0:07                                     ` Matt Helsley
2009-01-07  0:07                                       ` Matt Helsley
2009-01-07  0:07                                       ` Matt Helsley
2009-01-07  0:55                                       ` Eric W. Biederman
2009-01-07  0:55                                         ` Eric W. Biederman
2009-01-07  0:55                                         ` Eric W. Biederman
2009-01-07  0:20                                     ` Trond Myklebust
2009-01-07  0:20                                       ` Trond Myklebust
2009-01-07  0:20                                       ` Trond Myklebust
2009-01-07  0:20                                 ` Trond Myklebust
2009-01-07  0:20                                   ` Trond Myklebust
2009-01-07  0:20                                   ` Trond Myklebust
     [not found]                                   ` <1231287607.11487.0.camel-rJ7iovZKK19ZJLDQqaL3InhyD016LWXt@public.gmane.org>
2009-01-07  0:26                                     ` J. Bruce Fields
2009-01-07  0:26                                       ` J. Bruce Fields
2009-01-07  0:26                                       ` J. Bruce Fields
     [not found]                                       ` <20090107002608.GK13785-uC3wQj2KruNg9hUCZPvPmw@public.gmane.org>
2009-01-07  0:38                                         ` Trond Myklebust
2009-01-07  0:38                                           ` Trond Myklebust
2009-01-07  0:38                                           ` Trond Myklebust
     [not found]                                           ` <1231288706.11487.15.camel-rJ7iovZKK19ZJLDQqaL3InhyD016LWXt@public.gmane.org>
2009-01-07  1:44                                             ` J. Bruce Fields
2009-01-07  1:44                                               ` J. Bruce Fields
2009-01-07  1:44                                               ` J. Bruce Fields
     [not found]                                               ` <20090107014422.GA17913-uC3wQj2KruNg9hUCZPvPmw@public.gmane.org>
2009-01-07  1:50                                                 ` Trond Myklebust
2009-01-07  1:50                                                   ` Trond Myklebust
2009-01-07  1:50                                                   ` Trond Myklebust
2009-01-07  2:37                                                 ` Eric W. Biederman
2009-01-07  2:37                                                   ` Eric W. Biederman
2009-01-07  2:37                                                   ` Eric W. Biederman
2009-01-06 23:30                 ` Matt Helsley
2009-01-06 23:30                   ` Matt Helsley
2009-01-06 23:30                   ` Matt Helsley
2009-01-06 23:18             ` Matt Helsley
2009-01-06 23:18               ` Matt Helsley
2009-01-06 23:18               ` Matt Helsley
2009-01-06 23:43               ` Trond Myklebust
2009-01-06 23:43                 ` Trond Myklebust
2009-01-06 23:43                 ` Trond Myklebust
     [not found]                 ` <1231285417.8041.15.camel-rJ7iovZKK19ZJLDQqaL3InhyD016LWXt@public.gmane.org>
2009-01-06 23:58                   ` Matt Helsley
2009-01-06 23:58                     ` Matt Helsley
2009-01-06 23:58                     ` Matt Helsley
2009-01-06 22:29         ` Chuck Lever
2009-01-06 22:29           ` Chuck Lever
2009-01-06 22:29           ` Chuck Lever
     [not found]           ` <FB1BAB9F-25D4-449F-A66D-D1CC705F3741-QHcLZuEGTsvQT0dZR+AlfA@public.gmane.org>
2009-01-07  0:01             ` Serge E. Hallyn
2009-01-07  0:01               ` Serge E. Hallyn
2009-01-07  0:01               ` Serge E. Hallyn
2009-01-06  1:13 ` [RFC][PATCH 3/4] sunrpc: Improve UTS namespace workaround Matt Helsley
2009-01-06  1:13   ` Matt Helsley
2009-01-06  1:13   ` Matt Helsley
     [not found]   ` <20090106011315.100081168-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org>
2009-01-06 16:02     ` Chuck Lever
2009-01-06 16:02       ` Chuck Lever
     [not found]       ` <E184097A-C995-4C92-9608-A97B43E750E0-QHcLZuEGTsvQT0dZR+AlfA@public.gmane.org>
2009-01-07  0:28         ` Matt Helsley
2009-01-07  0:28           ` Matt Helsley
2009-01-07  0:28           ` Matt Helsley
2009-01-07  3:02         ` Matt Helsley [this message]
2009-01-07  3:02           ` Matt Helsley
2009-01-07  3:02           ` Matt Helsley
2009-01-06  1:13 ` [RFC][PATCH 4/4] Represent RPC Callers Matt Helsley
2009-01-06  1:13   ` Matt Helsley
2009-01-06  1:13   ` Matt Helsley
     [not found]   ` <20090106011315.229045829-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org>
2009-01-06 13:04     ` Trond Myklebust
2009-01-06 13:04       ` Trond Myklebust
     [not found]       ` <1231247062.7127.36.camel-rJ7iovZKK19ZJLDQqaL3InhyD016LWXt@public.gmane.org>
2009-01-06 23:05         ` Matt Helsley
2009-01-06 23:05           ` Matt Helsley
2009-01-06 23:05           ` Matt Helsley

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=1231297332.14345.334.camel@localhost \
    --to=matthltc-r/jw6+rmf7hqt0dzr+alfa@public.gmane.org \
    --cc=bfields-uC3wQj2KruNg9hUCZPvPmw@public.gmane.org \
    --cc=chuck.lever-QHcLZuEGTsvQT0dZR+AlfA@public.gmane.org \
    --cc=clg-NmTC/0ZBporQT0dZR+AlfA@public.gmane.org \
    --cc=containers-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org \
    --cc=containers-qjLDD68F18O7TbgM5vRIOg@public.gmane.org \
    --cc=ebiederm-aS9lmoZGLiVWk0Htik3J/w@public.gmane.org \
    --cc=linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=linux-nfs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=trond.myklebust-41N18TsMXrtuMpJDpNschA@public.gmane.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.