Received: by 2002:a25:ad19:0:0:0:0:0 with SMTP id y25csp7758636ybi; Mon, 22 Jul 2019 20:09:13 -0700 (PDT) X-Google-Smtp-Source: APXvYqyGte06emuKoxmMZRHPCihXJVqmbIyT+xAnaq1Dz/y52K547VbClCIESp0gon29XB878+Ih X-Received: by 2002:a17:902:ff05:: with SMTP id f5mr75990564plj.116.1563851353153; Mon, 22 Jul 2019 20:09:13 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1563851353; cv=none; d=google.com; s=arc-20160816; b=Vhu0sGS3LjA3OkZDdXWwD+lL+Jmg76eNbR+2bKBa2sFVIBoZaKMoV+JB1LGyJcS0tz c9qA2iekBnL3jMetBFRCQ4RSdNfeh46ruBbn8S0XNnCV9dBl4Ff3o0sEgH9XJH0p5zPI LHHl8gpSJtrTS0gJ4BeZ8kDMIulDaQ6zuObOiBRfoUsBB2tfYoAPUYe1RcXfgZ7tkm3v T80J+I7hxV3ahMd1/DTQ0qljPWSSBnpedavyNZeUJYxKSSknG68avJnoLebRPU+Wr/bU Y1xT7HxUhA31uxO+s2YdcYGRminnWSBDMqbk9OgDHhSDtbYVHhYXU+mpqHSrY5+2EDqg 5Ssg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:dkim-signature; bh=AXAiNBKSGvHHvKKPrqoK3zYqyQGzmtM3JyZq0oeg6bQ=; b=rAvPbwveuovJLHs0bkruEpoPlY8+R1xGiexMPzCaj8SvzlqKYVMRrrtPJVyeokSpPy G77EUtee0dEDVJwXDiCVXtzdMFo9KPcseXM7oNnzstfVi0K5Q+Wo8OQYYQe+5nnu6Ojn Z8n90yyZn6uxq6MIbtIStoyRHXQL8bK3VlQeiiYn78F3+JAR+h0HIYHylWoYNbSKOQW1 g7he5QmeakRmv3KYJqNX1qWWlhpWFN5e/pt/+Fck8ckDrTVnjocNIjKvboBpb1cYX/If GQcHv9iwkVf9otXaEKh29GPTCLkhqc8v+2jLsEuuk7vB5JfBBMJZyMe96DaqX0TKqKR7 nNDA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=WS1zMKYJ; spf=pass (google.com: best guess record for domain of linux-nfs-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-nfs-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id f5si10536416pgb.461.2019.07.22.20.08.45; Mon, 22 Jul 2019 20:09:13 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-nfs-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=WS1zMKYJ; spf=pass (google.com: best guess record for domain of linux-nfs-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-nfs-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729716AbfGVT70 (ORCPT + 99 others); Mon, 22 Jul 2019 15:59:26 -0400 Received: from mail-vs1-f66.google.com ([209.85.217.66]:40397 "EHLO mail-vs1-f66.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1729232AbfGVT70 (ORCPT ); Mon, 22 Jul 2019 15:59:26 -0400 Received: by mail-vs1-f66.google.com with SMTP id a186so25541178vsd.7 for ; Mon, 22 Jul 2019 12:59:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=AXAiNBKSGvHHvKKPrqoK3zYqyQGzmtM3JyZq0oeg6bQ=; b=WS1zMKYJqnjIlK0FgNrL0zM36cUcLWe6HfJ6fXCUIjYJiu8+IlGyxJeFj8Us0P2sF2 M1ZDxrbh9EfUX21kINEzXIwCPHWYDna+WXT/ju7ukLyxr2vZ0NmzLd1I2cQ4OAIOfO64 9cW68F2idZQXhKcTu0u795zkbuNrMsgOeq9OteqKx7MkVaKPI2lBd78GYwPwvaS/I3rt ySxDSBKl1vPA7mPsfvOO4PAT4H1CwLEyRcSyrfIns0t7Efr1iElb5rMuqQjlmJv5xovK SrwuP0H5qEMNtIu4F2S9q1BXQfgVontII5kGjUIz3MWA6WaWC+IfT1FuOM1YbernMOtQ WzsQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=AXAiNBKSGvHHvKKPrqoK3zYqyQGzmtM3JyZq0oeg6bQ=; b=Um2yvU/Fedtv17S7vHdFneQHmkxS50gNtopcwkUZMI61YJ3rqH+yNUhfpRXQT5SFP8 X5Wir539JdzTZWRdw/L6ATPt4RfBB2W7KHMrv3ZdDOjtwBktwOedgCHoYgWTxls78gNw LbOWhsP38qeswbB8xplkwSY/K2ACI1Jy7Xb3OxzCQJcl01L0Y4CwlPaAguKo7RiASXnR VVCdZtx4J5RuIgcnIhgNddgWgpt8FsVlKQURYjaOgrGi5mJQyfGrBAnz6rAjtwZiIlRH IPegnfK2VMRXZL7cOHXBNeEWegnz9x2D/xuzp+8iNiLrrzpgZk8uELZPg65MJkn1vbNj JVew== X-Gm-Message-State: APjAAAUBsmXKNyBCMj+2ZAkoXC9rP/7JpJKLHtxGypahtOnQfrbBPnP6 V0AIdcoYbjbbYxxLNTESMbUqfV6ZOPFbFjz6iWk= X-Received: by 2002:a67:dc1:: with SMTP id 184mr45626966vsn.164.1563825565340; Mon, 22 Jul 2019 12:59:25 -0700 (PDT) MIME-Version: 1.0 References: <20190708192352.12614-1-olga.kornievskaia@gmail.com> <20190708192352.12614-2-olga.kornievskaia@gmail.com> <20190717211317.GM24608@fieldses.org> In-Reply-To: <20190717211317.GM24608@fieldses.org> From: Olga Kornievskaia Date: Mon, 22 Jul 2019 15:59:14 -0400 Message-ID: Subject: Re: [PATCH v4 1/8] NFSD fill-in netloc4 structure To: "J. Bruce Fields" Cc: "J. Bruce Fields" , linux-nfs Content-Type: text/plain; charset="UTF-8" Sender: linux-nfs-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-nfs@vger.kernel.org On Wed, Jul 17, 2019 at 5:13 PM J. Bruce Fields wrote: > > On Mon, Jul 08, 2019 at 03:23:45PM -0400, Olga Kornievskaia wrote: > > From: Olga Kornievskaia > > > > nfs.4 defines nfs42_netaddr structure that represents netloc4. > > > > Populate needed fields from the sockaddr structure. > > > > This will be used by flexfiles and 4.2 inter copy > > > > Signed-off-by: Olga Kornievskaia > > --- > > fs/nfsd/nfsd.h | 32 ++++++++++++++++++++++++++++++++ > > 1 file changed, 32 insertions(+) > > > > diff --git a/fs/nfsd/nfsd.h b/fs/nfsd/nfsd.h > > index 24187b5..8f4fc50 100644 > > --- a/fs/nfsd/nfsd.h > > +++ b/fs/nfsd/nfsd.h > > @@ -19,6 +19,7 @@ > > #include > > #include > > #include > > +#include > > > > #include > > > > @@ -375,6 +376,37 @@ static inline bool nfsd4_spo_must_allow(struct svc_rqst *rqstp) > > > > extern const u32 nfsd_suppattrs[3][3]; > > > > +static inline u32 nfsd4_set_netaddr(struct sockaddr *addr, > > + struct nfs42_netaddr *netaddr) > > +{ > > + struct sockaddr_in *sin = (struct sockaddr_in *)addr; > > + struct sockaddr_in6 *sin6 = (struct sockaddr_in6 *)addr; > > + unsigned int port; > > + size_t ret_addr, ret_port; > > + > > + switch (addr->sa_family) { > > + case AF_INET: > > + port = ntohs(sin->sin_port); > > + sprintf(netaddr->netid, "tcp"); > > + netaddr->netid_len = 3; > > + break; > > + case AF_INET6: > > + port = ntohs(sin6->sin6_port); > > + sprintf(netaddr->netid, "tcp6"); > > + netaddr->netid_len = 4; > > + break; > > + default: > > + return nfserr_inval; > > + } > > + ret_addr = rpc_ntop(addr, netaddr->addr, sizeof(netaddr->addr)); > > + ret_port = snprintf(netaddr->addr + ret_addr, > > + RPCBIND_MAXUADDRLEN + 1 - ret_addr, > > + ".%u.%u", port >> 8, port & 0xff); > > + WARN_ON(ret_port >= RPCBIND_MAXUADDRLEN + 1 - ret_addr); > > + netaddr->addr_len = ret_addr + ret_port; > > + return 0; > > +} > > Kinda surprised we don't already do something like this elsewhere, but I > don't see anything exactly the same. Might be possible to put this in > net/sunrpc/addr.c and share some code with rpc_sockaddr2uaddr? I'll > leave it to you whether that looks worth it. I'll investigate how to move this into the sunrpc. Client also populates nfs42_netaddr structure but it's slightly different. I need to go back and see if what's shareable. > > --b. > > > + > > static inline bool bmval_is_subset(const u32 *bm1, const u32 *bm2) > > { > > return !((bm1[0] & ~bm2[0]) || > > -- > > 1.8.3.1