Received: by 2002:a05:7412:2a8a:b0:fc:a2b0:25d7 with SMTP id u10csp536039rdh; Wed, 7 Feb 2024 11:59:06 -0800 (PST) X-Google-Smtp-Source: AGHT+IFTeYeAemjg6fH5QrtrUFBupame3Up526ZfJf+3EeE+o4G8kxSg6AP+yXX251Qfq7libnXW X-Received: by 2002:a81:410a:0:b0:5ff:86cb:ea77 with SMTP id o10-20020a81410a000000b005ff86cbea77mr5661099ywa.10.1707335946114; Wed, 07 Feb 2024 11:59:06 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1707335945; cv=pass; d=google.com; s=arc-20160816; b=uzpNUX4r8E+uL60u2EVD0dbVIIWm6FYyxdHRVjQyRPHjxtonk/vM/77dDzJgBRmBWG C6uktTCQS576Xndv7o0tt+88VnpiW1S1Rz+3o/hDsoMORgGBOGSk8eyPRSLiKzCyfv4g Hk77BdRsF1FcdqXp1HLnZsoKOxTLeJSc8vowsEm9/k99zZkPc1KC/Vi3KTsZbK+/2vM8 MOD2ga6gQhyupoMhcPoB7PAsx/YwgcxtN41/884wUZa4P6s4eZuQCCcbB+AuP9D8nXFp viPToqBoC4u/oBWbzxKOJMDG5qXulf8cmdRWTHaJiSYsw3TCul9SLyww/km+q05VYCCb 1dgw== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:list-unsubscribe:list-subscribe :list-id:precedence:dkim-signature; bh=qplGqRvT3RG78nISYN4gJ3PXg+Vm6YVg1234bKncLSc=; fh=HqRD5sNawOR+dlQb3MtwZ28ELFCyZN+DKhU0JWR3ncE=; b=iuQiVqZ/pbvb1bb5VG9gl2fvgEhZdCNgtzAC/5UTEvFmJfym9pWHRMw/XoXNIOn0vS xKAIt7KuQefQebDzqXIh8zGjyWKmXCBrKE7UL+mWr1cc9Wqk34d3OecLBHFvqUjK93ai V2kOXW53WonWOAVOUgs6AdQXjMNa/kRkoELU9NG39Q6SYmt3z+f5j09s5iDzzmdVvQC0 2n3F23r8O4WPCdenLoLwVzVkPJaKYiwYQJC0pSU3bjkLN5BN1fOyJ6Yn4ybVEnVrsdIe te5fmC9JSjFxb9K8gpHyAk5569McqpnJoxD7eINu2E/n5/Tnhi7CBRmMHOVMsiDHh2K3 Suag==; dara=google.com ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@gmail.com header.s=20230601 header.b=QpFVk4jr; arc=pass (i=1 spf=pass spfdomain=gmail.com dkim=pass dkdomain=gmail.com dmarc=pass fromdomain=gmail.com); spf=pass (google.com: domain of linux-nfs+bounces-1826-linux.lists.archive=gmail.com@vger.kernel.org designates 147.75.199.223 as permitted sender) smtp.mailfrom="linux-nfs+bounces-1826-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com X-Forwarded-Encrypted: i=2; AJvYcCX1UIA6ek/O3sYQz5iGHyNBtV8lIXVxnnDs2jN4+AB9dOgwde7LxIVGEZwmrGSa7hTnlegvD7BzfbVZbrtCSn7MLixKLmp6tYnJUGaMdw== Return-Path: Received: from ny.mirrors.kernel.org (ny.mirrors.kernel.org. [147.75.199.223]) by mx.google.com with ESMTPS id w15-20020a05620a444f00b00785a267bff2si914140qkp.247.2024.02.07.11.59.05 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 07 Feb 2024 11:59:05 -0800 (PST) Received-SPF: pass (google.com: domain of linux-nfs+bounces-1826-linux.lists.archive=gmail.com@vger.kernel.org designates 147.75.199.223 as permitted sender) client-ip=147.75.199.223; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20230601 header.b=QpFVk4jr; arc=pass (i=1 spf=pass spfdomain=gmail.com dkim=pass dkdomain=gmail.com dmarc=pass fromdomain=gmail.com); spf=pass (google.com: domain of linux-nfs+bounces-1826-linux.lists.archive=gmail.com@vger.kernel.org designates 147.75.199.223 as permitted sender) smtp.mailfrom="linux-nfs+bounces-1826-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ny.mirrors.kernel.org (Postfix) with ESMTPS id A96E91C2484B for ; Wed, 7 Feb 2024 19:59:05 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 7314785947; Wed, 7 Feb 2024 19:59:04 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="QpFVk4jr" X-Original-To: linux-nfs@vger.kernel.org Received: from mail-lj1-f170.google.com (mail-lj1-f170.google.com [209.85.208.170]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 1DB4684A21 for ; Wed, 7 Feb 2024 19:59:01 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.208.170 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1707335944; cv=none; b=huetOo+q2H7UhvHbbOJBk/U4hX8yE6OtCahAsfmarh5w+SIzuxpWNjY7sFVrGVLb2cAdQ8Q7sN9XL/glqNhGjAf7iyguvSRmHBiXBu5kHu/C7JzsI5z48AbRNACjD+cH9uouvtHY2/V6e6OzIYhnX0RVugYVfp4ezaUeqPTxGyI= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1707335944; c=relaxed/simple; bh=DJtATnf86+C6VAsvau6qMbtfVcUsu+uR0tKCm/OE8b0=; h=MIME-Version:References:In-Reply-To:From:Date:Message-ID:Subject: To:Cc:Content-Type; b=mJtArKNkxXUfM8SDEBPdsA6/c73XSM1L+2CPPPaK5eWGz64pQ3Jnp3eiRjZ0de2IQCioDQPvixNsHOMpLGA+TS2n7l6CSOhhGke19E/g/fOJuHxDix2LfXe5MZYYzb4PfD0w8CotejbZbpa+X2k/JwAb3zAfKnOz1G1+7ytPLOc= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=QpFVk4jr; arc=none smtp.client-ip=209.85.208.170 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Received: by mail-lj1-f170.google.com with SMTP id 38308e7fff4ca-2d0a0af15ddso4944441fa.1 for ; Wed, 07 Feb 2024 11:59:01 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1707335940; x=1707940740; darn=vger.kernel.org; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=qplGqRvT3RG78nISYN4gJ3PXg+Vm6YVg1234bKncLSc=; b=QpFVk4jr3uQPRga7E2D0nkbi+OlOS9rbUSnXRj++weIYto+/Aw6KgZvKjxYNv8S9xl CJqWNF1uBsTKf+caQfGRsbBZX2jcXj5OTcZ+dJnxTVRk38S1IrUxmTIyRUUiwK4hc+6d 4xwa7TOHFiRcARs3uHFInX3Z7leVGQFYEUuJTTcrGNd2h9mRglGhH6gqCnswjRmc9nPI dW4MQVrXqx07mVhs+EMwYKx4+gwBkaMJrG/jOMZloVlox7/TWtfOW69Ab0B2GszrzLoY 11krLHYvsBPDzz7CmeQjUiNv8+wl2JoTCC7b3Ec/7CL5ZHbrhRQ9F5RYXmspm7eyHuMI 0O3w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1707335940; x=1707940740; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=qplGqRvT3RG78nISYN4gJ3PXg+Vm6YVg1234bKncLSc=; b=J5ABqbtLi2LUUBm/hw/X5qP/guE9zJ1+1kVCON4IVpsbPpNob/QJbVnZ5kjcAGNnpM 7MyFEeySVnuTiKxthBFFLz/WaiqMm7aeJmNer40LQGST0M3QXu5X8IA8eCZOyWIHFYle 7tq8kHsUWxQVF4eF0EuJyKFSFDt+QH87x+2qgkvog2hiG8GQCBl1LCqZhgkh9NYMD6IW As2PZK3xZ2YeuMDUIJuaaSiGneK1KdlaHOnGyfZm3aC3kbGKgXq6klAvx8ijFz3lBurk WO/XItWtz3Oe4LtM0xxmYykCUY1+Rg3KF6i6qYbNGSw7bImhE+sFEaKNQrE3bIqSz2Wi LByA== X-Gm-Message-State: AOJu0YxKPThHVjY0MKDsa+3wG53X3fKnaxbOb1iNdY9zNaEC8wEZPwRW vDKXedBMMfHpQwTQb8uapw5/FHJkfUoesX3POgrgy/ik9pUQXu3JHDCN6lDJ6aHvTr0zO2J6K+r preFpgZIe+qw8saR/ovQw/k8JGoA= X-Received: by 2002:a2e:9214:0:b0:2d0:a4e8:4293 with SMTP id k20-20020a2e9214000000b002d0a4e84293mr4509255ljg.3.1707335939877; Wed, 07 Feb 2024 11:58:59 -0800 (PST) Precedence: bulk X-Mailing-List: linux-nfs@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 References: <20240207182912.30981-1-olga.kornievskaia@gmail.com> In-Reply-To: From: Olga Kornievskaia Date: Wed, 7 Feb 2024 14:58:48 -0500 Message-ID: Subject: Re: [PATCH 1/1] NFSv4.1/pnfs: error gracefully on partial pnfs layout To: Trond Myklebust Cc: "anna.schumaker@netapp.com" , "linux-nfs@vger.kernel.org" Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Wed, Feb 7, 2024 at 2:51=E2=80=AFPM Olga Kornievskaia wrote: > > On Wed, Feb 7, 2024 at 2:12=E2=80=AFPM Trond Myklebust wrote: > > > > On Wed, 2024-02-07 at 13:29 -0500, Olga Kornievskaia wrote: > > > From: Olga Kornievskaia > > > > > > Currently, if the server returns a partial layout, the client gets > > > stuck asking for a layout indefinitely. Until we add support for > > > partial layouts, treat partial layout as layout unavailable error. > > > > > > Signed-off-by: Olga Kornievskaia > > > --- > > > fs/nfs/nfs4proc.c | 6 ++++++ > > > 1 file changed, 6 insertions(+) > > > > > > diff --git a/fs/nfs/nfs4proc.c b/fs/nfs/nfs4proc.c > > > index dae4c1b6cc1c..108bc7f3e8c2 100644 > > > --- a/fs/nfs/nfs4proc.c > > > +++ b/fs/nfs/nfs4proc.c > > > @@ -9790,6 +9790,12 @@ nfs4_proc_layoutget(struct nfs4_layoutget > > > *lgp, > > > if (status !=3D 0) > > > goto out; > > > > > > + /* Since client does not support partial pnfs layout, then > > > treat > > > + * getting a partial layout as LAYOUTUNAVAILABLE error > > > + */ > > > + if (lgp->args.range.length !=3D lgp->res.range.length) > > > + task->tk_status =3D -NFS4ERR_LAYOUTUNAVAILABLE; > > > > > > I think this case is better handled by allowing the caller to set lgp- > > >args.minlength to an appropriate minimum value. > > I do not understand what this suggestion means. What I can think of is > that the caller would set an appropriate minimum value and the code > here would check that the result is at least as large? A follow up question on a "minimum value". It seems that since the client would then need to set it to the same value as the "length" (ie whole file layout value), yes? So it shifts the responsibility to the server, disallowing it from returning a partial layout. > If so, can you explain why that's more desirable? Seems to me it'd be > more lines for something that would be removed later? > > > > > + > > > if (task->tk_status < 0) { > > > exception->retry =3D 1; > > > status =3D nfs4_layoutget_handle_exception(task, lgp, > > > exception); > > > > -- > > Trond Myklebust > > Linux NFS client maintainer, Hammerspace > > trond.myklebust@hammerspace.com > > > >