1. 18 5月, 2016 1 次提交
  2. 09 5月, 2016 3 次提交
  3. 05 4月, 2016 1 次提交
  4. 15 3月, 2016 3 次提交
  5. 02 3月, 2016 8 次提交
  6. 06 2月, 2016 6 次提交
  7. 01 2月, 2016 4 次提交
    • T
      SUNRPC: Make freeing of struct xprt rcu-safe · fda1bfef
      Trond Myklebust 提交于
      Have it call kfree_rcu() to ensure that we can use it on rcu-protected
      lists.
      Signed-off-by: NTrond Myklebust <trond.myklebust@primarydata.com>
      fda1bfef
    • T
      SUNRPC: Uninline xprt_get(); It isn't performance critical. · 30c5116b
      Trond Myklebust 提交于
      Also allow callers to pass NULL arguments to xprt_get() and xprt_put().
      Signed-off-by: NTrond Myklebust <trond.myklebust@primarydata.com>
      30c5116b
    • T
      SUNRPC: Reorder rpc_task to put waitqueue related info in same cachelines · 5edd1051
      Trond Myklebust 提交于
      Try to group all the data required by the waitqueues, their timers and timer
      callbacks into the same cachelines for performance. With this reordering,
      "pahole" reports the following structure on x86_64:
      
      struct rpc_task {
              atomic_t                   tk_count;             /*     0     4 */
              int                        tk_status;            /*     4     4 */
              struct list_head           tk_task;              /*     8    16 */
              void                       (*tk_callback)(struct rpc_task *); /*    24
              void                       (*tk_action)(struct rpc_task *); /*    32
              long unsigned int          tk_timeout;           /*    40     8 */
              long unsigned int          tk_runstate;          /*    48     8 */
              struct rpc_wait_queue *    tk_waitqueue;         /*    56     8 */
              /* --- cacheline 1 boundary (64 bytes) --- */
              union {
                      struct work_struct tk_work;              /*          64 */
                      struct rpc_wait    tk_wait;              /*          56 */
              } u;                                             /*    64    64 */
              /* --- cacheline 2 boundary (128 bytes) --- */
              struct rpc_message         tk_msg;               /*   128    32 */
              void *                     tk_calldata;          /*   160     8 */
              const struct rpc_call_ops  * tk_ops;             /*   168     8 */
              struct rpc_clnt *          tk_client;            /*   176     8 */
              struct rpc_rqst *          tk_rqstp;             /*   184     8 */
              /* --- cacheline 3 boundary (192 bytes) --- */
              struct workqueue_struct *  tk_workqueue;         /*   192     8 */
              ktime_t                    tk_start;             /*   200     8 */
              pid_t                      tk_owner;             /*   208     4 */
              short unsigned int         tk_flags;             /*   212     2 */
              short unsigned int         tk_timeouts;          /*   214     2 */
              short unsigned int         tk_pid;               /*   216     2 */
              unsigned char              tk_priority:2;        /*   218: 6  1 */
              unsigned char              tk_garb_retry:2;      /*   218: 4  1 */
              unsigned char              tk_cred_retry:2;      /*   218: 2  1 */
              unsigned char              tk_rebind_retry:2;    /*   218: 0  1 */
      
              /* size: 224, cachelines: 4, members: 24 */
              /* padding: 5 */
              /* last cacheline: 32 bytes */
      };
      
      whereas on i386, it reports everything fitting into the 1st cacheline.
      Signed-off-by: NTrond Myklebust <trond.myklebust@primarydata.com>
      5edd1051
    • T
  8. 27 1月, 2016 1 次提交
  9. 20 1月, 2016 8 次提交
  10. 23 12月, 2015 1 次提交
    • S
      sunrpc: Add a function to close temporary transports immediately · c3d4879e
      Scott Mayhew 提交于
      Add a function svc_age_temp_xprts_now() to close temporary transports
      whose xpt_local matches the address passed in server_addr immediately
      instead of waiting for them to be closed by the timer function.
      
      The function is intended to be used by notifier_blocks that will be
      added to nfsd and lockd that will run when an ip address is deleted.
      
      This will eliminate the ACK storms and client hangs that occur in
      HA-NFS configurations where nfsd & lockd is left running on the cluster
      nodes all the time and the NFS 'service' is migrated back and forth
      within a short timeframe.
      Signed-off-by: NScott Mayhew <smayhew@redhat.com>
      Signed-off-by: NJ. Bruce Fields <bfields@redhat.com>
      c3d4879e
  11. 25 11月, 2015 1 次提交
    • J
      nfsd4: fix gss-proxy 4.1 mounts for some AD principals · 414ca017
      J. Bruce Fields 提交于
      The principal name on a gss cred is used to setup the NFSv4.0 callback,
      which has to have a client principal name to authenticate to.
      
      That code wants the name to be in the form servicetype@hostname.
      rpc.svcgssd passes down such names (and passes down no principal name at
      all in the case the principal isn't a service principal).
      
      gss-proxy always passes down the principal name, and passes it down in
      the form servicetype/hostname@REALM.  So we've been munging the name
      gss-proxy passes down into the format the NFSv4.0 callback code expects,
      or throwing away the name if we can't.
      
      Since the introduction of the MACH_CRED enforcement in NFSv4.1, we've
      also been using the principal name to verify that certain operations are
      done as the same principal as was used on the original EXCHANGE_ID call.
      
      For that application, the original name passed down by gss-proxy is also
      useful.
      
      Lack of that name in some cases was causing some kerberized NFSv4.1
      mount failures in an Active Directory environment.
      
      This fix only works in the gss-proxy case.  The fix for legacy
      rpc.svcgssd would be more involved, and rpc.svcgssd already has other
      problems in the AD case.
      Reported-and-tested-by: NJames Ralston <ralston@pobox.com>
      Acked-by: NSimo Sorce <simo@redhat.com>
      Signed-off-by: NJ. Bruce Fields <bfields@redhat.com>
      414ca017
  12. 03 11月, 2015 3 次提交