[SCM] Samba Shared Repository - branch master updated

Ralph Böhme slow at samba.org
Wed Sep 11 19:45:03 UTC 2019


The branch, master has been updated
       via  c7167e7a829 s3: VFS: Complete the replacement of SMB_VFS_MKDIR() -> SMB_VFS_MKDIRAT().
       via  2cd27f47246 s3: VFS: vfs_time_audit. Remove mkdir_fn(). No longer used.
       via  d992708d3d5 s3: VFS: vfs_full_audit. Remove mkdir_fn(). No longer used.
       via  a6f238f6e75 s3: VFS: vfs_xattr_tdb. Remove mkdir_fn(). No longer used.
       via  fcccf3ea96e s3: VFS: vfs_unityed_media. Remove mkdir_fn(). No longer used.
       via  0a8bd881890 s3: VFS: vfs_syncops. Remove mkdir_fn(). No longer used.
       via  12ab9553d4c s3: VFS: vfs_snapper. Remove mkdir_fn(). No longer used.
       via  8470fe4ad0a s3: VFS: vfs_shadow_copy2. Remove mkdir_fn(). No longer used.
       via  c33eee0232f s3: VFS: vfs_media_harmony. Remove mkdir_fn(). No longer used.
       via  88fa32fb695 s3: VFS: vfs_linux_xfs_sgid. Remove mkdir_fn(). No longer used.
       via  6673d23b34a s3: VFS: vfs_glusterfs. Remove mkdir_fn(). No longer used.
       via  79f4b1339af s3: VFS: vfs_extd_audit. Remove mkdir_fn(). No longer used.
       via  fa9f83d304b s3: VFS: vfs_ceph_snapshots. Remove mkdir_fn(). No longer used.
       via  abbd55ff4cf s3: VFS: vfs_ceph. Remove mkdir_fn(). No longer used.
       via  33221ac5270 s3: VFS: vfs_catia. Remove mkdir_fn(). No longer used.
       via  450d3925517 s3: VFS: vfs_cap. Remove mkdir_fn(). No longer used.
       via  71833b22459 s3: VFS: vfs_audit. Remove mkdir_fn(). No longer used.
       via  99e04578e35 s3: smbd: Change mkdir_internal() to call SMB_VFS_MKDIRAT().
       via  e4e819c0873 s3: pysmbd: Change py_smbd_mkdir() to call SMB_VFS_MKDIRAT().
       via  d2e62772d53 s3: VFS: vfs_virusfilter: Change use of SMB_VFS_NEXT_MKDIR -> SMB_VFS_NEXT_MKDIRAT.
       via  ea93b756cb2 s3: VFS: vfs_streams_depot: Change use of SMB_VFS_NEXT_MKDIR -> SMB_VFS_NEXT_MKDIRAT.
       via  497c27a4694 s3: VFS: vfs_recycle: Change use of SMB_VFS_NEXT_MKDIR -> SMB_VFS_NEXT_MKDIRAT.
       via  91e24b04de0 s3: torture: Change cmd_mkdir to call SMB_VFS_MKDIRAT().
       via  a799866f2b4 s3: VFS: vfs_xattr_tdb. Implement mkdirat().
       via  63132f8b041 s3: VFS: vfs_unityed_media. Implement mkdirat().
       via  b691df9c2f8 s3: VFS: vfs_time_audit. Implement mkdirat().
       via  ef5bb79677f s3: VFS: vfs_syncops. Implement mkdirat().
       via  41f9c49eec2 s3: VFS: vfs_snapper. Implement mkdirat().
       via  1bcd799517c s3: VFS: vfs_shadow_copy2. Implement mkdirat().
       via  0999e686515 s3: VFS: vfs_media_harmony. Implement mkdirat().
       via  5dc885a7421 s3: VFS: vfs_xfs_sgid. Implement mkdirat().
       via  e55ee2968de s3: VFS: vfs_glusterfs. Implement mkdirat().
       via  d444cd4e46b s3: VFS: vfs_full_audit. Implement mkdirat().
       via  d5ac30233e3 s3: VFS: vfs_extd_audit. Implement mkdirat().
       via  0c5825debf5 s3: VFS: vfs_ceph_snapshots. Implement mkdirat().
       via  808bc3979f5 s3: VFS: vfs_ceph. Implement mkdirat().
       via  be61efc8bc4 s3: VFS: vfs_catia. Implement mkdirat().
       via  84cb7db8b7a s3: VFS: vfs_cap. Implement mkdirat().
       via  6a24668f23d s3: VFS: vfs_audit. Implement mkdirat().
       via  ca3bc780994 s3: VFS: Add SMB_VFS_MKDIRAT().
       via  5e7828faf3b s3: pysmbd: Ensure conn->cwd_fsp member of created connections is initialized.
       via  d9d704b01e2 s3: torture: vfstest: Change from create_conn_struct_tos() -> create_conn_struct_tos_cwd().
       via  0c0ca0dbd7a s3: smbd: profile: Remove syscall_symlink entry now syscall is no longer used.
      from  bdda10875ed s3:smbd: skip write-time fetching for directories.

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


- Log -----------------------------------------------------------------
commit c7167e7a82974ee9a07448a1de61c523a58896c9
Author: Jeremy Allison <jra at samba.org>
Date:   Fri Sep 6 16:01:20 2019 -0700

    s3: VFS: Complete the replacement of SMB_VFS_MKDIR() -> SMB_VFS_MKDIRAT().
    
    Signed-off-by: Jeremy Allison <jra at samba.org>
    Reviewed-by: Ralph Boehme <slow at samba.org>
    
    Autobuild-User(master): Ralph Böhme <slow at samba.org>
    Autobuild-Date(master): Wed Sep 11 19:44:44 UTC 2019 on sn-devel-184

commit 2cd27f472463a9ff68d1c7ef84e6cc26998469d5
Author: Jeremy Allison <jra at samba.org>
Date:   Fri Sep 6 15:53:12 2019 -0700

    s3: VFS: vfs_time_audit. Remove mkdir_fn(). No longer used.
    
    NB, this will now fail smb_vfs_assert_all_fns()
    until we remove the mkdir_fn() from the VFS definitions.
    
    Signed-off-by: Jeremy Allison <jra at samba.org>
    Reviewed-by: Ralph Boehme <slow at samba.org>

commit d992708d3d51d86391f218ac72127fbc91d1971b
Author: Jeremy Allison <jra at samba.org>
Date:   Fri Sep 6 15:52:14 2019 -0700

    s3: VFS: vfs_full_audit. Remove mkdir_fn(). No longer used.
    
    NB, this will now fail smb_vfs_assert_all_fns()
    until we remove the mkdir_fn() from the VFS definitions.
    
    Signed-off-by: Jeremy Allison <jra at samba.org>
    Reviewed-by: Ralph Boehme <slow at samba.org>

commit a6f238f6e7567fe62b4b6f883898201518ac84d8
Author: Jeremy Allison <jra at samba.org>
Date:   Fri Sep 6 15:50:58 2019 -0700

    s3: VFS: vfs_xattr_tdb. Remove mkdir_fn(). No longer used.
    
    Signed-off-by: Jeremy Allison <jra at samba.org>
    Reviewed-by: Ralph Boehme <slow at samba.org>

commit fcccf3ea96ed046d30fa771506ce1990757c01d0
Author: Jeremy Allison <jra at samba.org>
Date:   Fri Sep 6 15:50:19 2019 -0700

    s3: VFS: vfs_unityed_media. Remove mkdir_fn(). No longer used.
    
    Signed-off-by: Jeremy Allison <jra at samba.org>
    Reviewed-by: Ralph Boehme <slow at samba.org>

commit 0a8bd88189090f71fd10e87f53b3cdf83929d501
Author: Jeremy Allison <jra at samba.org>
Date:   Fri Sep 6 15:49:37 2019 -0700

    s3: VFS: vfs_syncops. Remove mkdir_fn(). No longer used.
    
    Signed-off-by: Jeremy Allison <jra at samba.org>
    Reviewed-by: Ralph Boehme <slow at samba.org>

commit 12ab9553d4c66393c92c498a26436bc16f3f009b
Author: Jeremy Allison <jra at samba.org>
Date:   Fri Sep 6 15:49:01 2019 -0700

    s3: VFS: vfs_snapper. Remove mkdir_fn(). No longer used.
    
    Signed-off-by: Jeremy Allison <jra at samba.org>
    Reviewed-by: Ralph Boehme <slow at samba.org>

commit 8470fe4ad0a606974636c009eaf194ccb0102fc3
Author: Jeremy Allison <jra at samba.org>
Date:   Fri Sep 6 15:48:20 2019 -0700

    s3: VFS: vfs_shadow_copy2. Remove mkdir_fn(). No longer used.
    
    Signed-off-by: Jeremy Allison <jra at samba.org>
    Reviewed-by: Ralph Boehme <slow at samba.org>

commit c33eee0232f2ccc822dfb8da254e40c58afafdf0
Author: Jeremy Allison <jra at samba.org>
Date:   Fri Sep 6 15:47:40 2019 -0700

    s3: VFS: vfs_media_harmony. Remove mkdir_fn(). No longer used.
    
    Signed-off-by: Jeremy Allison <jra at samba.org>
    Reviewed-by: Ralph Boehme <slow at samba.org>

commit 88fa32fb6950d3f06658814d6d0420c120ec6272
Author: Jeremy Allison <jra at samba.org>
Date:   Fri Sep 6 15:46:58 2019 -0700

    s3: VFS: vfs_linux_xfs_sgid. Remove mkdir_fn(). No longer used.
    
    Signed-off-by: Jeremy Allison <jra at samba.org>
    Reviewed-by: Ralph Boehme <slow at samba.org>

commit 6673d23b34a1dcfe1eef3f565e9b82a89087c52c
Author: Jeremy Allison <jra at samba.org>
Date:   Fri Sep 6 15:46:08 2019 -0700

    s3: VFS: vfs_glusterfs. Remove mkdir_fn(). No longer used.
    
    Signed-off-by: Jeremy Allison <jra at samba.org>
    Reviewed-by: Ralph Boehme <slow at samba.org>

commit 79f4b1339af084d7ed2ca00de700d190e252413a
Author: Jeremy Allison <jra at samba.org>
Date:   Fri Sep 6 15:45:25 2019 -0700

    s3: VFS: vfs_extd_audit. Remove mkdir_fn(). No longer used.
    
    Signed-off-by: Jeremy Allison <jra at samba.org>
    Reviewed-by: Ralph Boehme <slow at samba.org>

commit fa9f83d304bc9bce9c3eb04affbc19795aa70424
Author: Jeremy Allison <jra at samba.org>
Date:   Fri Sep 6 15:44:36 2019 -0700

    s3: VFS: vfs_ceph_snapshots. Remove mkdir_fn(). No longer used.
    
    Signed-off-by: Jeremy Allison <jra at samba.org>
    Reviewed-by: Ralph Boehme <slow at samba.org>

commit abbd55ff4cf47bbf3f48f34ed0738406ef419f81
Author: Jeremy Allison <jra at samba.org>
Date:   Fri Sep 6 15:43:50 2019 -0700

    s3: VFS: vfs_ceph. Remove mkdir_fn(). No longer used.
    
    Signed-off-by: Jeremy Allison <jra at samba.org>
    Reviewed-by: Ralph Boehme <slow at samba.org>

commit 33221ac5270641346fddd20e866b3df327823bd5
Author: Jeremy Allison <jra at samba.org>
Date:   Fri Sep 6 15:43:03 2019 -0700

    s3: VFS: vfs_catia. Remove mkdir_fn(). No longer used.
    
    Signed-off-by: Jeremy Allison <jra at samba.org>
    Reviewed-by: Ralph Boehme <slow at samba.org>

commit 450d392551753b7a2d4b0972adea2388f60aa89a
Author: Jeremy Allison <jra at samba.org>
Date:   Fri Sep 6 15:42:10 2019 -0700

    s3: VFS: vfs_cap. Remove mkdir_fn(). No longer used.
    
    Signed-off-by: Jeremy Allison <jra at samba.org>
    Reviewed-by: Ralph Boehme <slow at samba.org>

commit 71833b224595054ed0235a37f3d169c11f47c8bd
Author: Jeremy Allison <jra at samba.org>
Date:   Fri Sep 6 15:10:38 2019 -0700

    s3: VFS: vfs_audit. Remove mkdir_fn(). No longer used.
    
    Signed-off-by: Jeremy Allison <jra at samba.org>
    Reviewed-by: Ralph Boehme <slow at samba.org>

commit 99e04578e35d630930e03ee1120b2a432a0edccd
Author: Jeremy Allison <jra at samba.org>
Date:   Fri Sep 6 15:05:36 2019 -0700

    s3: smbd: Change mkdir_internal() to call SMB_VFS_MKDIRAT().
    
    Use conn->cwd_fsp as current fsp.
    
    No logic change for now.
    
    Signed-off-by: Jeremy Allison <jra at samba.org>
    Reviewed-by: Ralph Boehme <slow at samba.org>

commit e4e819c08736d73c046a6fba7437edc690fc9698
Author: Jeremy Allison <jra at samba.org>
Date:   Fri Sep 6 15:03:50 2019 -0700

    s3: pysmbd: Change py_smbd_mkdir() to call SMB_VFS_MKDIRAT().
    
    Use conn->cwd_fsp as current fsp.
    
    No logic change for now.
    
    Signed-off-by: Jeremy Allison <jra at samba.org>
    Reviewed-by: Ralph Boehme <slow at samba.org>

commit d2e62772d53c3e4bec730a9bad6808f008675cd0
Author: Jeremy Allison <jra at samba.org>
Date:   Fri Sep 6 10:06:23 2019 -0700

    s3: VFS: vfs_virusfilter: Change use of SMB_VFS_NEXT_MKDIR -> SMB_VFS_NEXT_MKDIRAT.
    
    Use conn->cwd_fsp as current fsp.
    
    No logic change for now.
    
    Signed-off-by: Jeremy Allison <jra at samba.org>
    Reviewed-by: Ralph Boehme <slow at samba.org>

commit ea93b756cb23e37d367a07480a50666633b21ef9
Author: Jeremy Allison <jra at samba.org>
Date:   Fri Sep 6 10:02:27 2019 -0700

    s3: VFS: vfs_streams_depot: Change use of SMB_VFS_NEXT_MKDIR -> SMB_VFS_NEXT_MKDIRAT.
    
    Use conn->cwd_fsp as current fsp.
    
    No logic change for now.
    
    Signed-off-by: Jeremy Allison <jra at samba.org>
    Reviewed-by: Ralph Boehme <slow at samba.org>

commit 497c27a4694f9563145c4de90af753e747c5ad0c
Author: Jeremy Allison <jra at samba.org>
Date:   Fri Sep 6 09:51:47 2019 -0700

    s3: VFS: vfs_recycle: Change use of SMB_VFS_NEXT_MKDIR -> SMB_VFS_NEXT_MKDIRAT.
    
    Use conn->cwd_fsp as current fsp.
    
    No logic change for now.
    
    Signed-off-by: Jeremy Allison <jra at samba.org>
    Reviewed-by: Ralph Boehme <slow at samba.org>

commit 91e24b04de059c9e3490904373f1e92db6896486
Author: Jeremy Allison <jra at samba.org>
Date:   Thu Sep 5 11:27:42 2019 -0700

    s3: torture: Change cmd_mkdir to call SMB_VFS_MKDIRAT().
    
    Use conn->cwd_fsp as current fsp.
    
    No logic change for now.
    
    Signed-off-by: Jeremy Allison <jra at samba.org>
    Reviewed-by: Ralph Boehme <slow at samba.org>

commit a799866f2b4e7c38b09140af47ad165172aaf544
Author: Jeremy Allison <jra at samba.org>
Date:   Thu Sep 5 11:09:40 2019 -0700

    s3: VFS: vfs_xattr_tdb. Implement mkdirat().
    
    Currently identical to mkdir().
    
    Signed-off-by: Jeremy Allison <jra at samba.org>
    Reviewed-by: Ralph Boehme <slow at samba.org>

commit 63132f8b0418c6d0ed7b664d865724d657b8606a
Author: Jeremy Allison <jra at samba.org>
Date:   Thu Sep 5 11:08:05 2019 -0700

    s3: VFS: vfs_unityed_media. Implement mkdirat().
    
    Currently identical to mkdir().
    
    Signed-off-by: Jeremy Allison <jra at samba.org>
    Reviewed-by: Ralph Boehme <slow at samba.org>

commit b691df9c2f8a8158c0892c7461cf7ccdbe9ed1b1
Author: Jeremy Allison <jra at samba.org>
Date:   Thu Sep 5 11:03:29 2019 -0700

    s3: VFS: vfs_time_audit. Implement mkdirat().
    
    Currently identical to mkdir().
    
    Signed-off-by: Jeremy Allison <jra at samba.org>
    Reviewed-by: Ralph Boehme <slow at samba.org>

commit ef5bb79677f4a2cca613478c5d4b006d64b67f1b
Author: Jeremy Allison <jra at samba.org>
Date:   Thu Sep 5 10:40:04 2019 -0700

    s3: VFS: vfs_syncops. Implement mkdirat().
    
    Currently identical to mkdir().
    
    Signed-off-by: Jeremy Allison <jra at samba.org>
    Reviewed-by: Ralph Boehme <slow at samba.org>

commit 41f9c49eec2ed6a9a796064349d06c38bc1477fc
Author: Jeremy Allison <jra at samba.org>
Date:   Thu Sep 5 10:33:38 2019 -0700

    s3: VFS: vfs_snapper. Implement mkdirat().
    
    Currently identical to mkdir().
    
    Signed-off-by: Jeremy Allison <jra at samba.org>
    Reviewed-by: Ralph Boehme <slow at samba.org>

commit 1bcd799517c76f31c79006fc71ed99f258e19073
Author: Jeremy Allison <jra at samba.org>
Date:   Thu Sep 5 10:32:18 2019 -0700

    s3: VFS: vfs_shadow_copy2. Implement mkdirat().
    
    Currently identical to mkdir().
    
    Signed-off-by: Jeremy Allison <jra at samba.org>
    Reviewed-by: Ralph Boehme <slow at samba.org>

commit 0999e6865154c2fae67961c76acfb4ae6ab505d5
Author: Jeremy Allison <jra at samba.org>
Date:   Thu Sep 5 10:26:53 2019 -0700

    s3: VFS: vfs_media_harmony. Implement mkdirat().
    
    Currently identical to mkdir().
    
    Signed-off-by: Jeremy Allison <jra at samba.org>
    Reviewed-by: Ralph Boehme <slow at samba.org>

commit 5dc885a742107a8bc73262af8e7da044feab3d3e
Author: Jeremy Allison <jra at samba.org>
Date:   Thu Sep 5 10:15:18 2019 -0700

    s3: VFS: vfs_xfs_sgid. Implement mkdirat().
    
    Currently identical to mkdir().
    
    Signed-off-by: Jeremy Allison <jra at samba.org>
    Reviewed-by: Ralph Boehme <slow at samba.org>

commit e55ee2968de3a3d1822062c11d53d383894b7c44
Author: Jeremy Allison <jra at samba.org>
Date:   Thu Sep 5 09:33:32 2019 -0700

    s3: VFS: vfs_glusterfs. Implement mkdirat().
    
    Currently identical to mkdir().
    
    Signed-off-by: Jeremy Allison <jra at samba.org>
    Reviewed-by: Ralph Boehme <slow at samba.org>

commit d444cd4e46b836ef643bff26d940a1c5b2f3be0d
Author: Jeremy Allison <jra at samba.org>
Date:   Wed Sep 4 15:48:23 2019 -0700

    s3: VFS: vfs_full_audit. Implement mkdirat().
    
    Currently identical to mkdir().
    
    Signed-off-by: Jeremy Allison <jra at samba.org>
    Reviewed-by: Ralph Boehme <slow at samba.org>

commit d5ac30233e36072a899463b18694a24872e865dc
Author: Jeremy Allison <jra at samba.org>
Date:   Wed Sep 4 15:46:08 2019 -0700

    s3: VFS: vfs_extd_audit. Implement mkdirat().
    
    Currently identical to mkdir().
    
    Signed-off-by: Jeremy Allison <jra at samba.org>
    Reviewed-by: Ralph Boehme <slow at samba.org>

commit 0c5825debf5208c3629e55b9ec946ff3021fb1e6
Author: Jeremy Allison <jra at samba.org>
Date:   Wed Sep 4 15:43:44 2019 -0700

    s3: VFS: vfs_ceph_snapshots. Implement mkdirat().
    
    Currently identical to mkdir().
    
    Signed-off-by: Jeremy Allison <jra at samba.org>
    Reviewed-by: Ralph Boehme <slow at samba.org>

commit 808bc3979f5ababbdc1b85a9566af47c4febf480
Author: Jeremy Allison <jra at samba.org>
Date:   Wed Sep 4 15:14:54 2019 -0700

    s3: VFS: vfs_ceph. Implement mkdirat().
    
    Currently identical to mkdir().
    
    Signed-off-by: Jeremy Allison <jra at samba.org>
    Reviewed-by: Ralph Boehme <slow at samba.org>

commit be61efc8bc4be9b6db2e08b1eed6e458fc6f612c
Author: Jeremy Allison <jra at samba.org>
Date:   Wed Sep 4 13:55:17 2019 -0700

    s3: VFS: vfs_catia. Implement mkdirat().
    
    Currently identical to mkdir().
    
    Signed-off-by: Jeremy Allison <jra at samba.org>
    Reviewed-by: Ralph Boehme <slow at samba.org>

commit 84cb7db8b7a9658f668d933d54393efd69c3c41a
Author: Jeremy Allison <jra at samba.org>
Date:   Wed Sep 4 13:53:43 2019 -0700

    s3: VFS: vfs_cap. Implement mkdirat().
    
    Currently identical to mkdir().
    
    Signed-off-by: Jeremy Allison <jra at samba.org>
    Reviewed-by: Ralph Boehme <slow at samba.org>

commit 6a24668f23d2b58bd5076e7349efaa84c7a17548
Author: Jeremy Allison <jra at samba.org>
Date:   Wed Sep 4 13:38:56 2019 -0700

    s3: VFS: vfs_audit. Implement mkdirat().
    
    Currently identical to mkdir().
    
    Signed-off-by: Jeremy Allison <jra at samba.org>
    Reviewed-by: Ralph Boehme <slow at samba.org>

commit ca3bc7809949c593fd545047a898348d2f5c4da4
Author: Jeremy Allison <jra at samba.org>
Date:   Wed Sep 4 12:20:46 2019 -0700

    s3: VFS: Add SMB_VFS_MKDIRAT().
    
    Currently identical to SMB_VFS_MKDIR().
    
    Next, add to all VFS modules that implement
    mkdir and eventually remove mkdir.
    
    Signed-off-by: Jeremy Allison <jra at samba.org>
    Reviewed-by: Ralph Boehme <slow at samba.org>

commit 5e7828faf3b76c82781e8707d7d7ef990224bd7e
Author: Jeremy Allison <jra at samba.org>
Date:   Fri Sep 6 14:51:29 2019 -0700

    s3: pysmbd: Ensure conn->cwd_fsp member of created connections is initialized.
    
    This is needed to correctly call the XXXAT() vfs calls.
    
    We should probably just use create_conn_struct_tos_cwd() here
    and pass $cwd instead of using create_conn_struct_tos() and
    passing "/" as the share root. We wouldn't change the current
    working directory and the created share root would be set to $cwd
    but I'm not sure what effects this may have on users of pysmbd
    in case any of them pass paths above the $cwd to these functions.
    
    Less changes to just call vfs_ChDir(conn, &cwd) which doesn't
    change the current directory and leaves the share root as "/".
    
    Signed-off-by: Jeremy Allison <jra at samba.org>
    Reviewed-by: Ralph Boehme <slow at samba.org>

commit d9d704b01e21fbc6b05164a5d1fee772f1836fa9
Author: Jeremy Allison <jra at samba.org>
Date:   Fri Sep 6 14:05:43 2019 -0700

    s3: torture: vfstest: Change from create_conn_struct_tos() -> create_conn_struct_tos_cwd().
    
    This does a vfs_ChDir() to the share root (not changing the
    directory) which correctly sets up the conn->cwd_fsp member
    so any XXXAT() calls correctly work inside vfstest.
    
    Signed-off-by: Jeremy Allison <jra at samba.org>
    Reviewed-by: Ralph Boehme <slow at samba.org>

commit 0c0ca0dbd7a7a6512b37ca8a186d814eed47b373
Author: Jeremy Allison <jra at samba.org>
Date:   Fri Sep 6 16:02:00 2019 -0700

    s3: smbd: profile: Remove syscall_symlink entry now syscall is no longer used.
    
    Missed as part of the previous replacement of symlink -> symlinkat.
    
    Signed-off-by: Jeremy Allison <jra at samba.org>
    Reviewed-by: Ralph Boehme <slow at samba.org>

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

Summary of changes:
 examples/VFS/skel_opaque.c            |  5 +++--
 examples/VFS/skel_transparent.c       | 10 +++++++---
 source3/include/smbprofile.h          |  3 +--
 source3/include/vfs.h                 | 10 +++++++---
 source3/include/vfs_macros.h          |  8 ++++----
 source3/modules/vfs_audit.c           | 16 ++++++++++------
 source3/modules/vfs_cap.c             | 10 +++++++---
 source3/modules/vfs_catia.c           | 14 +++++++++-----
 source3/modules/vfs_ceph.c            | 11 +++++++----
 source3/modules/vfs_ceph_snapshots.c  | 10 +++++++---
 source3/modules/vfs_default.c         | 13 ++++++++-----
 source3/modules/vfs_extd_audit.c      | 14 +++++++++-----
 source3/modules/vfs_full_audit.c      | 23 ++++++++++++++---------
 source3/modules/vfs_glusterfs.c       | 15 +++++++++------
 source3/modules/vfs_linux_xfs_sgid.c  | 15 ++++++++++-----
 source3/modules/vfs_media_harmony.c   | 18 ++++++++++++------
 source3/modules/vfs_not_implemented.c |  5 +++--
 source3/modules/vfs_recycle.c         | 12 ++++++++++--
 source3/modules/vfs_shadow_copy2.c    | 10 +++++++---
 source3/modules/vfs_snapper.c         | 10 +++++++---
 source3/modules/vfs_streams_depot.c   | 29 +++++++++++++++++++++--------
 source3/modules/vfs_syncops.c         | 12 +++++++++---
 source3/modules/vfs_time_audit.c      | 12 ++++++++----
 source3/modules/vfs_unityed_media.c   | 19 +++++++++++++------
 source3/modules/vfs_virusfilter.c     |  5 +++--
 source3/modules/vfs_xattr_tdb.c       | 10 +++++++---
 source3/smbd/open.c                   |  7 ++++++-
 source3/smbd/pysmbd.c                 | 33 +++++++++++++++++++++++++++++++--
 source3/smbd/vfs.c                    | 10 +++++++---
 source3/torture/cmd_vfs.c             |  7 ++++++-
 source3/torture/vfstest.c             | 13 ++++++++++---
 31 files changed, 272 insertions(+), 117 deletions(-)


Changeset truncated at 500 lines:

diff --git a/examples/VFS/skel_opaque.c b/examples/VFS/skel_opaque.c
index 5a18268e6f4..c03a42fee04 100644
--- a/examples/VFS/skel_opaque.c
+++ b/examples/VFS/skel_opaque.c
@@ -165,7 +165,8 @@ static void skel_rewind_dir(vfs_handle_struct *handle, DIR *dirp)
 	;
 }
 
-static int skel_mkdir(vfs_handle_struct *handle,
+static int skel_mkdirat(vfs_handle_struct *handle,
+		struct files_struct *dirfsp,
 		const struct smb_filename *smb_fname,
 		mode_t mode)
 {
@@ -1050,7 +1051,7 @@ static struct vfs_fn_pointers skel_opaque_fns = {
 	.seekdir_fn = skel_seekdir,
 	.telldir_fn = skel_telldir,
 	.rewind_dir_fn = skel_rewind_dir,
-	.mkdir_fn = skel_mkdir,
+	.mkdirat_fn = skel_mkdirat,
 	.rmdir_fn = skel_rmdir,
 	.closedir_fn = skel_closedir,
 
diff --git a/examples/VFS/skel_transparent.c b/examples/VFS/skel_transparent.c
index 654c0e6ca85..656c933338a 100644
--- a/examples/VFS/skel_transparent.c
+++ b/examples/VFS/skel_transparent.c
@@ -164,11 +164,15 @@ static void skel_rewind_dir(vfs_handle_struct *handle, DIR *dirp)
 	SMB_VFS_NEXT_REWINDDIR(handle, dirp);
 }
 
-static int skel_mkdir(vfs_handle_struct *handle,
+static int skel_mkdirat(vfs_handle_struct *handle,
+		struct files_struct *dirfsp,
 		const struct smb_filename *smb_fname,
 		mode_t mode)
 {
-	return SMB_VFS_NEXT_MKDIR(handle, smb_fname, mode);
+	return SMB_VFS_NEXT_MKDIRAT(handle,
+			dirfsp,
+			smb_fname,
+			mode);
 }
 
 static int skel_rmdir(vfs_handle_struct *handle,
@@ -1332,7 +1336,7 @@ static struct vfs_fn_pointers skel_transparent_fns = {
 	.seekdir_fn = skel_seekdir,
 	.telldir_fn = skel_telldir,
 	.rewind_dir_fn = skel_rewind_dir,
-	.mkdir_fn = skel_mkdir,
+	.mkdirat_fn = skel_mkdirat,
 	.rmdir_fn = skel_rmdir,
 	.closedir_fn = skel_closedir,
 
diff --git a/source3/include/smbprofile.h b/source3/include/smbprofile.h
index 51761e11040..489a613e3df 100644
--- a/source3/include/smbprofile.h
+++ b/source3/include/smbprofile.h
@@ -48,7 +48,7 @@ struct tevent_context;
 	SMBPROFILE_STATS_BASIC(syscall_seekdir) \
 	SMBPROFILE_STATS_BASIC(syscall_telldir) \
 	SMBPROFILE_STATS_BASIC(syscall_rewinddir) \
-	SMBPROFILE_STATS_BASIC(syscall_mkdir) \
+	SMBPROFILE_STATS_BASIC(syscall_mkdirat) \
 	SMBPROFILE_STATS_BASIC(syscall_rmdir) \
 	SMBPROFILE_STATS_BASIC(syscall_closedir) \
 	SMBPROFILE_STATS_BASIC(syscall_open) \
@@ -83,7 +83,6 @@ struct tevent_context;
 	SMBPROFILE_STATS_BASIC(syscall_linux_setlease) \
 	SMBPROFILE_STATS_BASIC(syscall_fcntl_getlock) \
 	SMBPROFILE_STATS_BASIC(syscall_readlinkat) \
-	SMBPROFILE_STATS_BASIC(syscall_symlink) \
 	SMBPROFILE_STATS_BASIC(syscall_symlinkat) \
 	SMBPROFILE_STATS_BASIC(syscall_linkat) \
 	SMBPROFILE_STATS_BASIC(syscall_mknodat) \
diff --git a/source3/include/vfs.h b/source3/include/vfs.h
index 6c741e09919..d164e91e886 100644
--- a/source3/include/vfs.h
+++ b/source3/include/vfs.h
@@ -277,6 +277,7 @@
 /* Version 42 - Move SMB_VFS_MKNOD -> SMB_VFS_MKDNODAT. */
 /* Version 42 - Move SMB_VFS_READLINK -> SMB_VFS_READLINKAT. */
 /* Version 42 - Move SMB_VFS_SYMLINK -> SMB_VFS_SYMLINKAT. */
+/* Version 42 - Move SMB_VFS_MKDIR -> SMB_VFS_MKDIRAT. */
 
 #define SMB_VFS_INTERFACE_VERSION 42
 
@@ -698,7 +699,8 @@ struct vfs_fn_pointers {
 	void (*seekdir_fn)(struct vfs_handle_struct *handle, DIR *dirp, long offset);
 	long (*telldir_fn)(struct vfs_handle_struct *handle, DIR *dirp);
 	void (*rewind_dir_fn)(struct vfs_handle_struct *handle, DIR *dirp);
-	int (*mkdir_fn)(struct vfs_handle_struct *handle,
+	int (*mkdirat_fn)(struct vfs_handle_struct *handle,
+			struct files_struct *dirfsp,
 			const struct smb_filename *smb_fname,
 			mode_t mode);
 	int (*rmdir_fn)(struct vfs_handle_struct *handle,
@@ -1205,7 +1207,8 @@ long smb_vfs_call_telldir(struct vfs_handle_struct *handle,
 			  DIR *dirp);
 void smb_vfs_call_rewind_dir(struct vfs_handle_struct *handle,
 			     DIR *dirp);
-int smb_vfs_call_mkdir(struct vfs_handle_struct *handle,
+int smb_vfs_call_mkdirat(struct vfs_handle_struct *handle,
+			struct files_struct *dirfsp,
 			const struct smb_filename *smb_fname,
 			mode_t mode);
 int smb_vfs_call_rmdir(struct vfs_handle_struct *handle,
@@ -1652,7 +1655,8 @@ struct dirent *vfs_not_implemented_readdir(vfs_handle_struct *handle,
 void vfs_not_implemented_seekdir(vfs_handle_struct *handle, DIR *dirp, long offset);
 long vfs_not_implemented_telldir(vfs_handle_struct *handle, DIR *dirp);
 void vfs_not_implemented_rewind_dir(vfs_handle_struct *handle, DIR *dirp);
-int vfs_not_implemented_mkdir(vfs_handle_struct *handle,
+int vfs_not_implemented_mkdirat(vfs_handle_struct *handle,
+		struct files_struct *dirfsp,
 		const struct smb_filename *smb_fname,
 		mode_t mode);
 int vfs_not_implemented_rmdir(vfs_handle_struct *handle,
diff --git a/source3/include/vfs_macros.h b/source3/include/vfs_macros.h
index c43a7e5a4b5..6d95d840e25 100644
--- a/source3/include/vfs_macros.h
+++ b/source3/include/vfs_macros.h
@@ -109,10 +109,10 @@
 #define SMB_VFS_NEXT_REWINDDIR(handle, dirp) \
 	smb_vfs_call_rewind_dir((handle)->next, (dirp))
 
-#define SMB_VFS_MKDIR(conn, smb_fname, mode) \
-	smb_vfs_call_mkdir((conn)->vfs_handles,(smb_fname), (mode))
-#define SMB_VFS_NEXT_MKDIR(handle, smb_fname, mode) \
-	smb_vfs_call_mkdir((handle)->next,(smb_fname), (mode))
+#define SMB_VFS_MKDIRAT(conn, dirfsp, smb_fname, mode) \
+	smb_vfs_call_mkdirat((conn)->vfs_handles,(dirfsp), (smb_fname), (mode))
+#define SMB_VFS_NEXT_MKDIRAT(handle, dirfsp, smb_fname, mode) \
+	smb_vfs_call_mkdirat((handle)->next,(dirfsp), (smb_fname), (mode))
 
 #define SMB_VFS_RMDIR(conn, smb_fname) \
 	smb_vfs_call_rmdir((conn)->vfs_handles, (smb_fname))
diff --git a/source3/modules/vfs_audit.c b/source3/modules/vfs_audit.c
index 55f5dd52d01..718d13d7c9c 100644
--- a/source3/modules/vfs_audit.c
+++ b/source3/modules/vfs_audit.c
@@ -194,15 +194,19 @@ static DIR *audit_opendir(vfs_handle_struct *handle,
 	return result;
 }
 
-static int audit_mkdir(vfs_handle_struct *handle,
+static int audit_mkdirat(vfs_handle_struct *handle,
+		struct files_struct *dirfsp,
 		const struct smb_filename *smb_fname,
 		mode_t mode)
 {
 	int result;
-	
-	result = SMB_VFS_NEXT_MKDIR(handle, smb_fname, mode);
-	
-	syslog(audit_syslog_priority(handle), "mkdir %s %s%s\n", 
+
+	result = SMB_VFS_NEXT_MKDIRAT(handle,
+			dirfsp,
+			smb_fname,
+			mode);
+
+	syslog(audit_syslog_priority(handle), "mkdirat %s %s%s\n",
 	       smb_fname->base_name,
 	       (result < 0) ? "failed: " : "",
 	       (result < 0) ? strerror(errno) : "");
@@ -329,7 +333,7 @@ static struct vfs_fn_pointers vfs_audit_fns = {
 	.connect_fn = audit_connect,
 	.disconnect_fn = audit_disconnect,
 	.opendir_fn = audit_opendir,
-	.mkdir_fn = audit_mkdir,
+	.mkdirat_fn = audit_mkdirat,
 	.rmdir_fn = audit_rmdir,
 	.open_fn = audit_open,
 	.close_fn = audit_close,
diff --git a/source3/modules/vfs_cap.c b/source3/modules/vfs_cap.c
index 9999901056a..683e4fbc6d4 100644
--- a/source3/modules/vfs_cap.c
+++ b/source3/modules/vfs_cap.c
@@ -139,7 +139,8 @@ static struct dirent *cap_readdir(vfs_handle_struct *handle,
 	return newdirent;
 }
 
-static int cap_mkdir(vfs_handle_struct *handle,
+static int cap_mkdirat(vfs_handle_struct *handle,
+		struct files_struct *dirfsp,
 		const struct smb_filename *smb_fname,
 		mode_t mode)
 {
@@ -162,7 +163,10 @@ static int cap_mkdir(vfs_handle_struct *handle,
 		return -1;
 	}
 
-	return SMB_VFS_NEXT_MKDIR(handle, cap_smb_fname, mode);
+	return SMB_VFS_NEXT_MKDIRAT(handle,
+			dirfsp,
+			cap_smb_fname,
+			mode);
 }
 
 static int cap_rmdir(vfs_handle_struct *handle,
@@ -1031,7 +1035,7 @@ static struct vfs_fn_pointers vfs_cap_fns = {
 	.get_quota_fn = cap_get_quota,
 	.opendir_fn = cap_opendir,
 	.readdir_fn = cap_readdir,
-	.mkdir_fn = cap_mkdir,
+	.mkdirat_fn = cap_mkdirat,
 	.rmdir_fn = cap_rmdir,
 	.open_fn = cap_open,
 	.renameat_fn = cap_renameat,
diff --git a/source3/modules/vfs_catia.c b/source3/modules/vfs_catia.c
index caeb25a97dd..46a4e1ed0bd 100644
--- a/source3/modules/vfs_catia.c
+++ b/source3/modules/vfs_catia.c
@@ -854,9 +854,10 @@ static int catia_rmdir(vfs_handle_struct *handle,
 	return ret;
 }
 
-static int catia_mkdir(vfs_handle_struct *handle,
-		       const struct smb_filename *smb_fname,
-		       mode_t mode)
+static int catia_mkdirat(vfs_handle_struct *handle,
+			struct files_struct *dirfsp,
+			const struct smb_filename *smb_fname,
+			mode_t mode)
 {
 	char *name = NULL;
 	NTSTATUS status;
@@ -882,7 +883,10 @@ static int catia_mkdir(vfs_handle_struct *handle,
 		return -1;
 	}
 
-	ret = SMB_VFS_NEXT_MKDIR(handle, catia_smb_fname, mode);
+	ret = SMB_VFS_NEXT_MKDIRAT(handle,
+			dirfsp,
+			catia_smb_fname,
+			mode);
 	TALLOC_FREE(name);
 	TALLOC_FREE(catia_smb_fname);
 
@@ -2432,7 +2436,7 @@ static struct vfs_fn_pointers vfs_catia_fns = {
 	.connect_fn = catia_connect,
 
 	/* Directory operations */
-	.mkdir_fn = catia_mkdir,
+	.mkdirat_fn = catia_mkdirat,
 	.rmdir_fn = catia_rmdir,
 	.opendir_fn = catia_opendir,
 	.readdir_attr_fn = catia_readdir_attr,
diff --git a/source3/modules/vfs_ceph.c b/source3/modules/vfs_ceph.c
index c873d8b9abe..d90e4ab3987 100644
--- a/source3/modules/vfs_ceph.c
+++ b/source3/modules/vfs_ceph.c
@@ -371,9 +371,10 @@ static void cephwrap_rewinddir(struct vfs_handle_struct *handle, DIR *dirp)
 	ceph_rewinddir(handle->data, (struct ceph_dir_result *) dirp);
 }
 
-static int cephwrap_mkdir(struct vfs_handle_struct *handle,
-			  const struct smb_filename *smb_fname,
-			  mode_t mode)
+static int cephwrap_mkdirat(struct vfs_handle_struct *handle,
+			files_struct *dirfsp,
+			const struct smb_filename *smb_fname,
+			mode_t mode)
 {
 	int result;
 	char *parent = NULL;
@@ -381,6 +382,8 @@ static int cephwrap_mkdir(struct vfs_handle_struct *handle,
 
 	DBG_DEBUG("[CEPH] mkdir(%p, %s)\n", handle, path);
 
+	SMB_ASSERT(dirfsp == dirfsp->conn->cwd_fsp);
+
 	if (lp_inherit_acls(SNUM(handle->conn))
 	    && parent_dirname(talloc_tos(), path, &parent, NULL)
 	    && directory_has_default_acl(handle->conn, parent)) {
@@ -1428,7 +1431,7 @@ static struct vfs_fn_pointers ceph_fns = {
 	.seekdir_fn = cephwrap_seekdir,
 	.telldir_fn = cephwrap_telldir,
 	.rewind_dir_fn = cephwrap_rewinddir,
-	.mkdir_fn = cephwrap_mkdir,
+	.mkdirat_fn = cephwrap_mkdirat,
 	.rmdir_fn = cephwrap_rmdir,
 	.closedir_fn = cephwrap_closedir,
 
diff --git a/source3/modules/vfs_ceph_snapshots.c b/source3/modules/vfs_ceph_snapshots.c
index 3980067816d..de6b61d8063 100644
--- a/source3/modules/vfs_ceph_snapshots.c
+++ b/source3/modules/vfs_ceph_snapshots.c
@@ -1310,7 +1310,8 @@ static NTSTATUS ceph_snap_gmt_get_nt_acl(vfs_handle_struct *handle,
 	return status;
 }
 
-static int ceph_snap_gmt_mkdir(vfs_handle_struct *handle,
+static int ceph_snap_gmt_mkdirat(vfs_handle_struct *handle,
+				struct files_struct *dirfsp,
 				const struct smb_filename *csmb_fname,
 				mode_t mode)
 {
@@ -1328,7 +1329,10 @@ static int ceph_snap_gmt_mkdir(vfs_handle_struct *handle,
 		errno = EROFS;
 		return -1;
 	}
-	return SMB_VFS_NEXT_MKDIR(handle, csmb_fname, mode);
+	return SMB_VFS_NEXT_MKDIRAT(handle,
+			dirfsp,
+			csmb_fname,
+			mode);
 }
 
 static int ceph_snap_gmt_rmdir(vfs_handle_struct *handle,
@@ -1643,7 +1647,7 @@ static struct vfs_fn_pointers ceph_snap_fns = {
 	.get_nt_acl_fn = ceph_snap_gmt_get_nt_acl,
 	.fget_nt_acl_fn = ceph_snap_gmt_fget_nt_acl,
 	.get_nt_acl_fn = ceph_snap_gmt_get_nt_acl,
-	.mkdir_fn = ceph_snap_gmt_mkdir,
+	.mkdirat_fn = ceph_snap_gmt_mkdirat,
 	.rmdir_fn = ceph_snap_gmt_rmdir,
 	.getxattr_fn = ceph_snap_gmt_getxattr,
 	.getxattrat_send_fn = vfs_not_implemented_getxattrat_send,
diff --git a/source3/modules/vfs_default.c b/source3/modules/vfs_default.c
index bb7eba40df9..4cca80ea397 100644
--- a/source3/modules/vfs_default.c
+++ b/source3/modules/vfs_default.c
@@ -493,7 +493,8 @@ static void vfswrap_rewinddir(vfs_handle_struct *handle, DIR *dirp)
 	END_PROFILE(syscall_rewinddir);
 }
 
-static int vfswrap_mkdir(vfs_handle_struct *handle,
+static int vfswrap_mkdirat(vfs_handle_struct *handle,
+			struct files_struct *dirfsp,
 			const struct smb_filename *smb_fname,
 			mode_t mode)
 {
@@ -501,7 +502,9 @@ static int vfswrap_mkdir(vfs_handle_struct *handle,
 	const char *path = smb_fname->base_name;
 	char *parent = NULL;
 
-	START_PROFILE(syscall_mkdir);
+	START_PROFILE(syscall_mkdirat);
+
+	SMB_ASSERT(dirfsp == dirfsp->conn->cwd_fsp);
 
 	if (lp_inherit_acls(SNUM(handle->conn))
 	    && parent_dirname(talloc_tos(), path, &parent, NULL)
@@ -511,9 +514,9 @@ static int vfswrap_mkdir(vfs_handle_struct *handle,
 
 	TALLOC_FREE(parent);
 
-	result = mkdir(path, mode);
+	result = mkdirat(dirfsp->fh->fd, path, mode);
 
-	END_PROFILE(syscall_mkdir);
+	END_PROFILE(syscall_mkdirat);
 	return result;
 }
 
@@ -3459,7 +3462,7 @@ static struct vfs_fn_pointers vfs_default_fns = {
 	.seekdir_fn = vfswrap_seekdir,
 	.telldir_fn = vfswrap_telldir,
 	.rewind_dir_fn = vfswrap_rewinddir,
-	.mkdir_fn = vfswrap_mkdir,
+	.mkdirat_fn = vfswrap_mkdirat,
 	.rmdir_fn = vfswrap_rmdir,
 	.closedir_fn = vfswrap_closedir,
 
diff --git a/source3/modules/vfs_extd_audit.c b/source3/modules/vfs_extd_audit.c
index 70c889c4675..19f086f7283 100644
--- a/source3/modules/vfs_extd_audit.c
+++ b/source3/modules/vfs_extd_audit.c
@@ -210,21 +210,25 @@ static DIR *audit_opendir(vfs_handle_struct *handle,
 	return result;
 }
 
-static int audit_mkdir(vfs_handle_struct *handle,
+static int audit_mkdirat(vfs_handle_struct *handle,
+			struct files_struct *dirfsp,
 			const struct smb_filename *smb_fname,
 			mode_t mode)
 {
 	int result;
 
-	result = SMB_VFS_NEXT_MKDIR(handle, smb_fname, mode);
+	result = SMB_VFS_NEXT_MKDIRAT(handle,
+			dirfsp,
+			smb_fname,
+			mode);
 
 	if (lp_syslog() > 0) {
-		syslog(audit_syslog_priority(handle), "mkdir %s %s%s\n",
+		syslog(audit_syslog_priority(handle), "mkdirat %s %s%s\n",
 		       smb_fname->base_name,
 		       (result < 0) ? "failed: " : "",
 		       (result < 0) ? strerror(errno) : "");
 	}
-	DEBUG(0, ("vfs_extd_audit: mkdir %s %s %s\n",
+	DEBUG(0, ("vfs_extd_audit: mkdirat %s %s %s\n",
 	       smb_fname->base_name,
 	       (result < 0) ? "failed: " : "",
 	       (result < 0) ? strerror(errno) : ""));
@@ -393,7 +397,7 @@ static struct vfs_fn_pointers vfs_extd_audit_fns = {
 	.connect_fn = audit_connect,
 	.disconnect_fn = audit_disconnect,
 	.opendir_fn = audit_opendir,
-	.mkdir_fn = audit_mkdir,
+	.mkdirat_fn = audit_mkdirat,
 	.rmdir_fn = audit_rmdir,
 	.open_fn = audit_open,
 	.close_fn = audit_close,
diff --git a/source3/modules/vfs_full_audit.c b/source3/modules/vfs_full_audit.c
index afdf779491f..6a70b84774d 100644
--- a/source3/modules/vfs_full_audit.c
+++ b/source3/modules/vfs_full_audit.c
@@ -108,7 +108,7 @@ typedef enum _vfs_op_type {
 	SMB_VFS_OP_SEEKDIR,
 	SMB_VFS_OP_TELLDIR,
 	SMB_VFS_OP_REWINDDIR,
-	SMB_VFS_OP_MKDIR,
+	SMB_VFS_OP_MKDIRAT,
 	SMB_VFS_OP_RMDIR,
 	SMB_VFS_OP_CLOSEDIR,
 
@@ -254,7 +254,7 @@ static struct {
 	{ SMB_VFS_OP_SEEKDIR,   "seekdir" },
 	{ SMB_VFS_OP_TELLDIR,   "telldir" },
 	{ SMB_VFS_OP_REWINDDIR, "rewinddir" },
-	{ SMB_VFS_OP_MKDIR,	"mkdir" },
+	{ SMB_VFS_OP_MKDIRAT,	"mkdirat" },
 	{ SMB_VFS_OP_RMDIR,	"rmdir" },
 	{ SMB_VFS_OP_CLOSEDIR,	"closedir" },
 	{ SMB_VFS_OP_OPEN,	"open" },
@@ -996,14 +996,19 @@ static void smb_full_audit_rewinddir(vfs_handle_struct *handle,
 	do_log(SMB_VFS_OP_REWINDDIR, True, handle, "");
 }
 
-static int smb_full_audit_mkdir(vfs_handle_struct *handle,
-		       const struct smb_filename *smb_fname, mode_t mode)
+static int smb_full_audit_mkdirat(vfs_handle_struct *handle,
+			struct files_struct *dirfsp,
+			const struct smb_filename *smb_fname,
+			mode_t mode)
 {
 	int result;
-	
-	result = SMB_VFS_NEXT_MKDIR(handle, smb_fname, mode);
-	
-	do_log(SMB_VFS_OP_MKDIR, (result >= 0), handle, "%s",
+
+	result = SMB_VFS_NEXT_MKDIRAT(handle,
+			dirfsp,
+			smb_fname,
+			mode);
+
+	do_log(SMB_VFS_OP_MKDIRAT, (result >= 0), handle, "%s",
 		smb_fname->base_name);
 
 	return result;
@@ -2859,7 +2864,7 @@ static struct vfs_fn_pointers vfs_full_audit_fns = {
 	.seekdir_fn = smb_full_audit_seekdir,
 	.telldir_fn = smb_full_audit_telldir,
 	.rewind_dir_fn = smb_full_audit_rewinddir,
-	.mkdir_fn = smb_full_audit_mkdir,
+	.mkdirat_fn = smb_full_audit_mkdirat,
 	.rmdir_fn = smb_full_audit_rmdir,
 	.closedir_fn = smb_full_audit_closedir,
 	.open_fn = smb_full_audit_open,
diff --git a/source3/modules/vfs_glusterfs.c b/source3/modules/vfs_glusterfs.c
index 6c941e56e2f..bfb97368f82 100644
--- a/source3/modules/vfs_glusterfs.c
+++ b/source3/modules/vfs_glusterfs.c
@@ -597,19 +597,22 @@ static void vfs_gluster_rewinddir(struct vfs_handle_struct *handle, DIR *dirp)
 	END_PROFILE(syscall_rewinddir);
 }
 
-static int vfs_gluster_mkdir(struct vfs_handle_struct *handle,
-			     const struct smb_filename *smb_fname,
-			     mode_t mode)
+static int vfs_gluster_mkdirat(struct vfs_handle_struct *handle,
+			struct files_struct *dirfsp,
+			const struct smb_filename *smb_fname,
+			mode_t mode)
 {
 	int ret;
 
-	START_PROFILE(syscall_mkdir);
+	START_PROFILE(syscall_mkdirat);
+	SMB_ASSERT(dirfsp == dirfsp->conn->cwd_fsp);
 	ret = glfs_mkdir(handle->data, smb_fname->base_name, mode);
-	END_PROFILE(syscall_mkdir);
+	END_PROFILE(syscall_mkdirat);
 
 	return ret;
 }
 
+
 static int vfs_gluster_rmdir(struct vfs_handle_struct *handle,
 			const struct smb_filename *smb_fname)
 {
@@ -1892,7 +1895,7 @@ static struct vfs_fn_pointers glusterfs_fns = {
 	.seekdir_fn = vfs_gluster_seekdir,
 	.telldir_fn = vfs_gluster_telldir,


-- 
Samba Shared Repository



More information about the samba-cvs mailing list