Received: by 2002:a05:6a10:af89:0:0:0:0 with SMTP id iu9csp899384pxb; Fri, 28 Jan 2022 12:39:19 -0800 (PST) X-Google-Smtp-Source: ABdhPJwMFyO6VrLZ8/ZbFct7Q04sHZ/KkK1jZ4jIto2CkVquYttJ3LH5TRqwwoReHH4WNZFDbDfm X-Received: by 2002:a17:907:8a10:: with SMTP id sc16mr8028047ejc.344.1643402359545; Fri, 28 Jan 2022 12:39:19 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1643402359; cv=none; d=google.com; s=arc-20160816; b=P1DE2bkGJM6WE3pPl57TYzi6s8PxvBBChuM+Zb1lrdfF2sqGHiaBqDUFadt0bNoCN7 U5/5j1bWHSt4yRiZd9KlLrpk3d/29xJGNaHudfLMjr0XJZamODsePaoRagkc2JMyAJh7 lBJWV/8n5xd7mWgfqPCJMT5AmburSZ49Z5zFynQJ2cXNkcMG9WTB2NZeLAIuW+0Pij6O oU3L5lJpg6tAyZ9SU/sSK/5IKQ+ma6qWTzjkZ7kyDWdVKpVbVTfToeMPheKmKJRGMdUA EpEcwA4e0jB27wPj+X0sIiEkHdxQDp312/pwqCZxkIyUHUBrCLGKuLM0P/swcmbhw7E4 knbQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:from:user-agent:in-reply-to:content-disposition :mime-version:references:message-id:subject:cc:to:date :dkim-signature:dkim-filter; bh=Td1rlbhtFtaWx9ohj0B2YVFsYWmEBTsaMOBaZnV0bhg=; b=GcQv9DxUvSX2tkHlfhXuPxFoDaB5bc+q45EZM05NaRBwDg2nGYzvC635c48WvVMMuw gL5jmYDKPAISOj0SnE7g5Qj6GPyNVcozlYj1x7HBJOgBWfA1nlMnEuEIMvgVaDSTXEwf tAvwuBXiY/XcU4715keK5OSQJt0sBH1BwJ2GwfEjq52pE2qOaNEODQoSbbWSi/bW4ktG uXRMQYQal5hz9F11N7onam9g1af8wddCa+MLRkYC3deL7ZrOqsWJku/yRBTUYdQXbhoK y30Z36lThMNfhz/mUy10XhkMUgDp2Tn/YGZ7BactHKsvhiS1iuxtXOejV2f1zxkW+ZcR Xslg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@fieldses.org header.s=default header.b=rVELWprg; spf=pass (google.com: domain of linux-nfs-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-nfs-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id t11si3488513edq.624.2022.01.28.12.38.43; Fri, 28 Jan 2022 12:39:19 -0800 (PST) Received-SPF: pass (google.com: domain of linux-nfs-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@fieldses.org header.s=default header.b=rVELWprg; spf=pass (google.com: domain of linux-nfs-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-nfs-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S234405AbiA0WGb (ORCPT + 99 others); Thu, 27 Jan 2022 17:06:31 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:44114 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232508AbiA0WGa (ORCPT ); Thu, 27 Jan 2022 17:06:30 -0500 Received: from fieldses.org (fieldses.org [IPv6:2600:3c00:e000:2f7::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 30BB8C061714 for ; Thu, 27 Jan 2022 14:06:30 -0800 (PST) Received: by fieldses.org (Postfix, from userid 2815) id 52BE664B9; Thu, 27 Jan 2022 17:06:29 -0500 (EST) DKIM-Filter: OpenDKIM Filter v2.11.0 fieldses.org 52BE664B9 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=fieldses.org; s=default; t=1643321189; bh=Td1rlbhtFtaWx9ohj0B2YVFsYWmEBTsaMOBaZnV0bhg=; h=Date:To:Cc:Subject:References:In-Reply-To:From:From; b=rVELWprgo+qUWCSywFxxxmRYjoOnX4t7wB7dCDiwN1dKBRHg2DrTCfUkykRyJkrgM Inuc7+P8heTnw3cBImJr2FfZKiQnapAbiBRzptkW+tlDvgXzuSaG+xjwBqsvZMWXFu xZONwZI3hORDiCduUbKpGG13V6Jj0vwJHGMBbk2E= Date: Thu, 27 Jan 2022 17:06:29 -0500 To: Chuck Lever Cc: linux-nfs@vger.kernel.org Subject: Re: [PATCH] nfsv4.0/setattr: Check behavior of setting a large file size Message-ID: <20220127220629.GD3459@fieldses.org> References: <164330361583.2340756.18437536986986631991.stgit@morisot.1015granger.net> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <164330361583.2340756.18437536986986631991.stgit@morisot.1015granger.net> User-Agent: Mutt/1.5.21 (2010-09-15) From: bfields@fieldses.org (J. Bruce Fields) Precedence: bulk List-ID: X-Mailing-List: linux-nfs@vger.kernel.org On Thu, Jan 27, 2022 at 12:19:24PM -0500, Chuck Lever wrote: > Many POSIX systems internally use a signed file size. The NFS > server has to correctly handle the conversion from a u64 size > to the internal size value. > > Signed-off-by: Chuck Lever > --- > nfs4.0/servertests/st_setattr.py | 19 +++++++++++++++++++ > 1 file changed, 19 insertions(+) > > Just something to consider... "It's my first ray gun" so I'm sure > I got something wrong here. Looks fine by me; applied. --b. > > diff --git a/nfs4.0/servertests/st_setattr.py b/nfs4.0/servertests/st_setattr.py > index c3ecee3fbcfb..5d51054c29b4 100644 > --- a/nfs4.0/servertests/st_setattr.py > +++ b/nfs4.0/servertests/st_setattr.py > @@ -562,6 +562,25 @@ def testUnsupportedSocket(t, env): > check(res) > _try_unsupported(t, env, path) > > +def testMaxSizeFile(t, env): > + """SETATTR(U64_MAX) of a file should return NFS4_OK or NFS4ERR_FBIG > + > + FLAGS: setattr all > + DEPEND: INIT > + CODE: SATT12x > + """ > + maxsize = 0xffffffffffffffff > + c = env.c1 > + fh, stateid = c.create_confirm(t.word(), deny=OPEN4_SHARE_DENY_NONE) > + dict = {FATTR4_SIZE: maxsize} > + ops = c.use_obj(fh) + [c.setattr(dict, stateid)] > + res = c.compound(ops) > + check(res, [NFS4_OK, NFS4ERR_FBIG], "SETATTR(U64_MAX) of a file") > + newsize = c.do_getattr(FATTR4_SIZE, fh) > + if newsize != maxsize: > + check(res, [NFS4ERR_INVAL, NFS4ERR_FBIG], > + "File size is %i; SETATTR" % newsize) > + > def testSizeDir(t, env): > """SETATTR(_SIZE) of a directory should return NFS4ERR_ISDIR or NFS4ERR_BAD_STATEID > >