Return-Path: linux-nfs-owner@vger.kernel.org Received: from relay.parallels.com ([195.214.232.42]:52082 "EHLO relay.parallels.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1755525Ab2HJSuu convert rfc822-to-8bit (ORCPT ); Fri, 10 Aug 2012 14:50:50 -0400 Message-ID: <50255808.6080208@parallels.com> Date: Fri, 10 Aug 2012 22:50:48 +0400 From: Stanislav Kinsbursky MIME-Version: 1.0 To: "H. Peter Anvin" CC: "Trond.Myklebust@netapp.com" , "davem@davemloft.net" , "linux-nfs@vger.kernel.org" , "eric.dumazet@gmail.com" , Pavel Emelianov , "netdev@vger.kernel.org" , "linux-kernel@vger.kernel.org" , "bfields@fieldses.org" , "viro@zeniv.linux.org.uk" , "tim.c.chen@linux.intel.com" , "devel@openvz.org" Subject: Re: [RFC PATCH 0/2] net: connect to UNIX sockets from specified root References: <20120810125701.7115.71612.stgit@localhost.localdomain> <50254FA6.3060806@zytor.com> In-Reply-To: <50254FA6.3060806@zytor.com> Content-Type: text/plain; charset="UTF-8"; format=flowed Sender: linux-nfs-owner@vger.kernel.org List-ID: 10.08.2012 22:15, H. Peter Anvin пишет: > On 08/10/2012 05:57 AM, Stanislav Kinsbursky wrote: >> Today, there is a problem in connecting of local SUNRPC thansports. These >> transports uses UNIX sockets and connection itself is done by rpciod >> workqueue. >> But UNIX sockets lookup is done in context of process file system root. I.e. >> all local thunsports are connecting in rpciod context. >> This works nice until we will try to mount NFS from process with other root - >> for example in container. This container can have it's own (nested) root and >> rcpbind process, listening on it's own unix sockets. But NFS mount attempt in >> this container will register new service (Lockd for example) in global rpcbind >> - not containers's one. >> >> This patch set introduces kernel connect helper for UNIX stream sockets and >> modifies unix_find_other() to be able to search from specified root. >> It also replaces generic socket connect call for local transports by new >> helper in SUNRPC layer. >> >> The following series implements... > On that whole subject... > > Do we need a Unix domain socket equivalent to openat()? It looks like sys_connectat () and sys_bindat () could be an organic part on openat () and friends family. But currently I don't have any usage example for them in hands. And the main problem here, that this syscalls can be used only for unix sockets.