Print this page
NEX-4324 Should not include $DATA when enumerating streams (try 2)
NEX-3409 SMB2: OSX - cannot display nested folders in finder
Reviewed by: Kevin Crowe <kevin.crowe@nexenta.com>
Reviewed by: Matt Barden <Matt.Barden@nexenta.com>
NEX-2106 SMB2 query_file_info FileAlternateNameInformation fails
SMB-11 SMB2 message parse & dispatch
SMB-12 SMB2 Negotiate Protocol
SMB-13 SMB2 Session Setup
SMB-14 SMB2 Logoff
SMB-15 SMB2 Tree Connect
SMB-16 SMB2 Tree Disconnect
SMB-17 SMB2 Create
SMB-18 SMB2 Close
SMB-19 SMB2 Flush
SMB-20 SMB2 Read
SMB-21 SMB2 Write
SMB-22 SMB2 Lock/Unlock
SMB-23 SMB2 Ioctl
SMB-24 SMB2 Cancel
SMB-25 SMB2 Echo
SMB-26 SMB2 Query Dir
SMB-27 SMB2 Change Notify
SMB-28 SMB2 Query Info
SMB-29 SMB2 Set Info
SMB-30 SMB2 Oplocks
SMB-53 SMB2 Create Context options
(SMB2 code review cleanup 1, 2, 3)

Split Close
Expand all
Collapse all
          --- old/usr/src/uts/common/fs/smbsrv/smb2_qinfo_file.c
          +++ new/usr/src/uts/common/fs/smbsrv/smb2_qinfo_file.c
↓ open down ↓ 2 lines elided ↑ open up ↑
   3    3   * Common Development and Distribution License ("CDDL"), version 1.0.
   4    4   * You may only use this file in accordance with the terms of version
   5    5   * 1.0 of the CDDL.
   6    6   *
   7    7   * A full copy of the text of the CDDL should have accompanied this
   8    8   * source.  A copy of the CDDL is also available via the Internet at
   9    9   * http://www.illumos.org/license/CDDL.
  10   10   */
  11   11  
  12   12  /*
  13      - * Copyright 2014 Nexenta Systems, Inc.  All rights reserved.
       13 + * Copyright 2015 Nexenta Systems, Inc.  All rights reserved.
  14   14   */
  15   15  
  16   16  /*
  17   17   * Dispatch function for SMB2_QUERY_INFO
  18   18   *
  19   19   * [MS-FSCC 2.4] If a file system does not support ...
  20   20   * an Information Classs, NT_STATUS_INVALID_PARAMETER...
  21   21   */
  22   22  
  23   23  #include <smbsrv/smb2_kproto.h>
↓ open down ↓ 55 lines elided ↑ open up ↑
  79   79                  getname = B_TRUE;
  80   80                  break;
  81   81  
  82   82          case FileAlternateNameInformation:
  83   83                  mask = SMB_AT_NODEID;
  84   84                  getname = B_TRUE;
  85   85                  break;
  86   86  
  87   87          case FileStreamInformation:
  88   88                  mask = SMB_AT_STANDARD;
       89 +                getstd = B_TRUE;
  89   90                  break;
  90   91  
  91   92          case FileCompressionInformation:
  92   93                  mask = SMB_AT_SIZE | SMB_AT_ALLOCSZ;
  93   94                  break;
  94   95  
  95   96          case FileNetworkOpenInformation:
  96   97                  mask = SMB_AT_BASIC | SMB_AT_STANDARD;
  97   98  
  98   99          default:
↓ open down ↓ 182 lines elided ↑ open up ↑
 281  282  
 282  283  /*
 283  284   * FileInternalInformation
 284  285   * See also:
 285  286   *      SMB_FILE_INTERNAL_INFORMATION
 286  287   */
 287  288  static uint32_t
 288  289  smb2_qif_internal(smb_request_t *sr, smb_queryinfo_t *qi)
 289  290  {
 290  291          smb_attr_t *sa = &qi->qi_attr;
      292 +        u_longlong_t nodeid;
 291  293  
 292  294          ASSERT((sa->sa_mask & SMB_AT_NODEID) == SMB_AT_NODEID);
      295 +        nodeid = sa->sa_vattr.va_nodeid;
 293  296  
      297 +        if (smb2_aapl_use_file_ids == 0 &&
      298 +            (sr->session->s_flags & SMB_SSN_AAPL_CCEXT) != 0)
      299 +                nodeid = 0;
      300 +
 294  301          (void) smb_mbc_encodef(
 295  302              &sr->raw_data, "q",
 296      -            sa->sa_vattr.va_nodeid);    /* q */
      303 +            nodeid);    /* q */
 297  304  
 298  305          return (0);
 299  306  }
 300  307  
 301  308  /*
 302  309   * FileEaInformation
 303  310   * See also:
 304  311   *      SMB_QUERY_FILE_EA_INFO
 305  312   *      SMB_FILE_EA_INFORMATION
 306  313   */
↓ open down ↓ 272 lines elided ↑ open up ↑
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX