The branch, master has been updated
       via  854ea4e s3: VFS: Change SMB_VFS_GETXATTR to use const struct 
smb_filename * instead of const char *.
       via  48956fa s3: VFS: Change SMB_VFS_SETXATTR to use const struct 
smb_filename * instead of const char *.
       via  12b801d s3: VFS: Change SMB_VFS_REMOVEXATTR to use const struct 
smb_filename * instead of const char *.
       via  892476b s3: VFS: Change SMB_VFS_LISTXATTR to use const struct 
smb_filename * instead of const char *.
       via  aada948 s3: VFS: Change SMB_VFS_SYS_ACL_SET_FILE to use const 
struct smb_filename * instead of const char *.
       via  f5dd864 s3: VFS: Change SMB_VFS_SYS_ACL_BLOB_GET_FILE to use const 
struct smb_filename * instead of const char *.
       via  cea8e57 s3: VFS: Change SMB_VFS_SYS_ACL_GET_FILE to use const 
struct smb_filename * instead of const char *.
       via  85c8780 s3: VFS: Change SMB_VFS_SYS_ACL_DELETE_DEF_FILE to use 
const struct smb_filename * instead of const char *.
       via  63d2003 s3: lib: Add new utility function 
cp_smb_filename_nostream().
      from  7259661 dsdb: Use ldb_handle_use_global_event_context for rootdse 
modifies

https://git.samba.org/?p=samba.git;a=shortlog;h=master


- Log -----------------------------------------------------------------
commit 854ea4eba8d552ab38543647da840fd66039dd94
Author: Jeremy Allison <[email protected]>
Date:   Thu May 25 16:42:04 2017 -0700

    s3: VFS: Change SMB_VFS_GETXATTR to use const struct smb_filename * instead 
of const char *.
    
    We need to migrate all pathname based VFS calls to use a struct
    to finish modernising the VFS with extra timestamp and flags parameters.
    
    Signed-off-by: Jeremy Allison <[email protected]>
    Reviewed-by: Ralph Boehme <[email protected]>
    
    Autobuild-User(master): Jeremy Allison <[email protected]>
    Autobuild-Date(master): Thu Jun  1 02:58:53 CEST 2017 on sn-devel-144

commit 48956fa4d3b37105ad3e8e742c21b5583d79db11
Author: Jeremy Allison <[email protected]>
Date:   Thu May 25 12:41:31 2017 -0700

    s3: VFS: Change SMB_VFS_SETXATTR to use const struct smb_filename * instead 
of const char *.
    
    We need to migrate all pathname based VFS calls to use a struct
    to finish modernising the VFS with extra timestamp and flags parameters.
    
    Signed-off-by: Jeremy Allison <[email protected]>
    Reviewed-by: Ralph Boehme <[email protected]>

commit 12b801d9d7856f1bb50619962f7e9cb94e75087f
Author: Jeremy Allison <[email protected]>
Date:   Wed May 24 11:35:50 2017 -0700

    s3: VFS: Change SMB_VFS_REMOVEXATTR to use const struct smb_filename * 
instead of const char *.
    
    We need to migrate all pathname based VFS calls to use a struct
    to finish modernising the VFS with extra timestamp and flags parameters.
    
    Signed-off-by: Jeremy Allison <[email protected]>
    Reviewed-by: Ralph Boehme <[email protected]>

commit 892476b555f57bcbe40883c533e208c81be168c9
Author: Jeremy Allison <[email protected]>
Date:   Tue May 23 13:12:29 2017 -0700

    s3: VFS: Change SMB_VFS_LISTXATTR to use const struct smb_filename * 
instead of const char *.
    
    We need to migrate all pathname based VFS calls to use a struct
    to finish modernising the VFS with extra timestamp and flags parameters.
    
    Signed-off-by: Jeremy Allison <[email protected]>
    Reviewed-by: Ralph Boehme <[email protected]>

commit aada94885dce29334e34c9aae32c22e7acfc1174
Author: Jeremy Allison <[email protected]>
Date:   Wed May 24 10:47:46 2017 -0700

    s3: VFS: Change SMB_VFS_SYS_ACL_SET_FILE to use const struct smb_filename * 
instead of const char *.
    
    We need to migrate all pathname based VFS calls to use a struct
    to finish modernising the VFS with extra timestamp and flags parameters.
    
    Signed-off-by: Jeremy Allison <[email protected]>
    Reviewed-by: Ralph Boehme <[email protected]>

commit f5dd864606d5e587b85695ea11520df31b353fb8
Author: Jeremy Allison <[email protected]>
Date:   Tue May 23 17:35:59 2017 -0700

    s3: VFS: Change SMB_VFS_SYS_ACL_BLOB_GET_FILE to use const struct 
smb_filename * instead of const char *.
    
    We need to migrate all pathname based VFS calls to use a struct
    to finish modernising the VFS with extra timestamp and flags parameters.
    
    Signed-off-by: Jeremy Allison <[email protected]>
    Reviewed-by: Ralph Boehme <[email protected]>

commit cea8e57eac2ed7b90a5c5d207bf392ff0546398e
Author: Jeremy Allison <[email protected]>
Date:   Tue May 23 17:11:18 2017 -0700

    s3: VFS: Change SMB_VFS_SYS_ACL_GET_FILE to use const struct smb_filename * 
instead of const char *.
    
    We need to migrate all pathname based VFS calls to use a struct
    to finish modernising the VFS with extra timestamp and flags parameters.
    
    Requires a few extra cleanups in calling code.
    
    Signed-off-by: Jeremy Allison <[email protected]>
    Reviewed-by: Ralph Boehme <[email protected]>

commit 85c8780581e0f2bb0fdb940a865857db68111fbd
Author: Jeremy Allison <[email protected]>
Date:   Tue May 23 15:33:31 2017 -0700

    s3: VFS: Change SMB_VFS_SYS_ACL_DELETE_DEF_FILE to use const struct 
smb_filename * instead of const char *.
    
    We need to migrate all pathname based VFS calls to use a struct
    to finish modernising the VFS with extra timestamp and flags parameters.
    
    Signed-off-by: Jeremy Allison <[email protected]>
    Reviewed-by: Ralph Boehme <[email protected]>

commit 63d2003ecd74b009f484f2af6ad365e754879e13
Author: Jeremy Allison <[email protected]>
Date:   Tue May 30 11:46:49 2017 -0700

    s3: lib: Add new utility function cp_smb_filename_nostream().
    
    Will be needed when we migrate lower-level VFS functions to
    take an struct smb_filename *, especially the SYS_ACL and
    XATTR modification modules, as these must ignore a passed-in
    stream name.
    
    Signed-off-by: Jeremy Allison <[email protected]>
    Reviewed-by: Ralph Boehme <[email protected]>

-----------------------------------------------------------------------

Summary of changes:
 examples/VFS/skel_opaque.c          |  43 ++++---
 examples/VFS/skel_transparent.c     |  61 ++++++----
 source3/include/proto.h             |   2 +
 source3/include/smb_acls.h          |  12 +-
 source3/include/vfs.h               |  83 +++++++++----
 source3/include/vfs_macros.h        |  64 +++++-----
 source3/lib/filename_util.c         |  16 +++
 source3/lib/sysacls.c               |  95 +++++++++------
 source3/modules/non_posix_acls.c    |  13 +-
 source3/modules/non_posix_acls.h    |   2 +-
 source3/modules/posixacl_xattr.c    |  31 +++--
 source3/modules/posixacl_xattr.h    |   6 +-
 source3/modules/vfs_acl_common.c    |   2 +-
 source3/modules/vfs_acl_tdb.c       |  37 ++++--
 source3/modules/vfs_acl_xattr.c     |  15 +--
 source3/modules/vfs_afsacl.c        |   6 +-
 source3/modules/vfs_aixacl.c        |  13 +-
 source3/modules/vfs_aixacl2.c       |  31 +++--
 source3/modules/vfs_cap.c           | 227 +++++++++++++++++++++++++++++++----
 source3/modules/vfs_catia.c         | 229 ++++++++++++++++++++++++++++++------
 source3/modules/vfs_ceph.c          |  44 +++++--
 source3/modules/vfs_default.c       |  48 +++++---
 source3/modules/vfs_fake_acls.c     |  56 +++++----
 source3/modules/vfs_fruit.c         |   8 +-
 source3/modules/vfs_full_audit.c    |  68 ++++++-----
 source3/modules/vfs_glusterfs.c     |  25 ++--
 source3/modules/vfs_gpfs.c          |  26 ++--
 source3/modules/vfs_hpuxacl.c       |  18 +--
 source3/modules/vfs_hpuxacl.h       |   6 +-
 source3/modules/vfs_media_harmony.c | 198 +++++++++++++------------------
 source3/modules/vfs_nfs4acl_xattr.c |  67 +++++++----
 source3/modules/vfs_posix_eadb.c    |  30 +++--
 source3/modules/vfs_posixacl.c      |  20 ++--
 source3/modules/vfs_posixacl.h      |   6 +-
 source3/modules/vfs_shadow_copy2.c  | 106 +++++++++++++----
 source3/modules/vfs_snapper.c       | 173 +++++++++++++++++++--------
 source3/modules/vfs_solarisacl.c    |  38 +++---
 source3/modules/vfs_solarisacl.h    |  10 +-
 source3/modules/vfs_streams_depot.c |  18 +--
 source3/modules/vfs_streams_xattr.c |  76 +++++++++---
 source3/modules/vfs_time_audit.c    |  77 +++++++-----
 source3/modules/vfs_tru64acl.c      |  19 +--
 source3/modules/vfs_tru64acl.h      |   8 +-
 source3/modules/vfs_unityed_media.c | 156 ++++++++++++++----------
 source3/modules/vfs_vxfs.c          | 134 +++++++++++++--------
 source3/modules/vfs_xattr_tdb.c     |  28 +++--
 source3/modules/vfs_zfsacl.c        |  16 ++-
 source3/smbd/dosmode.c              |   8 +-
 source3/smbd/open.c                 |   4 +-
 source3/smbd/posix_acls.c           | 145 +++++++++++++++--------
 source3/smbd/proto.h                |  31 +++--
 source3/smbd/pysmbd.c               |  24 +++-
 source3/smbd/trans2.c               |  34 +++---
 source3/smbd/vfs.c                  |  58 +++++----
 source3/torture/cmd_vfs.c           |  80 +++++++++++--
 55 files changed, 1927 insertions(+), 924 deletions(-)


Changeset truncated at 500 lines:

diff --git a/examples/VFS/skel_opaque.c b/examples/VFS/skel_opaque.c
index af119f3..c5d4359 100644
--- a/examples/VFS/skel_opaque.c
+++ b/examples/VFS/skel_opaque.c
@@ -741,7 +741,7 @@ static int skel_fchmod_acl(vfs_handle_struct *handle, 
files_struct *fsp,
 }
 
 static SMB_ACL_T skel_sys_acl_get_file(vfs_handle_struct *handle,
-                                      const char *path_p,
+                                      const struct smb_filename *smb_fname,
                                       SMB_ACL_TYPE_T type,
                                       TALLOC_CTX *mem_ctx)
 {
@@ -757,8 +757,10 @@ static SMB_ACL_T skel_sys_acl_get_fd(vfs_handle_struct 
*handle,
 }
 
 static int skel_sys_acl_blob_get_file(vfs_handle_struct *handle,
-                                     const char *path_p, TALLOC_CTX *mem_ctx,
-                                     char **blob_description, DATA_BLOB *blob)
+                               const struct smb_filename *smb_fname,
+                               TALLOC_CTX *mem_ctx,
+                               char **blob_description,
+                               DATA_BLOB *blob)
 {
        errno = ENOSYS;
        return -1;
@@ -772,8 +774,10 @@ static int skel_sys_acl_blob_get_fd(vfs_handle_struct 
*handle,
        return -1;
 }
 
-static int skel_sys_acl_set_file(vfs_handle_struct *handle, const char *name,
-                                SMB_ACL_TYPE_T acltype, SMB_ACL_T theacl)
+static int skel_sys_acl_set_file(vfs_handle_struct *handle,
+                               const struct smb_filename *smb_fname,
+                               SMB_ACL_TYPE_T acltype,
+                               SMB_ACL_T theacl)
 {
        errno = ENOSYS;
        return -1;
@@ -787,14 +791,17 @@ static int skel_sys_acl_set_fd(vfs_handle_struct *handle, 
files_struct *fsp,
 }
 
 static int skel_sys_acl_delete_def_file(vfs_handle_struct *handle,
-                                       const char *path)
+                                       const struct smb_filename *smb_fname)
 {
        errno = ENOSYS;
        return -1;
 }
 
-static ssize_t skel_getxattr(vfs_handle_struct *handle, const char *path,
-                            const char *name, void *value, size_t size)
+static ssize_t skel_getxattr(vfs_handle_struct *handle,
+                               const struct smb_filename *smb_fname,
+                               const char *name,
+                               void *value,
+                               size_t size)
 {
        errno = ENOSYS;
        return -1;
@@ -808,8 +815,10 @@ static ssize_t skel_fgetxattr(vfs_handle_struct *handle,
        return -1;
 }
 
-static ssize_t skel_listxattr(vfs_handle_struct *handle, const char *path,
-                             char *list, size_t size)
+static ssize_t skel_listxattr(vfs_handle_struct *handle,
+                               const struct smb_filename *smb_fname,
+                               char *list,
+                               size_t size)
 {
        errno = ENOSYS;
        return -1;
@@ -823,8 +832,9 @@ static ssize_t skel_flistxattr(vfs_handle_struct *handle,
        return -1;
 }
 
-static int skel_removexattr(vfs_handle_struct *handle, const char *path,
-                           const char *name)
+static int skel_removexattr(vfs_handle_struct *handle,
+                       const struct smb_filename *smb_fname,
+                       const char *name)
 {
        errno = ENOSYS;
        return -1;
@@ -838,9 +848,12 @@ static int skel_fremovexattr(vfs_handle_struct *handle,
        return SMB_VFS_NEXT_FREMOVEXATTR(handle, fsp, name);
 }
 
-static int skel_setxattr(vfs_handle_struct *handle, const char *path,
-                        const char *name, const void *value, size_t size,
-                        int flags)
+static int skel_setxattr(vfs_handle_struct *handle,
+                       const struct smb_filename *smb_fname,
+                       const char *name,
+                       const void *value,
+                       size_t size,
+                       int flags)
 {
        errno = ENOSYS;
        return -1;
diff --git a/examples/VFS/skel_transparent.c b/examples/VFS/skel_transparent.c
index e974529..91ea5c6 100644
--- a/examples/VFS/skel_transparent.c
+++ b/examples/VFS/skel_transparent.c
@@ -881,11 +881,11 @@ static int skel_fchmod_acl(vfs_handle_struct *handle, 
files_struct *fsp,
 }
 
 static SMB_ACL_T skel_sys_acl_get_file(vfs_handle_struct *handle,
-                                      const char *path_p,
+                                      const struct smb_filename *smb_fname,
                                       SMB_ACL_TYPE_T type,
                                       TALLOC_CTX *mem_ctx)
 {
-       return SMB_VFS_NEXT_SYS_ACL_GET_FILE(handle, path_p, type, mem_ctx);
+       return SMB_VFS_NEXT_SYS_ACL_GET_FILE(handle, smb_fname, type, mem_ctx);
 }
 
 static SMB_ACL_T skel_sys_acl_get_fd(vfs_handle_struct *handle,
@@ -895,10 +895,12 @@ static SMB_ACL_T skel_sys_acl_get_fd(vfs_handle_struct 
*handle,
 }
 
 static int skel_sys_acl_blob_get_file(vfs_handle_struct *handle,
-                                     const char *path_p, TALLOC_CTX *mem_ctx,
-                                     char **blob_description, DATA_BLOB *blob)
+                               const struct smb_filename *smb_fname,
+                               TALLOC_CTX *mem_ctx,
+                               char **blob_description,
+                               DATA_BLOB *blob)
 {
-       return SMB_VFS_NEXT_SYS_ACL_BLOB_GET_FILE(handle, path_p, mem_ctx,
+       return SMB_VFS_NEXT_SYS_ACL_BLOB_GET_FILE(handle, smb_fname, mem_ctx,
                                                  blob_description, blob);
 }
 
@@ -910,10 +912,13 @@ static int skel_sys_acl_blob_get_fd(vfs_handle_struct 
*handle,
                                                blob_description, blob);
 }
 
-static int skel_sys_acl_set_file(vfs_handle_struct *handle, const char *name,
-                                SMB_ACL_TYPE_T acltype, SMB_ACL_T theacl)
+static int skel_sys_acl_set_file(vfs_handle_struct *handle,
+                               const struct smb_filename *smb_fname,
+                               SMB_ACL_TYPE_T acltype,
+                               SMB_ACL_T theacl)
 {
-       return SMB_VFS_NEXT_SYS_ACL_SET_FILE(handle, name, acltype, theacl);
+       return SMB_VFS_NEXT_SYS_ACL_SET_FILE(handle, smb_fname,
+                       acltype, theacl);
 }
 
 static int skel_sys_acl_set_fd(vfs_handle_struct *handle, files_struct *fsp,
@@ -923,15 +928,18 @@ static int skel_sys_acl_set_fd(vfs_handle_struct *handle, 
files_struct *fsp,
 }
 
 static int skel_sys_acl_delete_def_file(vfs_handle_struct *handle,
-                                       const char *path)
+                                       const struct smb_filename *smb_fname)
 {
-       return SMB_VFS_NEXT_SYS_ACL_DELETE_DEF_FILE(handle, path);
+       return SMB_VFS_NEXT_SYS_ACL_DELETE_DEF_FILE(handle, smb_fname);
 }
 
-static ssize_t skel_getxattr(vfs_handle_struct *handle, const char *path,
-                            const char *name, void *value, size_t size)
+static ssize_t skel_getxattr(vfs_handle_struct *handle,
+                               const struct smb_filename *smb_fname,
+                               const char *name,
+                               void *value,
+                               size_t size)
 {
-       return SMB_VFS_NEXT_GETXATTR(handle, path, name, value, size);
+       return SMB_VFS_NEXT_GETXATTR(handle, smb_fname, name, value, size);
 }
 
 static ssize_t skel_fgetxattr(vfs_handle_struct *handle,
@@ -941,10 +949,12 @@ static ssize_t skel_fgetxattr(vfs_handle_struct *handle,
        return SMB_VFS_NEXT_FGETXATTR(handle, fsp, name, value, size);
 }
 
-static ssize_t skel_listxattr(vfs_handle_struct *handle, const char *path,
-                             char *list, size_t size)
+static ssize_t skel_listxattr(vfs_handle_struct *handle,
+                               const struct smb_filename *smb_fname,
+                               char *list,
+                               size_t size)
 {
-       return SMB_VFS_NEXT_LISTXATTR(handle, path, list, size);
+       return SMB_VFS_NEXT_LISTXATTR(handle, smb_fname, list, size);
 }
 
 static ssize_t skel_flistxattr(vfs_handle_struct *handle,
@@ -954,10 +964,11 @@ static ssize_t skel_flistxattr(vfs_handle_struct *handle,
        return SMB_VFS_NEXT_FLISTXATTR(handle, fsp, list, size);
 }
 
-static int skel_removexattr(vfs_handle_struct *handle, const char *path,
-                           const char *name)
+static int skel_removexattr(vfs_handle_struct *handle,
+                       const struct smb_filename *smb_fname,
+                       const char *name)
 {
-       return SMB_VFS_NEXT_REMOVEXATTR(handle, path, name);
+       return SMB_VFS_NEXT_REMOVEXATTR(handle, smb_fname, name);
 }
 
 static int skel_fremovexattr(vfs_handle_struct *handle,
@@ -966,11 +977,15 @@ static int skel_fremovexattr(vfs_handle_struct *handle,
        return SMB_VFS_NEXT_FREMOVEXATTR(handle, fsp, name);
 }
 
-static int skel_setxattr(vfs_handle_struct *handle, const char *path,
-                        const char *name, const void *value, size_t size,
-                        int flags)
+static int skel_setxattr(vfs_handle_struct *handle,
+                       const struct smb_filename *smb_fname,
+                       const char *name,
+                       const void *value,
+                       size_t size,
+                       int flags)
 {
-       return SMB_VFS_NEXT_SETXATTR(handle, path, name, value, size, flags);
+       return SMB_VFS_NEXT_SETXATTR(handle, smb_fname,
+                       name, value, size, flags);
 }
 
 static int skel_fsetxattr(vfs_handle_struct *handle, struct files_struct *fsp,
diff --git a/source3/include/proto.h b/source3/include/proto.h
index 4e7a431..121c9eb 100644
--- a/source3/include/proto.h
+++ b/source3/include/proto.h
@@ -1114,6 +1114,8 @@ const char *fsp_str_dbg(const struct files_struct *fsp);
 const char *fsp_fnum_dbg(const struct files_struct *fsp);
 struct smb_filename *cp_smb_filename(TALLOC_CTX *mem_ctx,
                                     const struct smb_filename *in);
+struct smb_filename *cp_smb_filename_nostream(TALLOC_CTX *mem_ctx,
+                                    const struct smb_filename *in);
 bool is_ntfs_stream_smb_fname(const struct smb_filename *smb_fname);
 bool is_ntfs_default_stream_smb_fname(const struct smb_filename *smb_fname);
 bool is_invalid_windows_ea_name(const char *name);
diff --git a/source3/include/smb_acls.h b/source3/include/smb_acls.h
index 3ac23db..73b67af 100644
--- a/source3/include/smb_acls.h
+++ b/source3/include/smb_acls.h
@@ -24,6 +24,7 @@
 
 struct vfs_handle_struct;
 struct files_struct;
+struct smb_filename;
 
 typedef int                    SMB_ACL_TYPE_T;
 typedef mode_t                 *SMB_ACL_PERMSET_T;
@@ -52,16 +53,19 @@ int sys_acl_set_permset(SMB_ACL_ENTRY_T entry_d, 
SMB_ACL_PERMSET_T permset_d);
 int sys_acl_free_text(char *text);
 int sys_acl_valid(SMB_ACL_T acl_d);
 SMB_ACL_T sys_acl_get_file(struct vfs_handle_struct *handle,
-                          const char *path_p, SMB_ACL_TYPE_T type,
-                          TALLOC_CTX *mem_ctx);
+                       const struct smb_filename *smb_fname,
+                       SMB_ACL_TYPE_T type,
+                       TALLOC_CTX *mem_ctx);
 SMB_ACL_T sys_acl_get_fd(struct vfs_handle_struct *handle, struct files_struct 
*fsp,
                         TALLOC_CTX *mem_ctx);
 int sys_acl_set_file(struct vfs_handle_struct *handle,
-                    const char *name, SMB_ACL_TYPE_T type, SMB_ACL_T acl_d);
+                       const struct smb_filename *smb_fname,
+                       SMB_ACL_TYPE_T type,
+                       SMB_ACL_T acl_d);
 int sys_acl_set_fd(struct vfs_handle_struct *handle, struct files_struct *fsp,
                   SMB_ACL_T acl_d);
 int sys_acl_delete_def_file(struct vfs_handle_struct *handle,
-                           const char *path);
+                       const struct smb_filename *smb_fname);
 int no_acl_syscall_error(int err);
 
 #endif /* _SMB_ACLS_H */
diff --git a/source3/include/vfs.h b/source3/include/vfs.h
index 7908980..30002bd 100644
--- a/source3/include/vfs.h
+++ b/source3/include/vfs.h
@@ -197,6 +197,22 @@
 /* Version 36 - Remove is_offline and set_offline */
 /* Version 37 - Module init functions now take a TALLOC_CTX * parameter. */
 /* Version 37 - Add vfs_copy_chunk_flags for DUP_EXTENTS_TO_FILE */
+/* Version 37 - Change sys_acl_delete_def_file from const char *
+               to const struct smb_filename * */
+/* Version 37 - Change sys_acl_get_file from const char *
+               to const struct smb_filename * */
+/* Version 37 - Change sys_acl_blob_get_file from const char *
+               to const struct smb_filename * */
+/* Version 37 - Change sys_acl_set_file from const char *
+               to const struct smb_filename * */
+/* Version 37 - Change listxattr from const char *
+               to const struct smb_filename * */
+/* Version 37 - Change removexattr from const char *
+               to const struct smb_filename * */
+/* Version 37 - Change setxattr from const char *
+               to const struct smb_filename * */
+/* Version 37 - Change getxattr from const char *
+               to const struct smb_filename * */
 
 #define SMB_VFS_INTERFACE_VERSION 37
 
@@ -856,32 +872,50 @@ struct vfs_fn_pointers {
        int (*fchmod_acl_fn)(struct vfs_handle_struct *handle, struct 
files_struct *fsp, mode_t mode);
 
        SMB_ACL_T (*sys_acl_get_file_fn)(struct vfs_handle_struct *handle,
-                                        const char *path_p,
+                                        const struct smb_filename *smb_fname,
                                         SMB_ACL_TYPE_T type,
                                         TALLOC_CTX *mem_ctx);
        SMB_ACL_T (*sys_acl_get_fd_fn)(struct vfs_handle_struct *handle,
                                       struct files_struct *fsp,
                                       TALLOC_CTX *mem_ctx);
        int (*sys_acl_blob_get_file_fn)(struct vfs_handle_struct *handle,
-                                       const char *path_p,
+                                       const struct smb_filename *smb_fname,
                                        TALLOC_CTX *mem_ctx,
                                        char **blob_description,
                                        DATA_BLOB *blob);
        int (*sys_acl_blob_get_fd_fn)(struct vfs_handle_struct *handle, struct 
files_struct *fsp,
                                      TALLOC_CTX *mem_ctx, char 
**blob_description,
                                      DATA_BLOB *blob);
-       int (*sys_acl_set_file_fn)(struct vfs_handle_struct *handle, const char 
*name, SMB_ACL_TYPE_T acltype, SMB_ACL_T theacl);
+       int (*sys_acl_set_file_fn)(struct vfs_handle_struct *handle,
+                                       const struct smb_filename *smb_fname,
+                                       SMB_ACL_TYPE_T acltype,
+                                       SMB_ACL_T theacl);
        int (*sys_acl_set_fd_fn)(struct vfs_handle_struct *handle, struct 
files_struct *fsp, SMB_ACL_T theacl);
-       int (*sys_acl_delete_def_file_fn)(struct vfs_handle_struct *handle, 
const char *path);
+       int (*sys_acl_delete_def_file_fn)(struct vfs_handle_struct *handle,
+                                       const struct smb_filename *smb_fname);
 
        /* EA operations. */
-       ssize_t (*getxattr_fn)(struct vfs_handle_struct *handle,const char 
*path, const char *name, void *value, size_t size);
+       ssize_t (*getxattr_fn)(struct vfs_handle_struct *handle,
+                                       const struct smb_filename *smb_fname,
+                                       const char *name,
+                                       void *value,
+                                       size_t size);
        ssize_t (*fgetxattr_fn)(struct vfs_handle_struct *handle, struct 
files_struct *fsp, const char *name, void *value, size_t size);
-       ssize_t (*listxattr_fn)(struct vfs_handle_struct *handle, const char 
*path, char *list, size_t size);
+       ssize_t (*listxattr_fn)(struct vfs_handle_struct *handle,
+                                       const struct smb_filename *smb_fname,
+                                       char *list,
+                                       size_t size);
        ssize_t (*flistxattr_fn)(struct vfs_handle_struct *handle, struct 
files_struct *fsp, char *list, size_t size);
-       int (*removexattr_fn)(struct vfs_handle_struct *handle, const char 
*path, const char *name);
+       int (*removexattr_fn)(struct vfs_handle_struct *handle,
+                                       const struct smb_filename *smb_fname,
+                                       const char *name);
        int (*fremovexattr_fn)(struct vfs_handle_struct *handle, struct 
files_struct *fsp, const char *name);
-       int (*setxattr_fn)(struct vfs_handle_struct *handle, const char *path, 
const char *name, const void *value, size_t size, int flags);
+       int (*setxattr_fn)(struct vfs_handle_struct *handle,
+                                       const struct smb_filename *smb_fname,
+                                       const char *name,
+                                       const void *value,
+                                       size_t size,
+                                       int flags);
        int (*fsetxattr_fn)(struct vfs_handle_struct *handle, struct 
files_struct *fsp, const char *name, const void *value, size_t size, int flags);
 
        /* aio operations */
@@ -1311,14 +1345,14 @@ int smb_vfs_call_chmod_acl(struct vfs_handle_struct 
*handle,
 int smb_vfs_call_fchmod_acl(struct vfs_handle_struct *handle,
                            struct files_struct *fsp, mode_t mode);
 SMB_ACL_T smb_vfs_call_sys_acl_get_file(struct vfs_handle_struct *handle,
-                                       const char *path_p,
+                                       const struct smb_filename *smb_fname,
                                        SMB_ACL_TYPE_T type,
                                        TALLOC_CTX *mem_ctx);
 SMB_ACL_T smb_vfs_call_sys_acl_get_fd(struct vfs_handle_struct *handle,
                                      struct files_struct *fsp,
                                      TALLOC_CTX *mem_ctx);
 int smb_vfs_call_sys_acl_blob_get_file(struct vfs_handle_struct *handle,
-                                      const char *path_p,
+                                      const struct smb_filename *smb_fname,
                                       TALLOC_CTX *mem_ctx,
                                       char **blob_description,
                                       DATA_BLOB *blob);
@@ -1328,32 +1362,41 @@ int smb_vfs_call_sys_acl_blob_get_fd(struct 
vfs_handle_struct *handle,
                                     char **blob_description,
                                     DATA_BLOB *blob);
 int smb_vfs_call_sys_acl_set_file(struct vfs_handle_struct *handle,
-                                 const char *name, SMB_ACL_TYPE_T acltype,
-                                 SMB_ACL_T theacl);
+                               const struct smb_filename *smb_fname,
+                               SMB_ACL_TYPE_T acltype,
+                               SMB_ACL_T theacl);
 int smb_vfs_call_sys_acl_set_fd(struct vfs_handle_struct *handle,
                                struct files_struct *fsp, SMB_ACL_T theacl);
 int smb_vfs_call_sys_acl_delete_def_file(struct vfs_handle_struct *handle,
-                                        const char *path);
+                               const struct smb_filename *smb_fname);
 ssize_t smb_vfs_call_getxattr(struct vfs_handle_struct *handle,
-                             const char *path, const char *name, void *value,
-                             size_t size);
+                               const struct smb_filename *smb_fname,
+                               const char *name,
+                               void *value,
+                               size_t size);
 ssize_t smb_vfs_call_fgetxattr(struct vfs_handle_struct *handle,
                               struct files_struct *fsp, const char *name,
                               void *value, size_t size);
 ssize_t smb_vfs_call_listxattr(struct vfs_handle_struct *handle,
-                              const char *path, char *list, size_t size);
+                               const struct smb_filename *smb_fname,
+                               char *list,
+                               size_t size);
 ssize_t smb_vfs_call_llistxattr(struct vfs_handle_struct *handle,
                                const char *path, char *list, size_t size);
 ssize_t smb_vfs_call_flistxattr(struct vfs_handle_struct *handle,
                                struct files_struct *fsp, char *list,
                                size_t size);
 int smb_vfs_call_removexattr(struct vfs_handle_struct *handle,
-                            const char *path, const char *name);
+                               const struct smb_filename *smb_fname,
+                               const char *name);
 int smb_vfs_call_fremovexattr(struct vfs_handle_struct *handle,
                              struct files_struct *fsp, const char *name);
-int smb_vfs_call_setxattr(struct vfs_handle_struct *handle, const char *path,
-                         const char *name, const void *value, size_t size,
-                         int flags);
+int smb_vfs_call_setxattr(struct vfs_handle_struct *handle,
+                               const struct smb_filename *smb_fname,
+                               const char *name,
+                               const void *value,
+                               size_t size,
+                               int flags);
 int smb_vfs_call_lsetxattr(struct vfs_handle_struct *handle, const char *path,
                           const char *name, const void *value, size_t size,
                           int flags);
diff --git a/source3/include/vfs_macros.h b/source3/include/vfs_macros.h
index 0cbcf89..0ebd469 100644
--- a/source3/include/vfs_macros.h
+++ b/source3/include/vfs_macros.h
@@ -480,75 +480,75 @@
 #define SMB_VFS_NEXT_FCHMOD_ACL(handle, fsp, mode) \
        smb_vfs_call_fchmod_acl((handle)->next, (fsp), (mode))
 
-#define SMB_VFS_SYS_ACL_GET_FILE(conn, path_p, type, mem_ctx)          \
-       smb_vfs_call_sys_acl_get_file((conn)->vfs_handles, (path_p), (type), 
(mem_ctx))
-#define SMB_VFS_NEXT_SYS_ACL_GET_FILE(handle, path_p, type, mem_ctx)           
\
-       smb_vfs_call_sys_acl_get_file((handle)->next, (path_p), (type), 
(mem_ctx))
+#define SMB_VFS_SYS_ACL_GET_FILE(conn, smb_fname, type, mem_ctx)               
\
+       smb_vfs_call_sys_acl_get_file((conn)->vfs_handles, (smb_fname), (type), 
(mem_ctx))
+#define SMB_VFS_NEXT_SYS_ACL_GET_FILE(handle, smb_fname, type, mem_ctx)        
        \
+       smb_vfs_call_sys_acl_get_file((handle)->next, (smb_fname), (type), 
(mem_ctx))
 
 #define SMB_VFS_SYS_ACL_GET_FD(fsp, mem_ctx) \
        smb_vfs_call_sys_acl_get_fd((fsp)->conn->vfs_handles, (fsp), (mem_ctx))
 #define SMB_VFS_NEXT_SYS_ACL_GET_FD(handle, fsp, mem_ctx) \
        smb_vfs_call_sys_acl_get_fd((handle)->next, (fsp), (mem_ctx))
 
-#define SMB_VFS_SYS_ACL_BLOB_GET_FILE(conn, path_p, mem_ctx, blob_description, 
blob)   \
-       smb_vfs_call_sys_acl_blob_get_file((conn)->vfs_handles, (path_p), 
(mem_ctx), (blob_description), (blob))
-#define SMB_VFS_NEXT_SYS_ACL_BLOB_GET_FILE(handle, path_p, mem_ctx, 
blob_description, blob) \
-       smb_vfs_call_sys_acl_blob_get_file((handle)->next, (path_p), (mem_ctx), 
(blob_description), (blob))
+#define SMB_VFS_SYS_ACL_BLOB_GET_FILE(conn, smb_fname, mem_ctx, 
blob_description, blob)        \
+       smb_vfs_call_sys_acl_blob_get_file((conn)->vfs_handles, (smb_fname), 
(mem_ctx), (blob_description), (blob))
+#define SMB_VFS_NEXT_SYS_ACL_BLOB_GET_FILE(handle, smb_fname, mem_ctx, 
blob_description, blob) \
+       smb_vfs_call_sys_acl_blob_get_file((handle)->next, (smb_fname), 
(mem_ctx), (blob_description), (blob))
 
 #define SMB_VFS_SYS_ACL_BLOB_GET_FD(fsp, mem_ctx, blob_description, blob)      
                \
        smb_vfs_call_sys_acl_blob_get_fd((fsp)->conn->vfs_handles, (fsp), 
(mem_ctx), (blob_description), (blob))
 #define SMB_VFS_NEXT_SYS_ACL_BLOB_GET_FD(handle, fsp, mem_ctx, 
blob_description, blob) \
        smb_vfs_call_sys_acl_blob_get_fd((handle)->next, (fsp), mem_ctx, 
(blob_description), (blob))
 
-#define SMB_VFS_SYS_ACL_SET_FILE(conn, name, acltype, theacl) \
-       smb_vfs_call_sys_acl_set_file((conn)->vfs_handles, (name), (acltype), 
(theacl))
-#define SMB_VFS_NEXT_SYS_ACL_SET_FILE(handle, name, acltype, theacl) \
-       smb_vfs_call_sys_acl_set_file((handle)->next, (name), (acltype), 
(theacl))
+#define SMB_VFS_SYS_ACL_SET_FILE(conn, smb_fname, acltype, theacl) \
+       smb_vfs_call_sys_acl_set_file((conn)->vfs_handles, (smb_fname), 
(acltype), (theacl))
+#define SMB_VFS_NEXT_SYS_ACL_SET_FILE(handle, smb_fname, acltype, theacl) \
+       smb_vfs_call_sys_acl_set_file((handle)->next, (smb_fname), (acltype), 
(theacl))
 
 #define SMB_VFS_SYS_ACL_SET_FD(fsp, theacl) \
        smb_vfs_call_sys_acl_set_fd((fsp)->conn->vfs_handles, (fsp), (theacl))
 #define SMB_VFS_NEXT_SYS_ACL_SET_FD(handle, fsp, theacl) \
        smb_vfs_call_sys_acl_set_fd((handle)->next, (fsp), (theacl))
 
-#define SMB_VFS_SYS_ACL_DELETE_DEF_FILE(conn, path) \
-       smb_vfs_call_sys_acl_delete_def_file((conn)->vfs_handles, (path))
-#define SMB_VFS_NEXT_SYS_ACL_DELETE_DEF_FILE(handle, path) \
-       smb_vfs_call_sys_acl_delete_def_file((handle)->next, (path))
+#define SMB_VFS_SYS_ACL_DELETE_DEF_FILE(conn, smb_fname) \
+       smb_vfs_call_sys_acl_delete_def_file((conn)->vfs_handles, (smb_fname))
+#define SMB_VFS_NEXT_SYS_ACL_DELETE_DEF_FILE(handle, smb_fname) \
+       smb_vfs_call_sys_acl_delete_def_file((handle)->next, (smb_fname))
 
-#define SMB_VFS_GETXATTR(conn,path,name,value,size) \
-       smb_vfs_call_getxattr((conn)->vfs_handles,(path),(name),(value),(size))
-#define SMB_VFS_NEXT_GETXATTR(handle,path,name,value,size) \
-       smb_vfs_call_getxattr((handle)->next,(path),(name),(value),(size))
+#define SMB_VFS_GETXATTR(conn,smb_fname,name,value,size) \
+       
smb_vfs_call_getxattr((conn)->vfs_handles,(smb_fname),(name),(value),(size))
+#define SMB_VFS_NEXT_GETXATTR(handle,smb_fname,name,value,size) \
+       smb_vfs_call_getxattr((handle)->next,(smb_fname),(name),(value),(size))
 
 #define SMB_VFS_FGETXATTR(fsp,name,value,size) \


-- 
Samba Shared Repository

Reply via email to