Print this page
5133 Upstream SMB client fixes: Nexenta SUP-538 and SUP-548

Split Close
Expand all
Collapse all
          --- old/usr/src/uts/common/fs/smbclnt/netsmb/smb_iod.c
          +++ new/usr/src/uts/common/fs/smbclnt/netsmb/smb_iod.c
↓ open down ↓ 174 lines elided ↑ open up ↑
 175  175           * call across the network while trying to
 176  176           * shut things down.  If we just disconnect,
 177  177           * the server will take care of the logoff.
 178  178           */
 179  179          SMB_TRAN_DISCONNECT(vcp);
 180  180  
 181  181          /*
 182  182           * If we have an IOD, it should immediately notice
 183  183           * that its connection has closed.  But in case
 184  184           * it doesn't, let's also send it a signal.
 185      -         * (but don't shoot our own foot!)
 186      -         * Note: the iod calls smb_iod_invrq on its way out.
 187  185           */
      186 +        SMB_VC_LOCK(vcp);
 188  187          if (vcp->iod_thr != NULL &&
 189  188              vcp->iod_thr != curthread) {
 190  189                  tsignal(vcp->iod_thr, SIGKILL);
 191  190          }
      191 +        SMB_VC_UNLOCK(vcp);
 192  192  }
 193  193  
 194  194  /*
 195  195   * Send one request.
 196  196   *
 197  197   * Called by _addrq (for internal requests)
 198  198   * and _sendall (via _addrq, _multirq, _waitrq)
 199  199   */
 200  200  static int
 201  201  smb_iod_sendrq(struct smb_rq *rqp)
↓ open down ↓ 966 lines elided ↑ open up ↑
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX