Print this page
    
NEX-18380 Catch up with illumos SMB fix 9769
Reviewed by: Matt Barden <matt.barden@nexenta.com>
Reviewed by: Rick McNeal <rick.mcneal@nexenta.com>
Reviewed by: Evan Layton <evan.layton@nexenta.com>
Reviewed by: Yuri Pankov <yuri.pankov@nexenta.com>
9769 SMB domain logon fails with I18N user name
9774 libmlrpc changes in 1575 missed some things
Reviewed by: Toomas Soome <tsoome@me.com>
Reviewed by: Andy Fiddaman <omnios@citrus-it.co.uk>
Approved by: Robert Mustacchi <rm@joyent.com>
SMB-136 Snapshots not visible in Windows previous versions
 (missed smbd-doorsvc.d last time)
    
      
        | Split | 
	Close | 
      
      | Expand all | 
      | Collapse all | 
    
    
          --- old/usr/src/cmd/smbsrv/dtrace/smbd-doorsvc.d
          +++ new/usr/src/cmd/smbsrv/dtrace/smbd-doorsvc.d
   1    1  #!/usr/sbin/dtrace -s
   2    2  /*
   3    3   * This file and its contents are supplied under the terms of the
  
    | 
      ↓ open down ↓ | 
    3 lines elided | 
    
      ↑ open up ↑ | 
  
   4    4   * Common Development and Distribution License ("CDDL"), version 1.0.
   5    5   * You may only use this file in accordance with the terms of version
   6    6   * 1.0 of the CDDL.
   7    7   *
   8    8   * A full copy of the text of the CDDL should have accompanied this
   9    9   * source.  A copy of the CDDL is also available via the Internet at
  10   10   * http://www.illumos.org/license/CDDL.
  11   11   */
  12   12  
  13   13  /*
  14      - * Copyright 2014 Nexenta Systems, Inc.  All rights reserved.
       14 + * Copyright 2018 Nexenta Systems, Inc.  All rights reserved.
  15   15   */
  16   16  
  17   17  /*
  18   18   * User-level dtrace for smbd
  19   19   * Usage: dtrace -s smbd-doorsvc.d -p `pgrep smbd`
  20   20   */
  21   21  
  22   22  #pragma D option flowindent
  23   23  
  24   24  self int trace;
  25   25  self int mask;
  26   26  
  27   27  /*
  28   28   * smbd_door_dispatch_op() is the logical top of smbd door service calls.
  29   29   */
  
    | 
      ↓ open down ↓ | 
    5 lines elided | 
    
      ↑ open up ↑ | 
  
  30   30  pid$target:*smbd:smbd_door_dispatch_op:entry
  31   31  {
  32   32          self->trace++;
  33   33  }
  34   34  
  35   35  /*
  36   36   * If traced and not masked, print entry/return
  37   37   */
  38   38  pid$target:*smbd::entry,
  39   39  pid$target:libmlsvc.so.1::entry,
  40      -pid$target:libmlrpc.so.1::entry,
       40 +pid$target:libmlrpc.so.2::entry,
  41   41  pid$target:libsmbns.so.1::entry,
  42   42  pid$target:libsmb.so.1::entry,
  43   43  pid$target:libsmbfs.so.1::entry
  44   44  /self->trace > 0 && self->mask == 0/
  45   45  {
  46   46          printf("\t0x%x", arg0);
  47   47          printf("\t0x%x", arg1);
  48   48          printf("\t0x%x", arg2);
  49   49          printf("\t0x%x", arg3);
  50   50          printf("\t0x%x", arg4);
  51   51          printf("\t0x%x", arg5);
  52   52  }
  53   53  
  54   54  /*
  55   55   * Mask (don't print) all function calls below these functions.
  56   56   * These make many boring, repetitive function calls like
  57   57   * smb_mbtowc, smb_msgbuf_has_space, ...
  58   58   */
  59   59  pid$target::smb_msgbuf_decode:entry,
  60   60  pid$target::smb_msgbuf_encode:entry,
  61   61  pid$target::smb_strlwr:entry,
  62   62  pid$target::smb_strupr:entry,
  63   63  pid$target::smb_wcequiv_strlen:entry
  64   64  {
  65   65          self->mask++;
  66   66  }
  67   67  
  68   68  /*
  69   69   * Now inverses of above, unwind order.
  70   70   */
  71   71  
  72   72  pid$target::smb_msgbuf_decode:return,
  
    | 
      ↓ open down ↓ | 
    22 lines elided | 
    
      ↑ open up ↑ | 
  
  73   73  pid$target::smb_msgbuf_encode:return,
  74   74  pid$target::smb_strlwr:return,
  75   75  pid$target::smb_strupr:return,
  76   76  pid$target::smb_wcequiv_strlen:return
  77   77  {
  78   78          self->mask--;
  79   79  }
  80   80  
  81   81  pid$target:*smbd::return,
  82   82  pid$target:libmlsvc.so.1::return,
  83      -pid$target:libmlrpc.so.1::return,
       83 +pid$target:libmlrpc.so.2::return,
  84   84  pid$target:libsmbns.so.1::return,
  85   85  pid$target:libsmb.so.1::return,
  86   86  pid$target:libsmbfs.so.1::return
  87   87  /self->trace > 0 && self->mask == 0/
  88   88  {
  89   89          printf("\t0x%x", arg1);
  90   90  }
  91   91  
  92   92  pid$target:*smbd:smbd_door_dispatch_op:return
  93   93  {
  94   94          self->trace--;
  95   95  }
    
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX