All of lore.kernel.org
 help / color / mirror / Atom feed
* global openowner_id and lockowner_id
@ 2012-04-12 15:42 Chuck Lever
  2012-04-12 15:50 ` Myklebust, Trond
  0 siblings, 1 reply; 7+ messages in thread
From: Chuck Lever @ 2012-04-12 15:42 UTC (permalink / raw)
  To: Trond Myklebust; +Cc: Linux NFS Mailing List

Hi-

Changing the SETCLIENTID boot verifier so it is global for the whole client exposes a problem with how we allocate state owners.

A quick umount / mount sequence destroys all state on the client.  But since the client now always uses the same boot verifier and nfs_client_id4 string, the server no longer recognizes a client reboot.  FOr a fresh mount, the client may perform a SETCLIENTID, but it is treated as a callback update (state is not purged) if the client's lease has not yet expired.

Our state owners are generated from a pair of ida structures in the nfs_server for that mount.  They always start from zero after a mount operation.  Likewise, the sequence IDs for these state owners are also reset by umount / mount.  Note that each mount point gets a fresh nfs_server, so these structures are not retained across umount / mount.

This means umount / mount with no lease expiry starts to re-play state owners with reset sequence IDs.  Servers don't really care for that behavior.  I have a test case that reliably gets a BAD_SEQID error from a server after a quick umount / mount followed by a single file creation.

Now that we are about to switch to using more-or-less global SETCLIENTID boot verifiers, it seems to me that we really want a global openowner_id and lockowner_id as well.

The performance impact of such a change might be acceptable because we cache and reuse state owners now.

Thoughts?

-- 
Chuck Lever
chuck[dot]lever[at]oracle[dot]com





^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2012-04-12 17:32 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-04-12 15:42 global openowner_id and lockowner_id Chuck Lever
2012-04-12 15:50 ` Myklebust, Trond
2012-04-12 15:54   ` Chuck Lever
2012-04-12 15:58     ` Myklebust, Trond
2012-04-12 16:05       ` Chuck Lever
2012-04-12 17:32         ` Myklebust, Trond
2012-04-12 17:07       ` J. Bruce Fields

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.