From patchwork Mon Jan 21 20:45:53 2013 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ben Greear X-Patchwork-Id: 2014001 Return-Path: X-Original-To: patchwork-linux-nfs@patchwork.kernel.org Delivered-To: patchwork-process-083081@patchwork1.kernel.org Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by patchwork1.kernel.org (Postfix) with ESMTP id E5C6E3FDD2 for ; Mon, 21 Jan 2013 20:47:00 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1756573Ab3AUUrA (ORCPT ); Mon, 21 Jan 2013 15:47:00 -0500 Received: from mail.candelatech.com ([208.74.158.172]:39867 "EHLO ns3.lanforge.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753973Ab3AUUq7 (ORCPT ); Mon, 21 Jan 2013 15:46:59 -0500 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 r0LKkDww022791 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Mon, 21 Jan 2013 12:46:14 -0800 From: greearb@candelatech.com To: linux-nfs@vger.kernel.org Cc: Ben Greear Subject: [RFC 07/13] nfs: Pass srcaddr into mount request. Date: Mon, 21 Jan 2013 12:45:53 -0800 Message-Id: <1358801159-18829-8-git-send-email-greearb@candelatech.com> X-Mailer: git-send-email 1.7.3.4 In-Reply-To: <1358801159-18829-1-git-send-email-greearb@candelatech.com> References: <1358801159-18829-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 From: Ben Greear This starts tying the srcaddr logic together. Signed-off-by: Ben Greear --- 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 dbb2ee7..f4584b7 100644 --- a/fs/nfs/internal.h +++ b/fs/nfs/internal.h @@ -148,6 +148,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 015f71f..e574f3f 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 = info->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 61b3dc9..57f0da3 100644 --- a/fs/nfs/super.c +++ b/fs/nfs/super.c @@ -1710,6 +1710,8 @@ static int nfs_request_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,