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,10 +19,11 @@
  * 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,16 +189,35 @@
 #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_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,11 +286,13 @@
         FileFsDeviceInformation,        /* 4 */
         FileFsAttributeInformation,     /* 5 */
         FileFsControlInformation,       /* 6 */
         FileFsFullSizeInformation,      /* 7 */
         FileFsObjectIdInformation,      /* 8 */
-        FileFsDriverPathInformation     /* 9 */
+        FileFsDriverPathInformation,    /* 9 */
+        FileFsVolumeFlagsInformation,   /* A */
+        FileFsSectorSizeInformation     /* B */
 } FILE_FS_INFORMATION_CLASS;
 
 /*
  * Discretionary Access Control List (DACL)
  *