| Re: [PATCH v3] SUNRPC: set desired file system root before connecting local transports [message #48253 is a reply to message #48252] | 
			Tue, 09 October 2012 22:31    | 
		 
		
			
				
				
				
					
						  
						bfields
						 Messages: 107 Registered: September 2007 
						
					 | 
					Senior Member  | 
					 | 
		 
		 
	 | 
 
	
		On Tue, Oct 09, 2012 at 01:20:48PM -0700, Eric W. Biederman wrote: 
> "Myklebust, Trond" <Trond.Myklebust@netapp.com> writes: 
>  
> > On Tue, 2012-10-09 at 15:35 -0400, J. Bruce Fields wrote: 
> >> Cc'ing Eric since I seem to recall he suggested doing it this way? 
>  
> Yes.  On second look setting fs->root won't work. We need to change fs. 
> The problem is that by default all kernel threads share fs so changing 
> fs->root will have non-local consequences. 
 
Oh, huh.  And we can't "unshare" it somehow? 
 
Or, previously you suggested: 
 
	- introduce sockaddr_fd that can be applied to AF_UNIX sockets, 
	  and teach unix_bind and unix_connect how to deal with a second 
	  type of sockaddr, AT_FD: 
	  struct sockaddr_fd { short fd_family; short pad; int fd; } 
 
	- introduce sockaddr_unix_at that takes a directory file 
	  descriptor as well as a unix path, and teach unix_bind and 
	  unix_connect to deal with a second sockaddr type, AF_UNIX_AT: 
	  struct sockaddr_unix_at { short family; short pad; int dfd; char path[102]; } 
 
Any other options? 
 
> I very much believe we want if at all possible to perform a local 
> modification. 
>  
> Changing fs isn't all that different from what devtmpfs is doing. 
 
Sorry, I don't know much about devtmpfs, are you suggesting it as a 
model?  What exactly should we look at? 
 
--b.
		
		
		
 |  
	| 
		
	 | 
 
 
 |