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>
        
*** 19,28 ****
--- 19,29 ----
   * CDDL HEADER END
   */
  /*
   * Copyright 2010 Sun Microsystems, Inc.  All rights reserved.
   * Use is subject to license terms.
+  * Copyright 2017 Nexenta Systems, Inc.  All rights reserved.
   * Copyright (c) 2016 by Delphix. All rights reserved.
   */
  
  #ifndef _SMBSRV_NTIFS_H
  #define _SMBSRV_NTIFS_H
*** 188,203 ****
  #define FILE_RESERVE_OPFILTER                   0x00100000
  #define FILE_RESERVED0                          0x00200000
  #define FILE_RESERVED1                          0x00400000
  #define FILE_RESERVED2                          0x00800000
  
! #define FILE_VALID_OPTION_FLAGS                 0x007fffff
  #define FILE_VALID_PIPE_OPTION_FLAGS            0x00000032
  #define FILE_VALID_MAILSLOT_OPTION_FLAGS        0x00000032
  #define FILE_VALID_SET_FLAGS                    0x00000036
  
  /*
   * Define the file information class values used by the NT DDK and HAL.
   */
  typedef enum _FILE_INFORMATION_CLASS {
          FileDirectoryInformation                = 1,
          FileFullDirectoryInformation,           /* 2 */
--- 189,223 ----
  #define FILE_RESERVE_OPFILTER                   0x00100000
  #define FILE_RESERVED0                          0x00200000
  #define FILE_RESERVED1                          0x00400000
  #define FILE_RESERVED2                          0x00800000
  
! #define FILE_VALID_OPTION_FLAGS                 0x00ffffff
  #define FILE_VALID_PIPE_OPTION_FLAGS            0x00000032
  #define FILE_VALID_MAILSLOT_OPTION_FLAGS        0x00000032
  #define FILE_VALID_SET_FLAGS                    0x00000036
  
  /*
+  * "Granular" oplock flags; [MS-FSA], WinDDK/ntifs.h
+  * Same as smb2.h SMB2_LEASE_...
+  */
+ #define OPLOCK_LEVEL_CACHE_READ                 0x01
+ #define OPLOCK_LEVEL_CACHE_HANDLE               0x02
+ #define OPLOCK_LEVEL_CACHE_WRITE                0x04
+ #define OPLOCK_LEVEL_CACHE_MASK                 0x07
+ 
+ /*
+  * [MS-FSA] oplock types (also "levels")
+  */
+ #define OPLOCK_LEVEL_NONE                       0
+ #define OPLOCK_LEVEL_TWO                        0x100
+ #define OPLOCK_LEVEL_ONE                        0x200
+ #define OPLOCK_LEVEL_BATCH                      0x400
+ #define OPLOCK_LEVEL_GRANULAR                   0x800
+ #define OPLOCK_LEVEL_TYPE_MASK                  0xf00
+ 
+ /*
   * Define the file information class values used by the NT DDK and HAL.
   */
  typedef enum _FILE_INFORMATION_CLASS {
          FileDirectoryInformation                = 1,
          FileFullDirectoryInformation,           /* 2 */
*** 266,276 ****
          FileFsDeviceInformation,        /* 4 */
          FileFsAttributeInformation,     /* 5 */
          FileFsControlInformation,       /* 6 */
          FileFsFullSizeInformation,      /* 7 */
          FileFsObjectIdInformation,      /* 8 */
!         FileFsDriverPathInformation     /* 9 */
  } FILE_FS_INFORMATION_CLASS;
  
  /*
   * Discretionary Access Control List (DACL)
   *
--- 286,298 ----
          FileFsDeviceInformation,        /* 4 */
          FileFsAttributeInformation,     /* 5 */
          FileFsControlInformation,       /* 6 */
          FileFsFullSizeInformation,      /* 7 */
          FileFsObjectIdInformation,      /* 8 */
!         FileFsDriverPathInformation,    /* 9 */
!         FileFsVolumeFlagsInformation,   /* A */
!         FileFsSectorSizeInformation     /* B */
  } FILE_FS_INFORMATION_CLASS;
  
  /*
   * Discretionary Access Control List (DACL)
   *