Re: [PATCH pynfs 02/17] 4.1 server: service RECLAIM_COMPLETE operations

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

 



On Thu, Jun 05, 2014 at 08:58:01AM -0400, Weston Andros Adamson wrote:
> Are you saying that the pynfs server supports state recovery? This has not
> been my experience. I’ll double check.

If you don't support state recovery, then I think the minimal correct
behavior would be to have no grace period at all: return NO_GRACE on
*every* reclaim operation and GRACE only on non-reclaims not preceded by
a global (one_fs == FALSE) RECLAIM_COMPLETE for that client.

All this does is catch misbehaving clients, and maybe that's not a
priority.  But it's easy enough to implement.

--b.

> -dros
> 
> 
> 
> On Jun 5, 2014, at 8:22 AM, Trond Myklebust <trondmy@xxxxxxxxx> wrote:
> 
> > On Wed, Jun 4, 2014 at 10:29 PM, J. Bruce Fields <bfields@xxxxxxxxxxxx> wrote:
> >> On Wed, Jun 04, 2014 at 05:01:50PM -0400, Weston Andros Adamson wrote:
> >>> Just return ok!
> >> 
> >> Technically it should record whether or not the reclaim_complete has
> >> happened and return a GRACE error on any non-reclaim open performed
> >> before the reclaim_complete--but for your purposes you may not care...
> >> 
> > 
> > ...and a NOGRACE error on any reclaim opens performed by that client
> > after the reclaim_complete?
> > 
> >> --b.
> >> 
> >>> 
> >>> Signed-off-by: Weston Andros Adamson <dros@xxxxxxxxxxxxxxx>
> >>> ---
> >>> nfs4.1/nfs4server.py | 3 +++
> >>> 1 file changed, 3 insertions(+)
> >>> 
> >>> diff --git a/nfs4.1/nfs4server.py b/nfs4.1/nfs4server.py
> >>> index 65fb9af..3607dc0 100755
> >>> --- a/nfs4.1/nfs4server.py
> >>> +++ b/nfs4.1/nfs4server.py
> >>> @@ -1809,6 +1809,9 @@ class NFS4Server(rpc.Server):
> >>>         with find_state(env, arg.deleg_stateid, allow_0=False) as state:
> >>>             state.delegreturn()
> >>>         return encode_status(NFS4_OK)
> >>> +
> >>> +    def op_reclaim_complete(self, arg, env):
> >>> +        return encode_status(NFS4_OK)
> >>> 
> >>>     def op_getdevicelist(self, arg, env): # STUB
> >>>         check_session(env)
> >>> --
> >>> 1.8.5.2 (Apple Git-48)
> >>> 
> >> --
> >> To unsubscribe from this list: send the line "unsubscribe linux-nfs" in
> >> the body of a message to majordomo@xxxxxxxxxxxxxxx
> >> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> 
--
To unsubscribe from this list: send the line "unsubscribe linux-nfs" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[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