Re: [nfsv4] RFC: New DelegReturn_NoFH operation for NFSv4.2?

Trond Myklebust <trondmy@hammerspace.com> Tue, 16 April 2024 00:05 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 CD290C14CE4D for <nfsv4@ietfa.amsl.com>; Mon, 15 Apr 2024 17:05:56 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.097
X-Spam-Level:
X-Spam-Status: No, score=-2.097 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, HTML_MESSAGE=0.001, RCVD_IN_MSPIKE_H2=-0.001, RCVD_IN_ZEN_BLOCKED_OPENDNS=0.001, SPF_PASS=-0.001, 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 Y43xz7j7A-Wq for <nfsv4@ietfa.amsl.com>; Mon, 15 Apr 2024 17:05:51 -0700 (PDT)
Received: from NAM10-DM6-obe.outbound.protection.outlook.com (mail-dm6nam10on2103.outbound.protection.outlook.com [40.107.93.103]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 2222CC14F6AC for <nfsv4@ietf.org>; Mon, 15 Apr 2024 17:05:50 -0700 (PDT)
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=F4mHvnEU4YeGw1QHP5zL8szla3cx/0BqFENHvDRd41JwNAyCVwh+r8UKhInabvddc9zifQvMyYDcOgk0iYmyU2Qjf/2oT99JXdmeB6MloxnwgZNJ9lLUTdm8g+zNouDSszENDfjMjC+30q2w4nEq9Hbspg73EiDvpaGjTCLHzWrE7rvaXU3A5SuuzbxqNjMmHhYg+m+HrNuOPdDhQH3FRDrp2GTNvVzDFAwEZPLO321tLr45GfXwsKhSiss5hSWwoxfozLpt6PBBiPt3XHWUSKO796WdHHdiZxjn4hAQN5iYCSnF+FlbOc2sqiE46Rvn9IvtGDBviLRGFShdwlv6VQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; 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=oYwFEaZ1CPPXUi+fRvhbBQr6Dj4nY6PnPxJuSOS4D0o=; b=LYJN1JmHqmoMcvYYBX7tdbZZgsf6xNR27UVFvQ61lLJ9Tyha5drPPMGcCDV3vce8MEEBdpy1Hu3xiFPY7BSb3/RX26ZP9BHNNqsm0uRz6iT+Ol24CxNMAU9svvPKDsiO2Ktsxsj3z/czh6Idajkjw+Q0jK4ONWRQ5vcANJuTXXrImyCcqlB0inXBd1/g6MSH1URQ79I6GgyAcGTx0d8qENiYp9IObwILYwOZ9gzx+MqjYHyqkRhI38/mZ8x+Sy42BDEb93i8zKeIxd2G6ipGVr33t8rJOvCC1e2Ro1Dg1G+0egiQO/y2wfYQNGu8e3etCnwE5mlGU+aSDZGJqUrfiQ==
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=oYwFEaZ1CPPXUi+fRvhbBQr6Dj4nY6PnPxJuSOS4D0o=; b=L9Cfc0VNw0gjwn++pU3szCpB8RbHasvJTCPWzaqA2RYAZrtytK9nFZ/oBpdAchCBeNZZbfBKRvIdbC/qIwKLfewzOjSorExvroOKFYmbaOxOgp0qskt+EF3x1hYvZy4zkGvDJBPkF5+bVsjBirAqWOOSmx+LQNGMpN0ydkkuS0E=
Received: from CH0PR13MB5084.namprd13.prod.outlook.com (2603:10b6:610:111::7) by MW3PR13MB4012.namprd13.prod.outlook.com (2603:10b6:303:5a::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7452.50; Tue, 16 Apr 2024 00:05:48 +0000
Received: from CH0PR13MB5084.namprd13.prod.outlook.com ([fe80::5bb5:501a:fb40:5057]) by CH0PR13MB5084.namprd13.prod.outlook.com ([fe80::5bb5:501a:fb40:5057%6]) with mapi id 15.20.7452.049; Tue, 16 Apr 2024 00:05:47 +0000
From: Trond Myklebust <trondmy@hammerspace.com>
To: Rick Macklem <rick.macklem@gmail.com>
CC: "nfsv4@ietf.org" <nfsv4@ietf.org>
Thread-Topic: [nfsv4] RFC: New DelegReturn_NoFH operation for NFSv4.2?
Thread-Index: AQHaj5HVuHsSiF/StEqz/bB9rT0snw==
Date: Tue, 16 Apr 2024 00:05:47 +0000
Message-ID: <9D17BB42-54A9-46DB-8E4F-3FF852EEAC90@hammerspace.com>
References: <CAM5tNy407R30WQqCuzFE+feRz42wkaAAGOwiHwqFoWZSpwfT0A@mail.gmail.com>
In-Reply-To: <CAM5tNy407R30WQqCuzFE+feRz42wkaAAGOwiHwqFoWZSpwfT0A@mail.gmail.com>
Accept-Language: en-US, en-GB
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3774.500.171.1.1)
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_|MW3PR13MB4012:EE_
x-ms-office365-filtering-correlation-id: f035512b-66c5-459c-82d7-08dc5da8f807
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: NxdZkwTpOOIJWH45kRj78hEpECeMbCkVFMVGpW+JuUHxNFBRwCSYwC0UZ5/kbVqfgRvAT7WnfyIf2A3xOiNcqqv9D2oMKA0K050LL2JviCRGnj0dM7M4gijLjYSe6TlUer1lC0+d0dUPs5mn3Ey1fI1RlZqhMuUabnjjLz4kW+BjOd881hxrzEw2XzR9gDJlKKK/6qN9u3vFnY8/7rprymcS1/2z//HfR0GwwXQ7fFNDWhvNFvQ1ZE06JiT6nt6UlezAREKdr2GKolSUCcfwVUn6PBuExI0V3Ccy8tenEw9RuqnMZi50JSfLsnvUw0jZ6TirOT96HGAZeRxPppL724E0HS/VT7P0eGn9A/XkE07+zPTjEjTO5BQ6A5O5xBFzHO/BkcyU2Pd1AYp/GeifiwHSyBovQT4Fz+s3HLPyyOfwqum/AKIzchhf7aiXTS8ZZscVW2qGgp40TJlGDeAKMZvkm+1MH7w5hcXOOd/D5vRqvDPPswbDffpULAqJtw67uj6tmI+zphLbHmgOeoUS003F9/bTCjhIMaZl9UST8iFkGRjKQumrFaIdfwpi6Xj2Bz+PwX4RciKgcezkOjEX4pviPJaP9/n84i+xbcgKokeVdNLhowLH3VLTwT2DGEWdY9o1ON6e5I/eIoHbOeR2hw/p2KcfpP0o4i+oExXHPCLX9wUttrhN2rwe2PuAY/ZYMsFPDnvdhQ/PZHvVQY1vxOjDUjaE4u7Vc0VFhuIa5Qhv67p4vTkdnEcDnHRB3XAFukSqy/TJq99dM4wIg+xGVYRtepO3181i7mjMLZQbVCVCJ/RJqWlBvSWLlFfLEOZUQ/N/bJlBJD9BFtvLLtIzy91oD2gUtUyX+SSricSVjp7pYgVzdArAUCW0Zeu46qN1FQ+dRgRQn9yZdy6z2ikFTNokpcXl/lUzzbyE55ykjkH8ilbm0Wu8p6EAEdE1EbcGkDOij2WaJFOajyNP3whbyIapDENBoVFPmazl8e2vV2FsvpFyQW9ypiFiuhw0UxfuRHgZ+75TqkViqtgYTY7LQnVKf8NwOv+fikOPozMVDTGeHjodSSNbb/t0bVDqPUTA2A6lFbowuSuA451tPJ6WDLgaW4Jr9Wb/XgVBX4p+9gCuyTyytgFRglQX2D5GGgG+iWCs3Nxu4rR43dPihnyj6DF9XtNENPYDwuZLDhAwiEUV4en4eRCFh9w31a4t+0b5c47AlgtO6R5oBAedeXFz4NGUaNoRyaF4XPJkKoPuGx+Y2+9cS43lvzxIavYyi9MofZiEl9+nZQWOoGQgox/aNe1SXhCzlncH4Y/JnFXkyxMXwDvr8fITVesflYJk6kfFyWwGNZUwid2T5zuXNFGDKw==
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:(13230031)(376005)(366007)(1800799015)(38070700009); DIR:OUT; SFP:1102;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: VvsuXXcuDx2dgon3vnoWOdRP5/RKoxfp8ThP93MvFocLO3o4jhWZdT96zqLsk84480u1GZlZg7ipQ/WyRkUJLBdvgVQjTUr9WVMKxCcK2Y98fVLynveBGpBTrADn938vX5oJZzSH10i2T1Ry57syvAGAPN5HiVOU0oV5kYAJTJoDI0DUAyTCD4Jblr2Ia9yUUzR6XnaeSKwESr/nzka3ASkN05Ho9c2xymChNEdzIVGymQSWz7ItmBudwSHaIapWbM26nYLfsiD3wwjeP7uvMh8+GaOJQWclNih6ulwdMOv6b+ko2Wq9sUHQIDH5cqZH/+dR8Ig0Se9ZAyTxJnYg4PiLRN3G5U7cW0bSMTy4MRGy1hHpseaDN+ZRvZxGVNGaqHxyjhasAOgsf619Kkw1a7abFCPq6ayYKApIYuHCkwwHE83prYQl9eLEh/jkcrYr/IPQbsej6LPiHTJJ6jQ3zdlpplz88ipgheEijYo2l3ZNtyCL1hTaTduI6e+CE21IGMcXr2SzH6EZgyuf0Kt0upnNzVINGpBCbJCVZ1cA/9n3w5fMxRqov/Dt5EPYWpr6b0W9kVxb9mmTzxH5dd80BzTZYgooPMj3KaqREH/shf2tcS9wiZT+s7Rd6PckeWLZRodszsB71zTrcJp0MOCvfWqQ6GoGqnFf2FcKfvn9DZLqOkt5yqaeLE24RGbXAg7DW9V7dTmM+MyNGHFWW88lG4Yzt2tkfLIxyrULvsseHGyhw1iMofTp32Hjbefbt956BLI98SAxoKbLcifM0m9QDOHubaEv+f9VHh80gy1k79M29IfMcer2/gFseLJSRaKN5fDHbqoaXG7Hr/OxBPVgp3YxV9+h5dc8HgQ6lunKFZNxNR1UMGt5P5h8Sga7WFLMv+wSnExGyST5D6nOWnHVCg3cr+CMSRsuDdPvZp701d1i0YjP0k4ZgRHedVTG5ypWJtNVHINq5Qy6BaToeYcZn4dw7yxF8qnhBgxhKWLrrTn3Q5Y4AAKgqbVSiHMU85qb56pZ0FGVbMat+aQxvSnW7sz8+7wnVm8dTUE7XvJvN5ssIEr3ZgNzRQbgIII8Ypyx5KEGpaZ/biKD4GNGrPurqR/txwEzCu6E1dqTwV1/Rpj7EjrZ4a3BBJqBJjLQJzFboh4HeILrFrawfnerMvct99hjU/aC/9mtdxoJ2WKGzLDgRYT0nkHQj7Jrdd580IAr57ohsqFB4m3nSglEBcmNGQP/U6Pc7UCrYZKKEoy1XUBH9q/X5sRBvKAKF4x35KyU2vMQgQcmfjW1d6lbVU8txjPLQRNo+NHFjqCuQ71EmxRO6UuAtULI4nDaqNe8n5J4Nz5ZdSqowrdR6cbpsNzkBm6keFJTUc1jNqJQV/ehLmrj2F2ogAZv2TD44QJlmZJT7+5AVQYghoLlTtXJ6WY+3OJhOin8mqWI6D22XjStZBo2jU7hqRpN4hfJ766PjylmYH7cHVDPcjeLTw38o1mu74sUfilxkAGEQPgtYKa5ruoYBPMVzUMnfX8CpB3qidBWI7POWOpwhPLc3zmJ8IwZ/k+CObkCyf0WGmn2d2MHsEPZs2dPTIVcwOCf9cmcuDP0t+IEMyuQj79v7jdeeA3HxU2T/XhTIoktaZeTMRy1V+y+5IVFf2IuyJG/rm07FO2e9FFWKEYaEngf419aQXCjyg==
Content-Type: multipart/alternative; boundary="_000_9D17BB4254A946DB8E4F3FF852EEAC90hammerspacecom_"
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: f035512b-66c5-459c-82d7-08dc5da8f807
X-MS-Exchange-CrossTenant-originalarrivaltime: 16 Apr 2024 00:05:47.6504 (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: dAsibaJkcTF7ZxognEl0SK6joo7nBxCRzWXUu3W77vKzyPFxSCQUBc0/w4e2tDHmlzaDIVwWDMnQj2CdHdbw6g==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW3PR13MB4012
Archived-At: <https://mailarchive.ietf.org/arch/msg/nfsv4/VLeEQb49LBDN7YDkiy6nYfUmo6g>
Subject: Re: [nfsv4] RFC: New DelegReturn_NoFH operation for NFSv4.2?
X-BeenThere: nfsv4@ietf.org
X-Mailman-Version: 2.1.39
Precedence: list
List-Id: NFSv4 Working Group <nfsv4.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/nfsv4>, <mailto:nfsv4-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/nfsv4/>
List-Post: <mailto:nfsv4@ietf.org>
List-Help: <mailto:nfsv4-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/nfsv4>, <mailto:nfsv4-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 16 Apr 2024 00:05:56 -0000


On Apr 15, 2024, at 18:31, Rick Macklem <rick.macklem@gmail.com> wrote:

Hi,

I am wondering if others have found this a pita and are interested in
a new operation for NFSv4.2 to get around it.

Right now DelegReturn requires a CFH and delegation stateid.
I do not know why the CFH is needed, since it seems that the
delegation stateid should be sufficient?

This new operation would be the same as DelegReturn except that
it would not require a CFH argument.

Why am I interested in this?
- Lets assume a NFSv4.2 server that supports persistent FHs and
 multiple hard links (as most extant servers do).
- A client mounted to this server is removing a file for which it holds
 a write delegation and a bunch of dirty data.
Right now, the client must:
- Write the dirty data back to the server.
- DelegReturn
- Remove
because the client has no way of knowing if the file will be deleted
by the Remove (or alternately is just removing one of several hard links).

If a client is holding a delegation, it will presumably have done a GETATTR at some point while holding that delegation so should know how many links remain. While it is true that the unlink might invalidate the filehandle, that’s not a situation you are able to fix with the new operation.

With a DelegReturn_NoFH, the client could:
- Do a compound RPC with
 Remove
 PutFH of file
- if the above returns NFS_OK, the file still exists and the client
 can continue to use the delegation, writing the dirty data back
 to the server sometime later (or maybe never, if the file gets
  deleted by a subsequent Remove).
or
- If the above returns NFS4ERR_STALE for the PutFH, the file
 has been deleted. It can throw the dirty data away and
 DelegReturn_NoFH the delegation.

A similar situation exists for Rename where the destination
already exists.

I find this scenario happens frequently during software builds.

So, what do others think  w.r.t. this new operation? rick

Why would you need to do a DELEGRETURN if the PUTFH returns NFS4ERR_STALE? If the server isn’t willing to just invalidate the delegation on the final unlink of the file, then it can and should recall the delegation (and any pNFS layouts that might be outstanding).

_________________________________
Trond Myklebust
Linux NFS client maintainer, Hammerspace
trond.myklebust@hammerspace.com