1. 06 12月, 2012 1 次提交
  2. 01 11月, 2012 2 次提交
  3. 09 10月, 2012 1 次提交
  4. 02 10月, 2012 2 次提交
    • C
      NFS: Discover NFSv4 server trunking when mounting · 05f4c350
      Chuck Lever 提交于
      "Server trunking" is a fancy named for a multi-homed NFS server.
      Trunking might occur if a client sends NFS requests for a single
      workload to multiple network interfaces on the same server.  There
      are some implications for NFSv4 state management that make it useful
      for a client to know if a single NFSv4 server instance is
      multi-homed.  (Note this is only a consideration for NFSv4, not for
      legacy versions of NFS, which are stateless).
      
      If a client cares about server trunking, no NFSv4 operations can
      proceed until that client determines who it is talking to.  Thus
      server IP trunking discovery must be done when the client first
      encounters an unfamiliar server IP address.
      
      The nfs_get_client() function walks the nfs_client_list and matches
      on server IP address.  The outcome of that walk tells us immediately
      if we have an unfamiliar server IP address.  It invokes
      nfs_init_client() in this case.  Thus, nfs4_init_client() is a good
      spot to perform trunking discovery.
      
      Discovery requires a client to establish a fresh client ID, so our
      client will now send SETCLIENTID or EXCHANGE_ID as the first NFS
      operation after a successful ping, rather than waiting for an
      application to perform an operation that requires NFSv4 state.
      
      The exact process for detecting trunking is different for NFSv4.0 and
      NFSv4.1, so a minorversion-specific init_client callout method is
      introduced.
      
      CLID_INUSE recovery is important for the trunking discovery process.
      CLID_INUSE is a sign the server recognizes the client's nfs_client_id4
      id string, but the client is using the wrong principal this time for
      the SETCLIENTID operation.  The SETCLIENTID must be retried with a
      series of different principals until one works, and then the rest of
      trunking discovery can proceed.
      Signed-off-by: NChuck Lever <chuck.lever@oracle.com>
      Signed-off-by: NTrond Myklebust <Trond.Myklebust@netapp.com>
      05f4c350
    • C
      NFS: nfs_parsed_mount_options can use unsigned int · 8cb7f74e
      Chuck Lever 提交于
      fs/nfs/super.c: In function ‘nfs_compare_remount_data’:
      fs/nfs/super.c:2042:18: warning: comparison between signed and
          unsigned integer expressions [-Wsign-compare]
      fs/nfs/super.c:2043:18: warning: comparison between signed and
          unsigned integer expressions [-Wsign-compare]
      fs/nfs/super.c:2044:20: warning: comparison between signed and
          unsigned integer expressions [-Wsign-compare]
      fs/nfs/super.c:2046:21: warning: comparison between signed and
          unsigned integer expressions [-Wsign-compare]
      fs/nfs/super.c:2047:21: warning: comparison between signed and
          unsigned integer expressions [-Wsign-compare]
      fs/nfs/super.c:2048:21: warning: comparison between signed and
          unsigned integer expressions [-Wsign-compare]
      fs/nfs/super.c:2049:21: warning: comparison between signed and
          unsigned integer expressions [-Wsign-compare]
      fs/nfs/super.c:2050:18: warning: comparison between signed and
          unsigned integer expressions [-Wsign-compare]
      
      Seen with gcc (GCC) 4.6.3 20120306 (Red Hat 4.6.3-2).
      Signed-off-by: NChuck Lever <chuck.lever@oracle.com>
      Signed-off-by: NTrond Myklebust <Trond.Myklebust@netapp.com>
      8cb7f74e
  5. 01 8月, 2012 1 次提交
  6. 31 7月, 2012 7 次提交
  7. 18 7月, 2012 5 次提交
  8. 29 6月, 2012 4 次提交
  9. 01 6月, 2012 1 次提交
  10. 24 5月, 2012 2 次提交
  11. 23 5月, 2012 2 次提交
    • C
      NFS: Add nfs_client behavior flags · 4bf590e0
      Chuck Lever 提交于
      "noresvport" and "discrtry" can be passed to nfs_create_rpc_client()
      by setting flags in the passed-in nfs_client.  This change makes it
      easy to add new flags.
      
      Note that these settings are now "sticky" over the lifetime of a
      struct nfs_client, and may even be copied when an nfs_client is
      cloned.
      Signed-off-by: NChuck Lever <chuck.lever@oracle.com>
      Signed-off-by: NTrond Myklebust <Trond.Myklebust@netapp.com>
      4bf590e0
    • C
      NFS: Refactor nfs_get_client(): initialize nfs_client · 8cab4c39
      Chuck Lever 提交于
      Clean up: Continue to rationalize the locking in nfs_get_client() by
      moving the logic that handles the case where a matching server IP
      address is not found.
      
      When we support server trunking detection, client initialization may
      return a different nfs_client struct than was passed to it.  Change
      the synopsis of the init_client methods to return an nfs_client.
      
      The client initialization logic in nfs_get_client() is not much more
      than a wrapper around ->init_client.  It's simpler to keep the little
      bits of error handling in the version-specific init_client methods.
      
      No behavior change is expected.
      Signed-off-by: NChuck Lever <chuck.lever@oracle.com>
      Signed-off-by: NTrond Myklebust <Trond.Myklebust@netapp.com>
      8cab4c39
  12. 20 5月, 2012 3 次提交
  13. 15 5月, 2012 2 次提交
  14. 02 5月, 2012 1 次提交
  15. 28 4月, 2012 6 次提交