summaryrefslogtreecommitdiff
path: root/source3/include/vfs.h
diff options
context:
space:
mode:
authorTim Prouty <tprouty@samba.org>2008-10-20 17:43:45 -0700
committerTim Prouty <tprouty@samba.org>2008-12-03 17:50:17 -0800
commitf38d7f20a865b1ff5f7b039dd284d91b2ba7ec26 (patch)
treeca6941cb66532ad94d617cd602a3fa7d776efc97 /source3/include/vfs.h
parent1eb743ab8e8b1141f99fabd3e4a46895c6dcc17e (diff)
downloadsamba-f38d7f20a865b1ff5f7b039dd284d91b2ba7ec26.tar.gz
samba-f38d7f20a865b1ff5f7b039dd284d91b2ba7ec26.tar.bz2
samba-f38d7f20a865b1ff5f7b039dd284d91b2ba7ec26.zip
s3: Add SMB_VFS_CREATE_FILE to the vfs layer
Modify all callers of create_file to go through SMB_VFS_CREATE_FILE
Diffstat (limited to 'source3/include/vfs.h')
-rw-r--r--source3/include/vfs.h21
1 files changed, 21 insertions, 0 deletions
diff --git a/source3/include/vfs.h b/source3/include/vfs.h
index 4cedb4a9c6..03b4b8e706 100644
--- a/source3/include/vfs.h
+++ b/source3/include/vfs.h
@@ -110,6 +110,7 @@
open handle. JRA. */
/* Changed to version 24 - make security descriptor const in fset_nt_acl. JRA. */
/* Changed to version 25 - Jelmer's change from SMB_BIG_UINT to uint64_t. */
+/* Leave at 25 - not yet released. Add create_file call. -- tprouty. */
#define SMB_VFS_INTERFACE_VERSION 25
@@ -134,6 +135,8 @@ struct connection_struct;
struct files_struct;
struct security_descriptor;
struct vfs_statvfs_struct;
+struct smb_request;
+struct ea_list;
/*
Available VFS operations. These values must be in sync with vfs_ops struct
@@ -170,6 +173,7 @@ typedef enum _vfs_op_type {
/* File operations */
SMB_VFS_OP_OPEN,
+ SMB_VFS_OP_CREATE_FILE,
SMB_VFS_OP_CLOSE,
SMB_VFS_OP_READ,
SMB_VFS_OP_PREAD,
@@ -305,6 +309,22 @@ struct vfs_ops {
/* File operations */
int (*open)(struct vfs_handle_struct *handle, const char *fname, files_struct *fsp, int flags, mode_t mode);
+ NTSTATUS (*create_file)(struct vfs_handle_struct *handle,
+ struct smb_request *req,
+ uint16_t root_dir_fid,
+ const char *fname,
+ uint32_t access_mask,
+ uint32_t share_access,
+ uint32_t create_disposition,
+ uint32_t create_options,
+ uint32_t file_attributes,
+ uint32_t oplock_request,
+ uint64_t allocation_size,
+ struct security_descriptor *sd,
+ struct ea_list *ea_list,
+ files_struct **result,
+ int *pinfo,
+ SMB_STRUCT_STAT *psbuf);
int (*close_fn)(struct vfs_handle_struct *handle, struct files_struct *fsp);
ssize_t (*vfs_read)(struct vfs_handle_struct *handle, struct files_struct *fsp, void *data, size_t n);
ssize_t (*pread)(struct vfs_handle_struct *handle, struct files_struct *fsp, void *data, size_t n, SMB_OFF_T offset);
@@ -452,6 +472,7 @@ struct vfs_ops {
/* File operations */
struct vfs_handle_struct *open;
+ struct vfs_handle_struct *create_file;
struct vfs_handle_struct *close_hnd;
struct vfs_handle_struct *vfs_read;
struct vfs_handle_struct *pread;