Print this page
NEX-16052 NFS clients cannot reconnect to server after network loss (autofs)
Reviewed by: Yuri Pankov <yuri.pankov@nexenta.com>
Reviewed by: Joyce McIntosh <joyce.mcintosh@nexenta.com>
Reviewed by: Rick McNeal <rick.mcneal@nexenta.com>
Reviewed by: Gordon Ross <gordon.ross@nexenta.com>
NEX-4123 xdrmblk_getpos() is unreliable
Reviewed by: Josef 'Jeff' Sipek <josef.sipek@nexenta.com>
Reviewed by: Yuri Pankov <yuri.pankov@nexenta.com>
re #13613 rb4516 Tunables needs volatile keyword
        
*** 18,28 ****
   *
   * CDDL HEADER END
   */
  
  /*
!  * Copyright 2016 Nexenta Systems, Inc.  All rights reserved.
   * Copyright (c) 2016 by Delphix. All rights reserved.
   */
  
  /*
   * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
--- 18,28 ----
   *
   * CDDL HEADER END
   */
  
  /*
!  * Copyright 2018 Nexenta Systems, Inc.  All rights reserved.
   * Copyright (c) 2016 by Delphix. All rights reserved.
   */
  
  /*
   * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
*** 472,482 ****
  
  #define COTSRCSTAT_INCR(p, x)   \
          atomic_inc_64(&(p)->x.value.ui64)
  
  #define CLNT_MAX_CONNS  1       /* concurrent connections between clnt/srvr */
! int clnt_max_conns = CLNT_MAX_CONNS;
  
  #define CLNT_MIN_TIMEOUT        10      /* seconds to wait after we get a */
                                          /* connection reset */
  #define CLNT_MIN_CONNTIMEOUT    5       /* seconds to wait for a connection */
  
--- 472,482 ----
  
  #define COTSRCSTAT_INCR(p, x)   \
          atomic_inc_64(&(p)->x.value.ui64)
  
  #define CLNT_MAX_CONNS  1       /* concurrent connections between clnt/srvr */
! volatile int clnt_max_conns = CLNT_MAX_CONNS;
  
  #define CLNT_MIN_TIMEOUT        10      /* seconds to wait after we get a */
                                          /* connection reset */
  #define CLNT_MIN_CONNTIMEOUT    5       /* seconds to wait for a connection */
  
*** 2278,2287 ****
--- 2278,2288 ----
                   * NULL to caller.
                   */
                  if (rpcerr->re_status == RPC_SUCCESS)
                          rpcerr->re_status = RPC_XPRTFAILED;
                  cm_entry->x_connected = FALSE;
+                 cm_entry->x_dead = TRUE;
          } else
                  cm_entry->x_connected = connected;
  
          /*
           * There could be a discrepancy here such that
*** 2396,2405 ****
--- 2397,2407 ----
                           * NULL to caller.
                           */
                          if (rpcerr->re_status == RPC_SUCCESS)
                                  rpcerr->re_status = RPC_XPRTFAILED;
                          cm_entry->x_connected = FALSE;
+                         cm_entry->x_dead = TRUE;
                  } else
                          cm_entry->x_connected = connected;
  
                  /*
                   * There could be a discrepancy here such that