Print this page
NEX-16824 SMB client connection setup rework
NEX-17232 SMB client reconnect failures
Reviewed by: Evan Layton <evan.layton@nexenta.com>
Reviewed by: Matt Barden <matt.barden@nexenta.com>
and: (improve debug)


  81 extern int      ktli_log();
  82 extern int      ktlilog;
  83 
  84 #define         KTLILOG(A, B, C) ((void)((ktlilog) && ktli_log((A), (B), (C))))
  85 #else
  86 #define         KTLILOG(A, B, C)
  87 #endif
  88 
  89 /*
  90  * flags
  91  */
  92 #define         MADE_FP         0x02
  93 
  94 extern int      t_kalloc(TIUSER *, int, int, char **);
  95 extern int      t_kbind(TIUSER *, struct t_bind *, struct t_bind *);
  96 extern int      t_kclose(TIUSER *, int);
  97 extern int      t_kconnect(TIUSER *, struct t_call *, struct t_call *);
  98 extern int      t_kfree(TIUSER *, char *, int);
  99 extern int      t_kgetstate(TIUSER *, int *);
 100 extern int      t_kopen(struct file *, dev_t, int, TIUSER **, struct cred *);

 101 extern int      t_krcvudata(TIUSER *, struct t_kunitdata *, int *, int *);
 102 extern int      t_ksndudata(TIUSER *, struct t_kunitdata *, frtn_t *);
 103 extern int      t_kspoll(TIUSER *, int, int, int *);
 104 extern int      t_kunbind(TIUSER *);
 105 extern int      tli_send(TIUSER *, mblk_t *, int);
 106 extern int      tli_recv(TIUSER *, mblk_t **, int);
 107 extern int      t_tlitosyserr(int);
 108 extern int      get_ok_ack(TIUSER *, int, int);
 109 
 110 /*
 111  * these make life a lot easier
 112  */
 113 #define         TCONNREQSZ      sizeof (struct T_conn_req)
 114 #define         TCONNRESSZ      sizeof (struct T_conn_res)
 115 #define         TDISCONREQSZ    sizeof (struct T_discon_req)
 116 #define         TDATAREQSZ      sizeof (struct T_data_req)
 117 #define         TEXDATAREQSZ    sizeof (struct T_exdata_req)
 118 #define         TINFOREQSZ      sizeof (struct T_info_req)
 119 #define         TBINDREQSZ      sizeof (struct T_bind_req)
 120 #define         TUNBINDREQSZ    sizeof (struct T_unbind_req)




  81 extern int      ktli_log();
  82 extern int      ktlilog;
  83 
  84 #define         KTLILOG(A, B, C) ((void)((ktlilog) && ktli_log((A), (B), (C))))
  85 #else
  86 #define         KTLILOG(A, B, C)
  87 #endif
  88 
  89 /*
  90  * flags
  91  */
  92 #define         MADE_FP         0x02
  93 
  94 extern int      t_kalloc(TIUSER *, int, int, char **);
  95 extern int      t_kbind(TIUSER *, struct t_bind *, struct t_bind *);
  96 extern int      t_kclose(TIUSER *, int);
  97 extern int      t_kconnect(TIUSER *, struct t_call *, struct t_call *);
  98 extern int      t_kfree(TIUSER *, char *, int);
  99 extern int      t_kgetstate(TIUSER *, int *);
 100 extern int      t_kopen(struct file *, dev_t, int, TIUSER **, struct cred *);
 101 extern int      t_koptmgmt(TIUSER *, struct t_optmgmt *, struct t_optmgmt *);
 102 extern int      t_krcvudata(TIUSER *, struct t_kunitdata *, int *, int *);
 103 extern int      t_ksndudata(TIUSER *, struct t_kunitdata *, frtn_t *);
 104 extern int      t_kspoll(TIUSER *, int, int, int *);
 105 extern int      t_kunbind(TIUSER *);
 106 extern int      tli_send(TIUSER *, mblk_t *, int);
 107 extern int      tli_recv(TIUSER *, mblk_t **, int);
 108 extern int      t_tlitosyserr(int);
 109 extern int      get_ok_ack(TIUSER *, int, int);
 110 
 111 /*
 112  * these make life a lot easier
 113  */
 114 #define         TCONNREQSZ      sizeof (struct T_conn_req)
 115 #define         TCONNRESSZ      sizeof (struct T_conn_res)
 116 #define         TDISCONREQSZ    sizeof (struct T_discon_req)
 117 #define         TDATAREQSZ      sizeof (struct T_data_req)
 118 #define         TEXDATAREQSZ    sizeof (struct T_exdata_req)
 119 #define         TINFOREQSZ      sizeof (struct T_info_req)
 120 #define         TBINDREQSZ      sizeof (struct T_bind_req)
 121 #define         TUNBINDREQSZ    sizeof (struct T_unbind_req)