Re: [PATCH RFC v5 0/2] nfsd: Initial implementation of NFSv4 Courteous Server
From: bfields@fieldses.org <hidden>
Date: 2021-12-01 14:19:25
Also in:
linux-fsdevel
From: bfields@fieldses.org <hidden>
Date: 2021-12-01 14:19:25
Also in:
linux-fsdevel
On Tue, Nov 30, 2021 at 07:52:10PM -0800, dai.ngo@oracle.com wrote:
On 11/30/21 5:37 AM, Trond Myklebust wrote:quoted
Then kick off a thread or work item to do that asynchronously in the background, and return NFS4ERR_DELAY to the clients that were trying to grab locks in the meantime.Thanks Trond, I think this is a reasonable approach. The behavior would be similar to a delegation recall during the OPEN. My plan is: 1. If the number of conflict clients is less than 100 (some numbers that cover realistic usage) then release all their state synchronously in the OPEN call, and returns NFS4_OK to the NFS client. Most of conflicts should be handled by this case. 2. If the number of conflict clients is more than 100 then release the state of the 1st 100 clients as in (1) and trigger the laundromat thread to release state of the rest of the conflict clients, and return NFS4ERR_DELAY to the NFS client. This should be a rare condition.
Honestly, conflict with a courtesy client is itself not going to be that common, so personally I'd start simple and handle everything with the asynchronous approach. --b.