s3:vfs: add create tags to SMB_VFS_CREATEFILE
[obnox/samba/samba-obnox.git] / source3 / include / vfs.h
index e7dc07998d521d2c172ce6e00410bab9f3158365..1843ef428ee3f58f0b5c36038bf9b85849069915 100644 (file)
 /* Bump to version 32 - Samba 4.2 will ship with that. */
 /* Version 32 - Add "lease" to CREATE_FILE operation */
 /* Version 32 - Add "lease" to struct files_struct */
+/* Version 32 - Add SMB_VFS_READDIR_ATTR() */
+/* Version 32 - Add in and our create context blobs to create_file */
 
 #define SMB_VFS_INTERFACE_VERSION 32
 
@@ -552,7 +554,9 @@ struct vfs_fn_pointers {
                                   struct security_descriptor *sd,
                                   struct ea_list *ea_list,
                                   files_struct **result,
-                                  int *pinfo);
+                                  int *pinfo,
+                                  const struct smb2_create_blobs *in_context_blobs,
+                                  struct smb2_create_blobs *out_context_blobs);
        int (*close_fn)(struct vfs_handle_struct *handle, struct files_struct *fsp);
        ssize_t (*read_fn)(struct vfs_handle_struct *handle, struct files_struct *fsp, void *data, size_t n);
        ssize_t (*pread_fn)(struct vfs_handle_struct *handle, struct files_struct *fsp, void *data, size_t n, off_t offset);
@@ -789,6 +793,11 @@ struct vfs_fn_pointers {
                                         TALLOC_CTX *mem_ctx,
                                         struct files_struct **fsp,
                                         DATA_BLOB *new_cookie);
+
+       NTSTATUS (*readdir_attr_fn)(struct vfs_handle_struct *handle,
+                                   const struct smb_filename *fname,
+                                   TALLOC_CTX *mem_ctx,
+                                   struct readdir_attr_data **attr_data);
 };
 
 /*
@@ -958,7 +967,9 @@ NTSTATUS smb_vfs_call_create_file(struct vfs_handle_struct *handle,
                                  struct security_descriptor *sd,
                                  struct ea_list *ea_list,
                                  files_struct **result,
-                                 int *pinfo);
+                                 int *pinfo,
+                                 const struct smb2_create_blobs *in_context_blobs,
+                                 struct smb2_create_blobs *out_context_blobs);
 int smb_vfs_call_close(struct vfs_handle_struct *handle,
                       struct files_struct *fsp);
 ssize_t smb_vfs_call_read(struct vfs_handle_struct *handle,
@@ -1234,6 +1245,10 @@ NTSTATUS smb_vfs_call_durable_reconnect(struct vfs_handle_struct *handle,
                                        TALLOC_CTX *mem_ctx,
                                        struct files_struct **fsp,
                                        DATA_BLOB *new_cookie);
+NTSTATUS smb_vfs_call_readdir_attr(struct vfs_handle_struct *handle,
+                                  const struct smb_filename *fname,
+                                  TALLOC_CTX *mem_ctx,
+                                  struct readdir_attr_data **attr_data);
 
 NTSTATUS smb_register_vfs(int version, const char *name,
                          const struct vfs_fn_pointers *fns);