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