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)
*