[nfsv4] Re: question around CB_GETATTR handling

Trond Myklebust <trondmy@hammerspace.com> Wed, 04 September 2024 19:21 UTC

Return-Path: <trondmy@hammerspace.com>
X-Original-To: nfsv4@ietfa.amsl.com
Delivered-To: nfsv4@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id B593BC1D4A86 for <nfsv4@ietfa.amsl.com>; Wed, 4 Sep 2024 12:21:38 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.108
X-Spam-Level:
X-Spam-Status: No, score=-2.108 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_MSPIKE_H2=-0.001, RCVD_IN_ZEN_BLOCKED_OPENDNS=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01, URIBL_BLOCKED=0.001, URIBL_DBL_BLOCKED_OPENDNS=0.001, URIBL_ZEN_BLOCKED_OPENDNS=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=hammerspace.com
Received: from mail.ietf.org ([50.223.129.194]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id SkZA57oo-SvB for <nfsv4@ietfa.amsl.com>; Wed, 4 Sep 2024 12:21:34 -0700 (PDT)
Received: from NAM11-CO1-obe.outbound.protection.outlook.com (mail-co1nam11on2138.outbound.protection.outlook.com [40.107.220.138]) (using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id A64C6C18DBA0 for <nfsv4@ietf.org>; Wed, 4 Sep 2024 12:21:34 -0700 (PDT)
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=nnEjpx4xf78GJ0mFCkHXuQ1QY+wL9tsR7CsICSsv4Yb6yc5ElJ/BcembaVSybU8Pi+543GmgH/lJkBOdDceMjOULxVzFtUdqGbOmlL8eqC9MJtUeApKeixp/6A9Tg6hQHVtHzaXpAbAQXGgaM9U9J5weiNyr8QSNhvyYAi9Jz19XJ1ASn/oXSJ6yvb32iU1Q78jF0h9oSyAu2YqwDQFn7P70l1lQehFywHvRTWgwQpnF2ovOed3gMlHMWvC4+XprPuGJWoM+NYmdAEiX6Zck1lTVlr2UGll40z1PubHvzN8SkMUQRNMNFAofCPjzGLRQf96A+rsZTgOSVTDafG4Atw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=tSYStmiXcyDg4kjmG/mNJLMsof4gKynRj4K7s+OMVjc=; b=SpgKqhmx8QDBBdLeN3+SC+LQUPd/2wo2O8uBZ2OyOMWO9KaagPkhVaWtdklI922VaE95h/LEyyg26ZXuLJlintyOlwMRo+oqjqfBOfb2u/t4pOam4d7CYpS6peG4XW9Ruul9gFPxJZGNhg+QG2jsMYRDvS+3fgRh9qslrvxaL6QvZoMlx+pnXqHhOdLEwPtD9moZM7QR04YEsNFIWVfippP3SlR92WkfC/Q6N/DJwleOf1T1rHYGCaLp3MGdK1E3trYyvJsNS/7t0kVa8Tv4z45uq2YvpHrkmpROdIkKgwGdON6WIzOB1uHrknLGVTU3YtIJ+w/uZyUkn8eTXiS3hw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=hammerspace.com; dmarc=pass action=none header.from=hammerspace.com; dkim=pass header.d=hammerspace.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=hammerspace.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=tSYStmiXcyDg4kjmG/mNJLMsof4gKynRj4K7s+OMVjc=; b=L5PREaKx4SAnCXZKxrfApD5FTJUz7Z70ntXJd9I0dKtBn/k30lOb85ZEhwnT4RyZWKulFVwwu5/MRmlLLYx6dzqy04rmBAz6spLzaYhIyR6zwbLGul0LgLrftanJxLPh+nmNW+YRpLtT5RugriXeP4vlTxIjZu8/f+uck/wOHks=
Received: from CH0PR13MB5084.namprd13.prod.outlook.com (2603:10b6:610:111::7) by SJ2PR13MB6425.namprd13.prod.outlook.com (2603:10b6:a03:55b::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7918.25; Wed, 4 Sep 2024 19:21:31 +0000
Received: from CH0PR13MB5084.namprd13.prod.outlook.com ([fe80::67bb:bacd:2321:1ecb]) by CH0PR13MB5084.namprd13.prod.outlook.com ([fe80::67bb:bacd:2321:1ecb%4]) with mapi id 15.20.7918.024; Wed, 4 Sep 2024 19:21:30 +0000
From: Trond Myklebust <trondmy@hammerspace.com>
To: "jlayton@poochiereds.net" <jlayton@poochiereds.net>, "nfsv4@ietf.org" <nfsv4@ietf.org>
Thread-Topic: [nfsv4] question around CB_GETATTR handling
Thread-Index: AQHa/v+l5MEgwI3ur0qM8qKmOeUiiA==
Date: Wed, 04 Sep 2024 19:21:30 +0000
Message-ID: <e584a74b46853af247212e8dc9bee1949c676cea.camel@hammerspace.com>
References: <6e6e3d11d0d48c88cc4cefc28b66d9cfb5874723.camel@poochiereds.net>
In-Reply-To: <6e6e3d11d0d48c88cc4cefc28b66d9cfb5874723.camel@poochiereds.net>
Accept-Language: en-US, en-GB
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=hammerspace.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: CH0PR13MB5084:EE_|SJ2PR13MB6425:EE_
x-ms-office365-filtering-correlation-id: fff880bb-1d79-4d36-2e8f-08dccd16c7d3
x-ms-exchange-atpmessageproperties: SA
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|366016|1800799024|376014|38070700018;
x-microsoft-antispam-message-info: Cj5ZIl4FrwWXvsl6nj3IUcMZUwYlGbJpZGZZvJSjfIpRzA6mc4tn3UFhIldTzK6/CpdZ7cSC16KQQmMpbK4k+EVc6r7oMnmn9QusVIdMhso7ERJVDB4TgUVwpR8shewpsAw9C2Spu6AOGXsTkP5Pe437l04nN0uvXIGGU28HVF+8KiUfcGetcHqi2DZDoSmMsFikkpRYy1gAn00mnn7d6YnT06aliUuiDZzgzjmBw9aWRECKgO6uZr87RMGBtTvI1F0gw+FIel0kh+B07PmTC4qVWNyzV0P4wJghz3lmDHRxNYnOmz+mQKcXiui+Tu4GMkML8KL09wCBYNyWftARZPz+BmxbPHEc1Rh/6aac6JEKgGu8Rc/alo54n3NR7SmAxke6kG9gwymvuP0uTROO4iPtfBjxgBK6u9lNpE3LlFSg7rpOIIGCBHv2P0CBwG8jlLYSHgP5uHWbf5EK12FVLqMeuH/mTtczO5+tjCZgzX9UhWnrcB9jHJt++rMZQazJxx9yB1nJG7jmE6vIsG47Y+5vIqfQ8IhtyEsRA24HKFLUcXKI9J53CejdxOqZV/hyiy9W9dSWCKZviwqiykS+cf9pb8cxUiDQhCudnsraGhVWYZE7w3yPYTsygIhPrw7BG9yifsrZNliBFqZ1HumA7fZ8QVl/4luO7kEkEacmBZsAC3hRiUt4GKYNO0bRfGywWj9k/G/e67V3+56sCYxxpyr96oSv2weFf9xWU1+o2xdascA5kwWwVmOLfhYa91LnDZo7JgOe66dhH2NcFiCPDXca9rKjtI5bn6Dpdm+cmJ4Pzt8nKcxoB4KoHX+xosvl8Fsgd8PAsXb4yKL91Wv+4gXVFqDWGITFOSTEhJbluqP58mHwclnZGFs5oyJ3YPxkHv1bXTNCoqpc/qcEQLforpp5qZnndqiikyl8qW1xN1oOi4azcKo7i+CpsTCKX0aiptcCxw/WmylTWp737Uk92HWjgL3t4XGB4HhoSvtNgnPYShR4AiTx4MrlC3DChPTkel/SE448rEBkZ26DWVw46T9KVbiKROE/tyBpI21uCaRU86ZcVEfN1rinO3S2+xaPaJZqcwarEvAVBGQQHJByLXYWEejLPFkYx/gRkkeTe9HrbbN+ayVs3EqNcvxkVMwm/wipFioFHxTKfxDaOOXDgu4gV67ZqmVp4mvXBBVpV3g3dcyxdf599e7Z9Z/fVReN7vAoDqezsvHPlomcxzqHThkI6LDgW3oMq2d4Xxk0/tVOLSXyvQaukpekGBUBsXEmgxmgGWo2j8Qjbs7L+MAqZKUrflhCMksyL0hWARS19U2rLRYk5mL052DdJ/r/ftBmg0DCBRMvheRMdbBI7MC/nVT9/5yzZXy279psTOerkfFsQXhWlMWpHd0WVeU3LP+BTtfQNIfejZYjez+CuHy2xA==
x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH0PR13MB5084.namprd13.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(38070700018);DIR:OUT;SFP:1102;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: MN/XmbSj6w96VJcd6WqRztaLl4waCNjqYym26bsDv8DB2LgX7n7gndB2Wnxd+ySPdp3tb1n8eTcwCsp1tM/c3J1ojrWVzi3PEDH//VfvjBQwyGoXktiSC7KwE+TrbFU+sOG4z/vu37D0vars6BA27aNhMk48KHHsX4eEb3enm3IlKWr01L01etaYbKhOk/Ig0J+1/D9BIlJn5Oh1s8tVJas+5WLV2a8W7WORD+xFG27SN6+vUM8Oq3Is5FbSkepK+W4uTdtWnotttUq45sJNPWpK5/R2gF9G5NjvLr4s1VaKadZ0G8OXAiVsp2ua2rBSHKQELM8CoePPFIx6DxDLEOhVi5V2jbNe90jWv6vR4hftFlG5P3TwbmE+o76jiOD3q27SS/tLZSm6M5/58olShb/qv15XWcMNjcIX8HziiQd7VsxsIyAr8PHTLf0bUqmbDON+AL4DZtppMqHiKfjW4KHVzjnk1fA0PNmRl1zdEVsUhN8fR/qoYM2ZE8jnEvdiwiN4B6CSOHqNBu/7RvJHXkOBtm4vQbw70lRWsjCx9U/a9K98TS8vzMm7ugx7fU9Kcp33t6+pVV1x9+kbwStR9gAtEN9UIBJ24i39M095BGZgcU/rEQ22rge500/L6/bshFfubJfsq3vTG9t0dfe3/K4ovEja85QeEhp7G6HwS0xUMuiY+0aV47D5UVXzONjd3bW71vkYAoZNzPrR2UaMrVTOEVOVqgbP7hyqIaUxDPxniPJnrO5ycER5Tq/0ZBS0hXA2c8qqLYsDYcAl9BMo89y8CCEV9ErOx9q02oyOvV6eJvaePBFbyBM+a/VnvkCdcCjN1jZReRYSxO+zhLAn9LNMqMls6I8fNSAvzhIuYPqHSuSSz7Rc6FiFokauWyh0JMOx99YZdaeWnHxmXX2E7fgnnU43Gz4PktzMFysAdusWsXEcEBmrQUR7JWtKGgaN5AIx9treEe1UcDJTvg1fXJ1NkL/GlS5xfGEXumvZE59LDIeOiROzR1d8KiiorpRtipCBK6iaiqAH23j4W7abBW+5U5JWUDdsMFrZUHdipORRF/tUtey5Goed+OrR1wRUm21fx5NVEqqmi1Ow013BdnjuYqbcQUQbRfO3q68YbtzHQl8dh8kB/N7/i0wrI5rmiOmYVtIbrAVawxOjPzGO00vLB63JYWjJd/KIQ0K5aCQ12aXjcArdJ5v3Fswby11GLVBXQYpsTxqQYczEJ4CmgFLTBKKhKGJ8nlj+poKLlkycseBo8pebiCKYM0mm56HIAYvNAYQJla62jzXBYuvImx5I8ZxuJe19NNnKoYEdqDoShON1D7A/0wkv1QHHo9duIsz+vE4zkGRqhLCQe882z+lMM6sNVEaBjr27rT/t3L6yQSBQ2pRhXMHLo4IatZKliuCrwZEkClGLPqdWeOGmM4u5/cBZYeaYFtAW9SfsT6CD6fu0Ji6mMC3uzH1ozqTL+9fF0SPvLdarpQTaMehNX2cROityXFUl1AZpnMIIcO0yNJ2pnJVLbweUcFvluGncoP1MsKI7YFj///i52w4xIW0mZekd2YyjhL5p0GqrnWiL6zL5wgSH1EvCkLp7gkcK4zQB1M/fYmdpFUFu2OHuJg==
Content-Type: text/plain; charset="utf-8"
Content-ID: <7F93C0AA5A005C429E832E67CFCF6073@namprd13.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: hammerspace.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: CH0PR13MB5084.namprd13.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: fff880bb-1d79-4d36-2e8f-08dccd16c7d3
X-MS-Exchange-CrossTenant-originalarrivaltime: 04 Sep 2024 19:21:30.4653 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 0d4fed5c-3a70-46fe-9430-ece41741f59e
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: CU7Ct3yG4FfMIX8fvmAQi9+yJ2cL4DXnjWtam4D9K4jmvS7YFEPbIt1C4uQlcB20KZjdXPR1KhGPJL3gAW8XjA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ2PR13MB6425
Message-ID-Hash: XHX2P7HT2LQARGRXMPJVRLI6ZMX6GM7B
X-Message-ID-Hash: XHX2P7HT2LQARGRXMPJVRLI6ZMX6GM7B
X-MailFrom: trondmy@hammerspace.com
X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; header-match-nfsv4.ietf.org-0; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header
X-Mailman-Version: 3.3.9rc4
Precedence: list
Subject: [nfsv4] Re: question around CB_GETATTR handling
List-Id: NFSv4 Working Group <nfsv4.ietf.org>
Archived-At: <https://mailarchive.ietf.org/arch/msg/nfsv4/X-68EsYY8gjE10xGdqBIxcDtA_8>
List-Archive: <https://mailarchive.ietf.org/arch/browse/nfsv4>
List-Help: <mailto:nfsv4-request@ietf.org?subject=help>
List-Owner: <mailto:nfsv4-owner@ietf.org>
List-Post: <mailto:nfsv4@ietf.org>
List-Subscribe: <mailto:nfsv4-join@ietf.org>
List-Unsubscribe: <mailto:nfsv4-leave@ietf.org>

On Wed, 2024-09-04 at 12:23 -0400, Jeff Layton wrote:
> RFC 8881, section 10.4.3 has this pseudo code to describe how to
> handle
> the size and change attr:
> 
> ------------------8<-------------------
>     if (!modified) {
>         do CB_GETATTR for change and size;
> 
>         if (cc != sc)
>             modified = TRUE;
>     } else {
>         do CB_GETATTR for size;
>     }
> 
>     if (modified) {
>         sc = sc + 1;
>         time_modify = time_metadata = current_time;
>         update sc, time_modify, time_metadata into file's metadata;
>     }
> ------------------8<-------------------
> 
> 
> The line that shows sc = sc + 1 seems to indicate that we need to
> increment "sc" on every CB_GETATTR, even if nothing changed since the
> last time.
> 
> Is that correct or should we only increment it if it wasn't
> incremented
> before? The latter would make more sense, given that it doesn't query
> for change if the file is already considered to be modified.

I believe RFC5661 says

   For simplicity of implementation, the client MAY for each CB_GETATTR
   return the same value d.  This is true even if, between successive
   CB_GETATTR operations, the client again modifies the file's data or
   metadata in its cache.  The client can return the same value because
   the only requirement is that the client be able to indicate to the
   server that the client holds modified data.  Therefore, the value of
   d may always be c + 1.

Which is how the Linux client tries to implement it.
-- 
Trond Myklebust
Linux NFS client maintainer, Hammerspace
trond.myklebust@hammerspace.com