From patchwork Thu Jun 9 23:02:52 2011 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ben Greear X-Patchwork-Id: 867522 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by demeter2.kernel.org (8.14.4/8.14.4) with ESMTP id p59N4MmO003461 for ; Thu, 9 Jun 2011 23:05:25 GMT Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1757203Ab1FIXFY (ORCPT ); Thu, 9 Jun 2011 19:05:24 -0400 Received: from mail.candelatech.com ([208.74.158.172]:34544 "EHLO ns3.lanforge.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1756650Ab1FIXFY (ORCPT ); Thu, 9 Jun 2011 19:05:24 -0400 Received: from fs3.candelatech.com (firewall.candelatech.com [70.89.124.249]) by ns3.lanforge.com (8.14.2/8.14.2) with ESMTP id p59N33Sn008979 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Thu, 9 Jun 2011 16:03:12 -0700 From: greearb@candelatech.com To: linux-nfs@vger.kernel.org Cc: Ben Greear Subject: [RFC 08/11] nfs: Pass srcaddr into mount request. Date: Thu, 9 Jun 2011 16:02:52 -0700 Message-Id: <1307660575-6994-9-git-send-email-greearb@candelatech.com> X-Mailer: git-send-email 1.7.3.4 In-Reply-To: <1307660575-6994-1-git-send-email-greearb@candelatech.com> References: <1307660575-6994-1-git-send-email-greearb@candelatech.com> Sender: linux-nfs-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-nfs@vger.kernel.org X-Greylist: IP, sender and recipient auto-whitelisted, not delayed by milter-greylist-4.2.6 (demeter2.kernel.org [140.211.167.43]); Thu, 09 Jun 2011 23:05:25 +0000 (UTC) From: Ben Greear This starts tying the srcaddr logic together. Signed-off-by: Ben Greear --- :100644 100644 59c3a26... 2faac84... M fs/nfs/internal.h :100644 100644 d4c2d6b... 5ca6e12... M fs/nfs/mount_clnt.c :100644 100644 cb41131... e45f616... M fs/nfs/super.c fs/nfs/internal.h | 1 + fs/nfs/mount_clnt.c | 1 + fs/nfs/super.c | 2 ++ 3 files changed, 4 insertions(+), 0 deletions(-) diff --git a/fs/nfs/internal.h b/fs/nfs/internal.h index 59c3a26..2faac84 100644 --- a/fs/nfs/internal.h +++ b/fs/nfs/internal.h @@ -122,6 +122,7 @@ struct nfs_parsed_mount_data { /* mount_clnt.c */ struct nfs_mount_request { struct sockaddr *sap; + struct sockaddr *srcaddr; size_t salen; char *hostname; char *dirpath; diff --git a/fs/nfs/mount_clnt.c b/fs/nfs/mount_clnt.c index d4c2d6b..5ca6e12 100644 --- a/fs/nfs/mount_clnt.c +++ b/fs/nfs/mount_clnt.c @@ -155,6 +155,7 @@ int nfs_mount(struct nfs_mount_request *info) struct rpc_create_args args = { .net = &init_net, .protocol = info->protocol, + .saddress = info->srcaddr, .address = info->sap, .addrsize = info->salen, .servername = info->hostname, diff --git a/fs/nfs/super.c b/fs/nfs/super.c index cb41131..e45f616 100644 --- a/fs/nfs/super.c +++ b/fs/nfs/super.c @@ -1600,6 +1600,8 @@ static int nfs_try_mount(struct nfs_parsed_mount_data *args, struct nfs_mount_request request = { .sap = (struct sockaddr *) &args->mount_server.address, + .salen = args->mount_server.addrlen, + .srcaddr = (struct sockaddr *)&args->srcaddr.address, .dirpath = args->nfs_server.export_path, .protocol = args->mount_server.protocol, .fh = root_fh,