Chuck Lever a6a2cf4d91 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:10:58 +02:00
..
2020-08-19 08:15:06 +02:00
2020-09-09 19:04:23 +02:00
2019-08-06 19:06:51 +02:00
2020-08-19 08:15:02 +02:00
2020-09-03 11:24:21 +02:00
2020-07-29 10:16:46 +02:00
2018-08-17 16:20:28 -07:00
2020-08-26 10:31:01 +02:00
2019-12-13 08:51:59 +01:00
2018-08-17 16:20:27 -07:00
2018-08-18 11:44:53 -07:00
2020-06-22 09:05:01 +02:00
2020-09-03 11:24:24 +02:00
2020-03-05 16:42:12 +01:00
2018-08-21 18:19:09 -07:00
2020-03-25 08:06:14 +01:00