Return-Path: Received: from mail-it0-f67.google.com ([209.85.214.67]:36347 "EHLO mail-it0-f67.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752463AbdDCNzB (ORCPT ); Mon, 3 Apr 2017 09:55:01 -0400 Received: by mail-it0-f67.google.com with SMTP id a140so2022449ita.3 for ; Mon, 03 Apr 2017 06:55:01 -0700 (PDT) Content-Type: text/plain; charset=us-ascii Mime-Version: 1.0 (Mac OS X Mail 10.3 \(3273\)) Subject: Re: [PATCH] nfs: flexfilelayout: remove v3-only data server limitation From: Weston Andros Adamson In-Reply-To: <20170403121026.14142-1-tigran.mkrtchyan@desy.de> Date: Mon, 3 Apr 2017 09:54:59 -0400 Cc: linux-nfs list , Trond Myklebust Message-Id: References: <20170403121026.14142-1-tigran.mkrtchyan@desy.de> To: Tigran Mkrtchyan Sender: linux-nfs-owner@vger.kernel.org List-ID: Hey Tigran! > On Apr 3, 2017, at 8:10 AM, Tigran Mkrtchyan = wrote: >=20 > Flexfilelayout supports data servers which talk NFS v3 and v4.{0,1}. > However, this code path is disabled and v3 only servers are accepted. > This change removes this limitation. > Signed-off-by: Tigran Mkrtchyan > --- > fs/nfs/flexfilelayout/flexfilelayoutdev.c | 18 ++++++++++++------ > 1 file changed, 12 insertions(+), 6 deletions(-) >=20 > diff --git a/fs/nfs/flexfilelayout/flexfilelayoutdev.c = b/fs/nfs/flexfilelayout/flexfilelayoutdev.c > index 457cfeb..fac0ef2 100644 > --- a/fs/nfs/flexfilelayout/flexfilelayoutdev.c > +++ b/fs/nfs/flexfilelayout/flexfilelayoutdev.c > @@ -119,12 +119,18 @@ nfs4_ff_alloc_deviceid_node(struct nfs_server = *server, struct pnfs_device *pdev, > if (ds_versions[i].wsize > NFS_MAX_FILE_IO_SIZE) > ds_versions[i].wsize =3D NFS_MAX_FILE_IO_SIZE; >=20 > - if (ds_versions[i].version !=3D 3 || = ds_versions[i].minor_version !=3D 0) { > - dprintk("%s: [%d] unsupported ds version = %d-%d\n", __func__, > - i, ds_versions[i].version, > - ds_versions[i].minor_version); > - ret =3D -EPROTONOSUPPORT; > - goto out_err_drain_dsaddrs; > + /* check for valid major minor combination */ > + switch (ds_versions[i].version * 100 + = ds_versions[i].minor_version) { I'm not sure I love this method of matching > + case 300: /* v3 */ > + case 400: /* v4.0 */ > + case 401: /* v4.1 */ > + break; v4.2? -dros > + default: > + dprintk("%s: [%d] unsupported ds version = %d-%d\n", __func__, > + i, ds_versions[i].version, > + ds_versions[i].minor_version); > + ret =3D -EPROTONOSUPPORT; > + goto out_err_drain_dsaddrs; > } >=20 > dprintk("%s: [%d] vers %u minor_ver %u rsize %u wsize %u = coupled %d\n", > --=20 > 2.9.3 >=20 > -- > To unsubscribe from this list: send the line "unsubscribe linux-nfs" = in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html