Print this page
3354 kernel crash in rpcsec_gss after using gsscred
Reviewed by: Toomas Soome <tsoome@me.com>
Reviewed by: Carlos Neira <cneirabustos@gmail.com>
Approved by: Robert Mustacchi <rm@joyent.com>
re #12783 rb4338 Flow control is needed in rpcmod when the NFS server is unable to keep up with the network

Split Close
Expand all
Collapse all
          --- old/usr/src/uts/common/rpc/svc_rdma.c
          +++ new/usr/src/uts/common/rpc/svc_rdma.c
↓ open down ↓ 14 lines elided ↑ open up ↑
  15   15   * If applicable, add the following below this CDDL HEADER, with the
  16   16   * fields enclosed by brackets "[]" replaced with your own identifying
  17   17   * information: Portions Copyright [yyyy] [name of copyright owner]
  18   18   *
  19   19   * CDDL HEADER END
  20   20   */
  21   21  /*
  22   22   * Copyright (c) 1983, 2010, Oracle and/or its affiliates. All rights reserved.
  23   23   * Copyright (c) 2012 by Delphix. All rights reserved.
  24   24   * Copyright 2013 Nexenta Systems, Inc.  All rights reserved.
       25 + * Copyright 2012 Marcel Telka <marcel@telka.sk>
       26 + * Copyright 2018 OmniOS Community Edition (OmniOSce) Association.
  25   27   */
  26   28  /* Copyright (c) 1983, 1984, 1985, 1986, 1987, 1988, 1989 AT&T */
  27   29  /* All Rights Reserved */
  28   30  /*
  29   31   * Portions of this source code were derived from Berkeley
  30   32   * 4.3 BSD under license from the Regents of the University of
  31   33   * California.
  32   34   */
  33   35  
  34   36  /*
↓ open down ↓ 40 lines elided ↑ open up ↑
  75   77  #define MSG_IS_RPCSEC_GSS(msg)          \
  76   78          ((msg)->rm_reply.rp_acpt.ar_verf.oa_flavor == RPCSEC_GSS)
  77   79  
  78   80  
  79   81  uint32_t rdma_bufs_granted = RDMA_BUFS_GRANT;
  80   82  
  81   83  /*
  82   84   * RDMA transport specific data associated with SVCMASTERXPRT
  83   85   */
  84   86  struct rdma_data {
  85      -        SVCMASTERXPRT   *rd_xprt;       /* back ptr to SVCMASTERXPRT */
       87 +        SVCMASTERXPRT   *rd_xprt;       /* back ptr to SVCMASTERXPRT */
  86   88          struct rdma_svc_data rd_data;   /* rdma data */
  87   89          rdma_mod_t      *r_mod;         /* RDMA module containing ops ptr */
  88   90  };
  89   91  
  90   92  /*
  91   93   * Plugin connection specific data stashed away in clone SVCXPRT
  92   94   */
  93   95  struct clone_rdma_data {
  94   96          bool_t          cloned;         /* xprt cloned for thread processing */
  95   97          CONN            *conn;          /* RDMA connection */
↓ open down ↓ 45 lines elided ↑ open up ↑
 141  143          svc_rdma_ksend,         /* Send reply */
 142  144          svc_rdma_kfreeargs,     /* Free argument data space */
 143  145          svc_rdma_kdestroy,      /* Destroy transport handle */
 144  146          svc_rdma_kdup,          /* Check entry in dup req cache */
 145  147          svc_rdma_kdupdone,      /* Mark entry in dup req cache as done */
 146  148          svc_rdma_kgetres,       /* Get pointer to response buffer */
 147  149          svc_rdma_kfreeres,      /* Destroy pre-serialized response header */
 148  150          svc_rdma_kclone_destroy,        /* Destroy a clone xprt */
 149  151          svc_rdma_kstart,        /* Tell `ready-to-receive' to rpcmod */
 150  152          svc_rdma_kclone_xprt,   /* Transport specific clone xprt */
 151      -        svc_rdma_ktattrs        /* Get Transport Attributes */
      153 +        svc_rdma_ktattrs,       /* Get Transport Attributes */
      154 +        NULL,                   /* Increment transport reference count */
      155 +        NULL                    /* Decrement transport reference count */
 152  156  };
 153  157  
 154  158  /*
 155  159   * Server statistics
 156  160   * NOTE: This structure type is duplicated in the NFS fast path.
 157  161   */
 158  162  struct {
 159  163          kstat_named_t   rscalls;
 160  164          kstat_named_t   rsbadcalls;
 161  165          kstat_named_t   rsnullrecv;
↓ open down ↓ 1287 lines elided ↑ open up ↑
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX