Re: [PATCH v3 0/7] nfsd: layout recall and lease break fixes

From: Benjamin Coddington

Date: Thu Oct 15 2026 - 16:28:29 EST


On 15 Oct 2026, at 0:15, Daejun Park via B4 Relay wrote:

> nfsd polls a client that has accepted a CB_LAYOUTRECALL by sending the
> callback again every 10 ms, with the stateid of the first callback. A
> Linux client from v6.8 on answers the repeat with NFS4ERR_OLD_STATEID,
> and nfsd takes that as a failed recall. So a client that needs more than
> 10 ms to return a layout has the layout revoked and the fence path run.
> With the block layout that client loses data it has written and synced,
> with the SCSI layout it is cut off from the device.

[...]

Patch 5's point that the Linux client doesn't report NFS4ERR_BADLAYOUT
on LAYOUTCOMMIT - nfs4_layoutcommit_done() throws it away, so fsync()
returns 0 while the block layout writes into unwritten extents are gone. I
think thats reachable today through the existing recall failure path, so
it would be a client bug - I'm going to see if I can fix that.

Otherwise, this looks good to me. For the series:

Reviewed-by: Benjamin Coddington <bcodding@xxxxxxxxxxxxxxx>

Ben