Re: [PATCH RFC v21 0/7] NFSD: Initial implementation of NFSv4 Courteous Server

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, Apr 25, 2022 at 11:16:54AM -0700, dai.ngo@xxxxxxxxxx wrote:
> 
> On 4/25/22 10:53 AM, J. Bruce Fields wrote:
> >I'm getting a few new pynfs failures after applying these.  I haven't
> >tried to investigage what's happening.
> >
> >--b.
> >
> >**************************************************
> >RENEW3   st_renew.testExpired                                     : FAILURE
> >            nfs4lib.BadCompoundRes: Opening file b'RENEW3-1':
> >            operation OP_OPEN should return NFS4_OK, instead got
> >            NFS4ERR_DELAY
> >LKU10    st_locku.testTimedoutUnlock                              : FAILURE
> >            nfs4lib.BadCompoundRes: Opening file b'LKU10-1':
> >            operation OP_OPEN should return NFS4_OK, instead got
> >            NFS4ERR_DELAY
> >CLOSE9   st_close.testTimedoutClose2                              : FAILURE
> >            nfs4lib.BadCompoundRes: Opening file b'CLOSE9-1':
> >            operation OP_OPEN should return NFS4_OK, instead got
> >            NFS4ERR_DELAY
> >CLOSE8   st_close.testTimedoutClose1                              : FAILURE
> >            nfs4lib.BadCompoundRes: Opening file b'CLOSE8-1':
> >            operation OP_OPEN should return NFS4_OK, instead got
> >            NFS4ERR_DELAY
> 
> with this patches, OPEN (v4.0 and v4.1) might have to handle NFS4ERR_DELAY
> if there is a reservation conflict. I had to modify open_confirm (v4.0) and
> open_create_file (v4.1) to handle the NFS4ERR_DELAY error.

Looking at your patch 2....

OK, my suggestion was: "in the case of a conflict, call
try_to_expire_client and queue_work(), then modify e.g.
nfs4_get_vfs_file to flush_workqueue() and then retry after unlocking
fi_lock."  You're returning DELAY instead of waiting for the workqueue.

After thinking on it a minute.... I like your way better.  It's simpler.
Any client has to handle DELAY on OPEN, for the delegation-conflict
case.  Maybe it's a little suboptimal, but so what, this is a very rare
case.

So, good thinking, let's stick with that idea.  We'll just need to fix
up pynfs some time.

--b.



[Index of Archives]     [Linux Filesystem Development]     [Linux USB Development]     [Linux Media Development]     [Video for Linux]     [Linux NILFS]     [Linux Audio Users]     [Yosemite Info]     [Linux SCSI]

  Powered by Linux