summaryrefslogtreecommitdiff
path: root/source3/include
diff options
context:
space:
mode:
authorVolker Lendecke <vl@samba.org>2008-01-19 23:25:36 +0100
committerVolker Lendecke <vl@samba.org>2008-01-19 23:25:36 +0100
commit1069cfe4ade88a032164c1242c9480a544584655 (patch)
tree1a4eef94986ffe072371e2fbdebf3cca7452aef6 /source3/include
parent2411c6cb90e485bd289b8b654db1c632556bfb2d (diff)
downloadsamba-1069cfe4ade88a032164c1242c9480a544584655.tar.gz
samba-1069cfe4ade88a032164c1242c9480a544584655.tar.bz2
samba-1069cfe4ade88a032164c1242c9480a544584655.zip
Add streams support
This is the core of the streams support. The main change is that in files_struct there is now a base_fsp pointer that holds the main file open while a stream is open. This is necessary to get the rather strange delete semantics right: You can't delete the main file while a stream is open without FILE_SHARE_DELETE, and while a stream is open a successful unlink of the main file leads to DELETE_PENDING for all further access on the main file or any stream. (This used to be commit 6022873cc155bdbbd3fb620689715f07a24d6ed1)
Diffstat (limited to 'source3/include')
-rw-r--r--source3/include/smb.h5
1 files changed, 5 insertions, 0 deletions
diff --git a/source3/include/smb.h b/source3/include/smb.h
index 15e51dbdd7..25421115c8 100644
--- a/source3/include/smb.h
+++ b/source3/include/smb.h
@@ -513,6 +513,8 @@ typedef struct files_struct {
FAKE_FILE_HANDLE *fake_file_handle;
struct notify_change_buf *notify;
+
+ struct files_struct *base_fsp; /* placeholder for delete on close */
} files_struct;
#include "ntquotas.h"
@@ -1369,6 +1371,9 @@ struct bitmap {
#define NTCREATEX_OPTIONS_PRIVATE_DENY_DOS 0x01000000
#define NTCREATEX_OPTIONS_PRIVATE_DENY_FCB 0x02000000
+/* Private options for streams support */
+#define NTCREATEX_OPTIONS_PRIVATE_STREAM_DELETE 0x04000000
+
/* Responses when opening a file. */
#define FILE_WAS_SUPERSEDED 0
#define FILE_WAS_OPENED 1