Chuck Lever 7b8fb2a4d3 NFS: Zero-stateid SETATTR should first return delegation
[ Upstream commit 644c9f40cf71969f29add32f32349e71d4995c0b ]

If a write delegation isn't available, the Linux NFS client uses
a zero-stateid when performing a SETATTR.

NFSv4.0 provides no mechanism for an NFS server to match such a
request to a particular client. It recalls all delegations for that
file, even delegations held by the client issuing the request. If
that client happens to hold a read delegation, the server will
recall it immediately, resulting in an NFS4ERR_DELAY/CB_RECALL/
DELEGRETURN sequence.

Optimize out this pipeline bubble by having the client return any
delegations it may hold on a file before it issues a
SETATTR(zero-stateid) on that file.

Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: Trond Myklebust <trond.myklebust@hammerspace.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2020-09-23 12:40:36 +02:00
..
2020-08-19 08:16:24 +02:00
2020-09-09 19:12:21 +02:00
2019-09-19 09:42:37 -07:00
2020-08-19 08:16:21 +02:00
2020-09-03 11:26:46 +02:00
2020-07-29 10:18:28 +02:00
2019-09-19 09:42:37 -07:00
2020-08-26 10:40:56 +02:00
2019-09-19 09:42:37 -07:00
2020-06-17 16:40:24 +02:00
2020-09-03 11:26:57 +02:00
2020-03-05 16:43:36 +01:00
2019-08-07 21:51:47 -04:00
2020-03-25 08:25:58 +01:00
2019-12-17 19:55:30 +01:00
2019-09-18 16:59:14 -07:00
2019-09-18 16:59:14 -07:00
2020-05-06 08:15:15 +02:00
2019-08-01 20:51:23 +02:00