From patchwork Fri Jul 15 17:56:04 2011 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ben Greear X-Patchwork-Id: 980112 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 p6FHwUaw031713 for ; Fri, 15 Jul 2011 17:58:33 GMT Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755884Ab1GOR6B (ORCPT ); Fri, 15 Jul 2011 13:58:01 -0400 Received: from mail.candelatech.com ([208.74.158.172]:58967 "EHLO ns3.lanforge.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1755882Ab1GOR6A (ORCPT ); Fri, 15 Jul 2011 13:58:00 -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 p6FHuIUg019371 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Fri, 15 Jul 2011 10:56:20 -0700 From: greearb@candelatech.com To: linux-nfs@vger.kernel.org, linux-kernel@vger.kernel.org Cc: Ben Greear Subject: [PATCH (RESEND) 08/12] nfs: Pass srcaddr into mount request. Date: Fri, 15 Jul 2011 10:56:04 -0700 Message-Id: <1310752568-21280-9-git-send-email-greearb@candelatech.com> X-Mailer: git-send-email 1.7.3.4 In-Reply-To: <1310752568-21280-1-git-send-email-greearb@candelatech.com> References: <1310752568-21280-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]); Fri, 15 Jul 2011 17:58:33 +0000 (UTC) From: Ben Greear This starts tying the srcaddr logic together. Signed-off-by: Ben Greear --- :100644 100644 60a36a2... eaf9c66... 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 60a36a2..eaf9c66 100644 --- a/fs/nfs/internal.h +++ b/fs/nfs/internal.h @@ -133,6 +133,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,