Print this page
NEX-5665 SMB2 oplock leases
Reviewed by: Matt Barden <matt.barden@nexenta.com>
Reviewed by: Evan Layton <evan.layton@nexenta.com>
Reviewed by: Roman Strashkin <roman.strashkin@nexenta.com>
NEX-5665 SMB2 oplock leases
Reviewed by: Matt Barden <matt.barden@nexenta.com>
Reviewed by: Evan Layton <evan.layton@nexenta.com>
Reviewed by: Roman Strashkin <roman.strashkin@nexenta.com>
NEX-4538 SMB1 create file should support extended_response format (2)
NEX-6116 Failures in smbtorture raw.open
Reviewed by: Evan Layton <evan.layton@nexenta.com>
Reviewed by: Kevin Crowe <kevin.crowe@nexenta.com>
Reviewed by: Matt Barden <matt.barden@nexenta.com>
Include this commit if upstreaming/backporting any of:
NEX-4540 SMB server declines EA support incorrectly
NEX-4239 smbtorture create failures re. allocation size
(illumos) 6398 SMB should support path names longer than 1024
NEX-5598 SMB needs a few more ioctls for Hyper-V
Reviewed by: Gordon Ross <gwr@nexenta.com>

Split Close
Expand all
Collapse all
          --- old/usr/src/uts/common/smbsrv/ntifs.h
          +++ new/usr/src/uts/common/smbsrv/ntifs.h
↓ open down ↓ 13 lines elided ↑ open up ↑
  14   14   * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
  15   15   * If applicable, add the following below this CDDL HEADER, with the
  16   16   * fields enclosed by brackets "[]" replaced with your own identifying
  17   17   * information: Portions Copyright [yyyy] [name of copyright owner]
  18   18   *
  19   19   * CDDL HEADER END
  20   20   */
  21   21  /*
  22   22   * Copyright 2010 Sun Microsystems, Inc.  All rights reserved.
  23   23   * Use is subject to license terms.
       24 + * Copyright 2017 Nexenta Systems, Inc.  All rights reserved.
  24   25   * Copyright (c) 2016 by Delphix. All rights reserved.
  25   26   */
  26   27  
  27   28  #ifndef _SMBSRV_NTIFS_H
  28   29  #define _SMBSRV_NTIFS_H
  29   30  
  30   31  /*
  31   32   * This file provides definitions compatible with the NT Installable
  32   33   * File System (IFS) interface. This header file also defines the Security
  33   34   * Descriptor module from Windows.
↓ open down ↓ 149 lines elided ↑ open up ↑
 183  184  #define FILE_DELETE_ON_CLOSE                    0x00001000
 184  185  #define FILE_OPEN_BY_FILE_ID                    0x00002000
 185  186  #define FILE_OPEN_FOR_BACKUP_INTENT             0x00004000
 186  187  #define FILE_NO_COMPRESSION                     0x00008000
 187  188  
 188  189  #define FILE_RESERVE_OPFILTER                   0x00100000
 189  190  #define FILE_RESERVED0                          0x00200000
 190  191  #define FILE_RESERVED1                          0x00400000
 191  192  #define FILE_RESERVED2                          0x00800000
 192  193  
 193      -#define FILE_VALID_OPTION_FLAGS                 0x007fffff
      194 +#define FILE_VALID_OPTION_FLAGS                 0x00ffffff
 194  195  #define FILE_VALID_PIPE_OPTION_FLAGS            0x00000032
 195  196  #define FILE_VALID_MAILSLOT_OPTION_FLAGS        0x00000032
 196  197  #define FILE_VALID_SET_FLAGS                    0x00000036
 197  198  
 198  199  /*
      200 + * "Granular" oplock flags; [MS-FSA], WinDDK/ntifs.h
      201 + * Same as smb2.h SMB2_LEASE_...
      202 + */
      203 +#define OPLOCK_LEVEL_CACHE_READ                 0x01
      204 +#define OPLOCK_LEVEL_CACHE_HANDLE               0x02
      205 +#define OPLOCK_LEVEL_CACHE_WRITE                0x04
      206 +#define OPLOCK_LEVEL_CACHE_MASK                 0x07
      207 +
      208 +/*
      209 + * [MS-FSA] oplock types (also "levels")
      210 + */
      211 +#define OPLOCK_LEVEL_NONE                       0
      212 +#define OPLOCK_LEVEL_TWO                        0x100
      213 +#define OPLOCK_LEVEL_ONE                        0x200
      214 +#define OPLOCK_LEVEL_BATCH                      0x400
      215 +#define OPLOCK_LEVEL_GRANULAR                   0x800
      216 +#define OPLOCK_LEVEL_TYPE_MASK                  0xf00
      217 +
      218 +/*
 199  219   * Define the file information class values used by the NT DDK and HAL.
 200  220   */
 201  221  typedef enum _FILE_INFORMATION_CLASS {
 202  222          FileDirectoryInformation                = 1,
 203  223          FileFullDirectoryInformation,           /* 2 */
 204  224          FileBothDirectoryInformation,           /* 3 */
 205  225          FileBasicInformation,                   /* 4 */
 206  226          FileStandardInformation,                /* 5 */
 207  227          FileInternalInformation,                /* 6 */
 208  228          FileEaInformation,                      /* 7 */
↓ open down ↓ 52 lines elided ↑ open up ↑
 261  281   */
 262  282  typedef enum _FILE_FS_INFORMATION_CLASS {
 263  283          FileFsVolumeInformation         = 1,
 264  284          FileFsLabelInformation,         /* 2 */
 265  285          FileFsSizeInformation,          /* 3 */
 266  286          FileFsDeviceInformation,        /* 4 */
 267  287          FileFsAttributeInformation,     /* 5 */
 268  288          FileFsControlInformation,       /* 6 */
 269  289          FileFsFullSizeInformation,      /* 7 */
 270  290          FileFsObjectIdInformation,      /* 8 */
 271      -        FileFsDriverPathInformation     /* 9 */
      291 +        FileFsDriverPathInformation,    /* 9 */
      292 +        FileFsVolumeFlagsInformation,   /* A */
      293 +        FileFsSectorSizeInformation     /* B */
 272  294  } FILE_FS_INFORMATION_CLASS;
 273  295  
 274  296  /*
 275  297   * Discretionary Access Control List (DACL)
 276  298   *
 277  299   * A Discretionary Access Control List (DACL), often abbreviated to
 278  300   * ACL, is a list of access controls which either allow or deny access
 279  301   * for users or groups to a resource. There is a list header followed
 280  302   * by a list of access control entries (ACE). Each ACE specifies the
 281  303   * access allowed or denied to a single user or group (identified by
↓ open down ↓ 328 lines elided ↑ open up ↑
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX