The branch, master has been updated
       via  4a8cfe1650a vfs: Remove "sbuf" from readdir_fn()
       via  95fd166effe smbd: Remove unused "sbuf" argument from 
vfs_readdirname()
       via  daf6f2f7a1a smbd: Remove unused "sbuf" argument from ReadDirName()
       via  f36bdcc0ca6 smbd: Remove unused "pst" argument from 
dptr_ReadDirName()
       via  ea670b66c46 smbd: Don't use "sbuf" in smbd_dirptr_get_entry()
       via  3f97b6a4f7e smbd: Make sure smb_fname->st is valid in 
smbd_dirptr_get_entry
      from  c837ecf442c python:samba: Fix code spelling

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


- Log -----------------------------------------------------------------
commit 4a8cfe1650a1a22ab53c04f5f872bc8f59bc2c1b
Author: Volker Lendecke <v...@samba.org>
Date:   Tue Jun 20 12:42:52 2023 +0200

    vfs: Remove "sbuf" from readdir_fn()
    
    Signed-off-by: Volker Lendecke <v...@samba.org>
    Reviewed-by: Jeremy Allison <j...@samba.org>
    
    Autobuild-User(master): Jeremy Allison <j...@samba.org>
    Autobuild-Date(master): Fri Jun 23 18:29:40 UTC 2023 on atb-devel-224

commit 95fd166effe20089e54553cdde3241bf9233b5a3
Author: Volker Lendecke <v...@samba.org>
Date:   Tue Jun 20 12:29:29 2023 +0200

    smbd: Remove unused "sbuf" argument from vfs_readdirname()
    
    The only caller did not use the result.
    
    Signed-off-by: Volker Lendecke <v...@samba.org>
    Reviewed-by: Jeremy Allison <j...@samba.org>

commit daf6f2f7a1ac6e85b62ed0b8e41d0a300d69ee5e
Author: Volker Lendecke <v...@samba.org>
Date:   Tue Jun 20 12:25:45 2023 +0200

    smbd: Remove unused "sbuf" argument from ReadDirName()
    
    Nobody used that anymore, most callers had passed in NULL anyway.
    
    Signed-off-by: Volker Lendecke <v...@samba.org>
    Reviewed-by: Jeremy Allison <j...@samba.org>

commit f36bdcc0ca6b25ef27f0cc1e1f3450936f7bb42c
Author: Volker Lendecke <v...@samba.org>
Date:   Tue Jun 20 12:19:15 2023 +0200

    smbd: Remove unused "pst" argument from dptr_ReadDirName()
    
    Signed-off-by: Volker Lendecke <v...@samba.org>
    Reviewed-by: Jeremy Allison <j...@samba.org>

commit ea670b66c4662230d8cc866530d01606ca4656cc
Author: Volker Lendecke <v...@samba.org>
Date:   Tue Jun 20 12:03:35 2023 +0200

    smbd: Don't use "sbuf" in smbd_dirptr_get_entry()
    
    openat_pathref_fsp() does not need this anymore.
    
    Signed-off-by: Volker Lendecke <v...@samba.org>
    Reviewed-by: Jeremy Allison <j...@samba.org>

commit 3f97b6a4f7ed3240068fbfc1441f5fd7c93a02f3
Author: Volker Lendecke <v...@samba.org>
Date:   Thu Jun 22 09:52:09 2023 +0200

    smbd: Make sure smb_fname->st is valid in smbd_dirptr_get_entry
    
    This simplifies the two mode_fn()s we have.
    
    Signed-off-by: Volker Lendecke <v...@samba.org>
    Reviewed-by: Jeremy Allison <j...@samba.org>

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

Summary of changes:
 examples/VFS/skel_opaque.c            |  3 +-
 examples/VFS/skel_transparent.c       |  8 ++-
 source3/include/vfs.h                 | 10 ++--
 source3/include/vfs_macros.h          |  8 +--
 source3/modules/vfs_cap.c             |  8 ++-
 source3/modules/vfs_ceph.c            |  7 +--
 source3/modules/vfs_ceph_snapshots.c  |  8 +--
 source3/modules/vfs_default.c         | 43 +---------------
 source3/modules/vfs_dirsort.c         | 11 ++---
 source3/modules/vfs_fruit.c           |  8 +--
 source3/modules/vfs_full_audit.c      |  5 +-
 source3/modules/vfs_glusterfs.c       | 19 ++-----
 source3/modules/vfs_media_harmony.c   | 10 ++--
 source3/modules/vfs_not_implemented.c |  3 +-
 source3/modules/vfs_shadow_copy.c     |  7 ++-
 source3/modules/vfs_shadow_copy2.c    | 93 +----------------------------------
 source3/modules/vfs_streams_depot.c   |  4 +-
 source3/modules/vfs_time_audit.c      |  5 +-
 source3/modules/vfs_unityed_media.c   | 10 ++--
 source3/modules/vfs_widelinks.c       | 36 --------------
 source3/smbd/close.c                  | 10 ++--
 source3/smbd/dir.c                    | 54 +++++++++-----------
 source3/smbd/filename.c               |  2 +-
 source3/smbd/msdfs.c                  |  8 +--
 source3/smbd/proto.h                  |  8 +--
 source3/smbd/smb1_reply.c             | 14 ------
 source3/smbd/smb1_trans2.c            |  4 +-
 source3/smbd/smb2_trans2.c            |  8 +--
 source3/smbd/vfs.c                    |  8 ++-
 source3/torture/cmd_vfs.c             |  8 +--
 30 files changed, 84 insertions(+), 346 deletions(-)


Changeset truncated at 500 lines:

diff --git a/examples/VFS/skel_opaque.c b/examples/VFS/skel_opaque.c
index cbaf9a272a8..255fa830402 100644
--- a/examples/VFS/skel_opaque.c
+++ b/examples/VFS/skel_opaque.c
@@ -157,8 +157,7 @@ static DIR *skel_fdopendir(vfs_handle_struct *handle, 
files_struct *fsp,
 
 static struct dirent *skel_readdir(vfs_handle_struct *handle,
                                   struct files_struct *dirfsp,
-                                  DIR *dirp,
-                                  SMB_STRUCT_STAT *sbuf)
+                                  DIR *dirp)
 {
        return NULL;
 }
diff --git a/examples/VFS/skel_transparent.c b/examples/VFS/skel_transparent.c
index 9c08b87f7c7..461228f09af 100644
--- a/examples/VFS/skel_transparent.c
+++ b/examples/VFS/skel_transparent.c
@@ -163,12 +163,10 @@ static DIR *skel_fdopendir(vfs_handle_struct *handle, 
files_struct *fsp,
        return SMB_VFS_NEXT_FDOPENDIR(handle, fsp, mask, attr);
 }
 
-static struct dirent *skel_readdir(vfs_handle_struct *handle,
-                                  struct files_struct *dirfsp,
-                                  DIR *dirp,
-                                  SMB_STRUCT_STAT *sbuf)
+static struct dirent *
+skel_readdir(vfs_handle_struct *handle, struct files_struct *dirfsp, DIR *dirp)
 {
-       return SMB_VFS_NEXT_READDIR(handle, dirfsp, dirp, sbuf);
+       return SMB_VFS_NEXT_READDIR(handle, dirfsp, dirp);
 }
 
 static void skel_rewind_dir(vfs_handle_struct *handle, DIR *dirp)
diff --git a/source3/include/vfs.h b/source3/include/vfs.h
index eafc432be43..dfae16fbc24 100644
--- a/source3/include/vfs.h
+++ b/source3/include/vfs.h
@@ -380,6 +380,7 @@
  * Version 48 - Add dirfsp to connectpath_fn()
  * Change to Version 49 - will ship with 4.19
  * Version 49 - remove seekdir and telldir
+ * Version 49 - remove "sbuf" argument from readdir_fn()
  */
 
 #define SMB_VFS_INTERFACE_VERSION 49
@@ -967,8 +968,7 @@ struct vfs_fn_pointers {
        DIR *(*fdopendir_fn)(struct vfs_handle_struct *handle, files_struct 
*fsp, const char *mask, uint32_t attributes);
        struct dirent *(*readdir_fn)(struct vfs_handle_struct *handle,
                                     struct files_struct *dirfsp,
-                                    DIR *dirp,
-                                    SMB_STRUCT_STAT *sbuf);
+                                    DIR *dirp);
        void (*rewind_dir_fn)(struct vfs_handle_struct *handle, DIR *dirp);
        int (*mkdirat_fn)(struct vfs_handle_struct *handle,
                        struct files_struct *dirfsp,
@@ -1462,8 +1462,7 @@ DIR *smb_vfs_call_fdopendir(struct vfs_handle_struct 
*handle,
                                        uint32_t attributes);
 struct dirent *smb_vfs_call_readdir(struct vfs_handle_struct *handle,
                                    struct files_struct *dirfsp,
-                                   DIR *dirp,
-                                   SMB_STRUCT_STAT *sbuf);
+                                   DIR *dirp);
 void smb_vfs_call_rewind_dir(struct vfs_handle_struct *handle,
                             DIR *dirp);
 int smb_vfs_call_mkdirat(struct vfs_handle_struct *handle,
@@ -1904,8 +1903,7 @@ DIR *vfs_not_implemented_fdopendir(vfs_handle_struct 
*handle, files_struct *fsp,
                                   const char *mask, uint32_t attr);
 struct dirent *vfs_not_implemented_readdir(vfs_handle_struct *handle,
                                           struct files_struct *dirfsp,
-                                          DIR *dirp,
-                                          SMB_STRUCT_STAT *sbuf);
+                                          DIR *dirp);
 void vfs_not_implemented_rewind_dir(vfs_handle_struct *handle, DIR *dirp);
 int vfs_not_implemented_mkdirat(vfs_handle_struct *handle,
                struct files_struct *dirfsp,
diff --git a/source3/include/vfs_macros.h b/source3/include/vfs_macros.h
index 29ce22e98c5..9196f6e5e40 100644
--- a/source3/include/vfs_macros.h
+++ b/source3/include/vfs_macros.h
@@ -111,10 +111,10 @@
 #define SMB_VFS_NEXT_FDOPENDIR(handle, fsp, mask, attr) \
        smb_vfs_call_fdopendir((handle)->next, (fsp), (mask), (attr))
 
-#define SMB_VFS_READDIR(conn, dirfsp, dirp, sbuf) \
-       smb_vfs_call_readdir((conn)->vfs_handles, (dirfsp), (dirp), (sbuf))
-#define SMB_VFS_NEXT_READDIR(handle, dirfsp, dirp, sbuf) \
-       smb_vfs_call_readdir((handle)->next, (dirfsp), (dirp), (sbuf))
+#define SMB_VFS_READDIR(conn, dirfsp, dirp) \
+       smb_vfs_call_readdir((conn)->vfs_handles, (dirfsp), (dirp))
+#define SMB_VFS_NEXT_READDIR(handle, dirfsp, dirp) \
+       smb_vfs_call_readdir((handle)->next, (dirfsp), (dirp))
 
 #define SMB_VFS_REWINDDIR(conn, dirp) \
        smb_vfs_call_rewind_dir((conn)->vfs_handles, (dirp))
diff --git a/source3/modules/vfs_cap.c b/source3/modules/vfs_cap.c
index ac2c1b0410d..3553e118cc2 100644
--- a/source3/modules/vfs_cap.c
+++ b/source3/modules/vfs_cap.c
@@ -84,10 +84,8 @@ static int cap_get_quota(vfs_handle_struct *handle,
        return SMB_VFS_NEXT_GET_QUOTA(handle, cap_smb_fname, qtype, id, dq);
 }
 
-static struct dirent *cap_readdir(vfs_handle_struct *handle,
-                                 struct files_struct *dirfsp,
-                                 DIR *dirp,
-                                 SMB_STRUCT_STAT *sbuf)
+static struct dirent *
+cap_readdir(vfs_handle_struct *handle, struct files_struct *dirfsp, DIR *dirp)
 {
        struct dirent *result;
        struct dirent *newdirent;
@@ -95,7 +93,7 @@ static struct dirent *cap_readdir(vfs_handle_struct *handle,
        size_t newnamelen;
        DEBUG(3,("cap: cap_readdir\n"));
 
-       result = SMB_VFS_NEXT_READDIR(handle, dirfsp, dirp, NULL);
+       result = SMB_VFS_NEXT_READDIR(handle, dirfsp, dirp);
        if (!result) {
                return NULL;
        }
diff --git a/source3/modules/vfs_ceph.c b/source3/modules/vfs_ceph.c
index af303ac60b7..d7772c62119 100644
--- a/source3/modules/vfs_ceph.c
+++ b/source3/modules/vfs_ceph.c
@@ -451,8 +451,7 @@ static DIR *cephwrap_fdopendir(struct vfs_handle_struct 
*handle,
 
 static struct dirent *cephwrap_readdir(struct vfs_handle_struct *handle,
                                       struct files_struct *dirfsp,
-                                      DIR *dirp,
-                                      SMB_STRUCT_STAT *sbuf)
+                                      DIR *dirp)
 {
        struct dirent *result;
 
@@ -460,10 +459,6 @@ static struct dirent *cephwrap_readdir(struct 
vfs_handle_struct *handle,
        result = ceph_readdir(handle->data, (struct ceph_dir_result *) dirp);
        DBG_DEBUG("[CEPH] readdir(...) = %p\n", result);
 
-       /* Default Posix readdir() does not give us stat info.
-        * Set to invalid to indicate we didn't return this info. */
-       if (sbuf)
-               SET_STAT_INVALID(*sbuf);
        return result;
 }
 
diff --git a/source3/modules/vfs_ceph_snapshots.c 
b/source3/modules/vfs_ceph_snapshots.c
index c09b1895f88..f9ae977918c 100644
--- a/source3/modules/vfs_ceph_snapshots.c
+++ b/source3/modules/vfs_ceph_snapshots.c
@@ -264,9 +264,7 @@ static int ceph_snap_enum_snapdir(struct vfs_handle_struct 
*handle,
        sc_data->num_volumes = 0;
        sc_data->labels = NULL;
 
-        while ((dname = ReadDirName(dir_hnd, NULL, &talloced))
-              != NULL)
-       {
+       while ((dname = ReadDirName(dir_hnd, &talloced)) != NULL) {
                if (ISDOT(dname) || ISDOTDOT(dname)) {
                        TALLOC_FREE(talloced);
                        continue;
@@ -587,9 +585,7 @@ static int ceph_snap_gmt_convert_dir(struct 
vfs_handle_struct *handle,
                goto err_out;
        }
 
-        while ((dname = ReadDirName(dir_hnd, NULL, &talloced))
-              != NULL)
-       {
+       while ((dname = ReadDirName(dir_hnd, &talloced)) != NULL) {
                struct smb_filename *smb_fname = NULL;
                struct smb_filename *atname = NULL;
                time_t snap_secs = 0;
diff --git a/source3/modules/vfs_default.c b/source3/modules/vfs_default.c
index 1ea0dded619..1d4b9b1a840 100644
--- a/source3/modules/vfs_default.c
+++ b/source3/modules/vfs_default.c
@@ -594,58 +594,17 @@ static DIR *vfswrap_fdopendir(vfs_handle_struct *handle,
        return result;
 }
 
-
 static struct dirent *vfswrap_readdir(vfs_handle_struct *handle,
                                      struct files_struct *dirfsp,
-                                     DIR *dirp,
-                                     SMB_STRUCT_STAT *sbuf)
+                                     DIR *dirp)
 {
        struct dirent *result;
-       bool fake_ctime = lp_fake_directory_create_times(SNUM(handle->conn));
-       int flags = AT_SYMLINK_NOFOLLOW;
-       SMB_STRUCT_STAT st = {0};
-       int ret;
 
        START_PROFILE(syscall_readdir);
 
        result = readdir(dirp);
        END_PROFILE(syscall_readdir);
 
-       if (sbuf == NULL) {
-               return result;
-       }
-       if (result == NULL) {
-               return NULL;
-       }
-
-       /*
-        * Default Posix readdir() does not give us stat info.
-        * Set to invalid to indicate we didn't return this info.
-        */
-       SET_STAT_INVALID(*sbuf);
-
-       ret = sys_fstatat(dirfd(dirp),
-                     result->d_name,
-                     &st,
-                     flags,
-                     fake_ctime);
-       if (ret != 0) {
-               return result;
-       }
-
-       /*
-        * As this is an optimization, ignore it if we stat'ed a
-        * symlink for non-POSIX context. Make the caller do it again
-        * as we don't know if they wanted the link info, or its
-        * target info.
-        */
-       if (S_ISLNK(st.st_ex_mode) &&
-           !(dirfsp->fsp_name->flags & SMB_FILENAME_POSIX_PATH))
-       {
-               return result;
-       }
-       *sbuf = st;
-
        return result;
 }
 
diff --git a/source3/modules/vfs_dirsort.c b/source3/modules/vfs_dirsort.c
index 89637aa38f2..c4baf819b03 100644
--- a/source3/modules/vfs_dirsort.c
+++ b/source3/modules/vfs_dirsort.c
@@ -79,10 +79,7 @@ static bool open_and_sort_dir(vfs_handle_struct *handle,
                return false;
        }
 
-       dp = SMB_VFS_NEXT_READDIR(handle,
-                                 data->fsp,
-                                 data->source_directory,
-                                 NULL);
+       dp = SMB_VFS_NEXT_READDIR(handle, data->fsp, data->source_directory);
        if (dp == NULL) {
                return false;
        }
@@ -125,8 +122,7 @@ static bool open_and_sort_dir(vfs_handle_struct *handle,
                total_count++;
                dp = SMB_VFS_NEXT_READDIR(handle,
                                          data->fsp,
-                                         data->source_directory,
-                                         NULL);
+                                         data->source_directory);
        } while (dp != NULL);
 
        data->number_of_entries = total_count;
@@ -185,8 +181,7 @@ static DIR *dirsort_fdopendir(vfs_handle_struct *handle,
 
 static struct dirent *dirsort_readdir(vfs_handle_struct *handle,
                                      struct files_struct *dirfsp,
-                                     DIR *dirp,
-                                     SMB_STRUCT_STAT *sbuf)
+                                     DIR *dirp)
 {
        struct dirsort_privates *data = NULL;
        struct timespec current_mtime;
diff --git a/source3/modules/vfs_fruit.c b/source3/modules/vfs_fruit.c
index 8be6b4c7791..02f04196e48 100644
--- a/source3/modules/vfs_fruit.c
+++ b/source3/modules/vfs_fruit.c
@@ -5224,9 +5224,7 @@ static bool fruit_get_num_bands(vfs_handle_struct *handle,
 
        nbands = 0;
 
-        while ((dname = ReadDirName(dir_hnd, NULL, &talloced))
-              != NULL)
-       {
+       while ((dname = ReadDirName(dir_hnd, &talloced)) != NULL) {
                if (ISDOT(dname) || ISDOTDOT(dname)) {
                        continue;
                }
@@ -5365,9 +5363,7 @@ static uint64_t fruit_disk_free(vfs_handle_struct *handle,
                return UINT64_MAX;
        }
 
-        while ((dname = ReadDirName(dir_hnd, NULL, &talloced))
-              != NULL)
-       {
+       while ((dname = ReadDirName(dir_hnd, &talloced)) != NULL) {
                ok = fruit_tmsize_do_dirent(handle, &state, dname);
                if (!ok) {
                        TALLOC_FREE(talloced);
diff --git a/source3/modules/vfs_full_audit.c b/source3/modules/vfs_full_audit.c
index b407de0d778..9fd8a751572 100644
--- a/source3/modules/vfs_full_audit.c
+++ b/source3/modules/vfs_full_audit.c
@@ -1015,12 +1015,11 @@ static DIR *smb_full_audit_fdopendir(vfs_handle_struct 
*handle,
 
 static struct dirent *smb_full_audit_readdir(vfs_handle_struct *handle,
                                             struct files_struct *dirfsp,
-                                            DIR *dirp,
-                                            SMB_STRUCT_STAT *sbuf)
+                                            DIR *dirp)
 {
        struct dirent *result;
 
-       result = SMB_VFS_NEXT_READDIR(handle, dirfsp, dirp, sbuf);
+       result = SMB_VFS_NEXT_READDIR(handle, dirfsp, dirp);
 
        /* This operation has no reasonable error condition
         * (End of dir is also failure), so always succeed.
diff --git a/source3/modules/vfs_glusterfs.c b/source3/modules/vfs_glusterfs.c
index 0c2d6950421..a1c4dfcd64f 100644
--- a/source3/modules/vfs_glusterfs.c
+++ b/source3/modules/vfs_glusterfs.c
@@ -649,34 +649,21 @@ static int vfs_gluster_closedir(struct vfs_handle_struct 
*handle, DIR *dirp)
 
 static struct dirent *vfs_gluster_readdir(struct vfs_handle_struct *handle,
                                          struct files_struct *dirfsp,
-                                         DIR *dirp,
-                                         SMB_STRUCT_STAT *sbuf)
+                                         DIR *dirp)
 {
        static char direntbuf[512];
        int ret;
-       struct stat stat;
        struct dirent *dirent = 0;
 
        START_PROFILE(syscall_readdir);
-       if (sbuf != NULL) {
-               ret = glfs_readdirplus_r((void *)dirp, &stat, (void *)direntbuf,
-                                        &dirent);
-       } else {
-               ret = glfs_readdir_r((void *)dirp, (void *)direntbuf, &dirent);
-       }
+
+       ret = glfs_readdir_r((void *)dirp, (void *)direntbuf, &dirent);
 
        if ((ret < 0) || (dirent == NULL)) {
                END_PROFILE(syscall_readdir);
                return NULL;
        }
 
-       if (sbuf != NULL) {
-               SET_STAT_INVALID(*sbuf);
-               if (!S_ISLNK(stat.st_mode)) {
-                       smb_stat_ex_from_stat(sbuf, &stat);
-               }
-       }
-
        END_PROFILE(syscall_readdir);
        return dirent;
 }
diff --git a/source3/modules/vfs_media_harmony.c 
b/source3/modules/vfs_media_harmony.c
index ceace9c5b2d..a027254c6b3 100644
--- a/source3/modules/vfs_media_harmony.c
+++ b/source3/modules/vfs_media_harmony.c
@@ -817,10 +817,8 @@ err:
  * End of data: return NULL
  * Failure: set errno, return NULL
  */
-static struct dirent *mh_readdir(vfs_handle_struct *handle,
-                                struct files_struct *dirfsp,
-                                DIR *dirp,
-                                SMB_STRUCT_STAT *sbuf)
+static struct dirent *
+mh_readdir(vfs_handle_struct *handle, struct files_struct *dirfsp, DIR *dirp)
 {
        mh_dirinfo_struct* dirInfo = (mh_dirinfo_struct*)dirp;
        struct dirent *d = NULL;
@@ -843,7 +841,7 @@ static struct dirent *mh_readdir(vfs_handle_struct *handle,
 
        if (! dirInfo->isInMediaFiles)
        {
-               d = SMB_VFS_NEXT_READDIR(handle, dirfsp, dirInfo->dirstream, 
sbuf);
+               d = SMB_VFS_NEXT_READDIR(handle, dirfsp, dirInfo->dirstream);
                goto out;
        }
 
@@ -853,7 +851,7 @@ static struct dirent *mh_readdir(vfs_handle_struct *handle,
                bool isAppleDouble;
 
                skip = False;
-               d = SMB_VFS_NEXT_READDIR(handle, dirfsp, dirInfo->dirstream, 
sbuf);
+               d = SMB_VFS_NEXT_READDIR(handle, dirfsp, dirInfo->dirstream);
 
                if (d == NULL)
                {
diff --git a/source3/modules/vfs_not_implemented.c 
b/source3/modules/vfs_not_implemented.c
index aeec1a4a376..b00a4993bc5 100644
--- a/source3/modules/vfs_not_implemented.c
+++ b/source3/modules/vfs_not_implemented.c
@@ -168,8 +168,7 @@ DIR *vfs_not_implemented_fdopendir(vfs_handle_struct 
*handle, files_struct *fsp,
 _PUBLIC_
 struct dirent *vfs_not_implemented_readdir(vfs_handle_struct *handle,
                                           struct files_struct *dirfsp,
-                                          DIR *dirp,
-                                          SMB_STRUCT_STAT *sbuf)
+                                          DIR *dirp)
 {
        errno = ENOSYS;
        return NULL;
diff --git a/source3/modules/vfs_shadow_copy.c 
b/source3/modules/vfs_shadow_copy.c
index 7b1ff9c7fc1..e87cefbb694 100644
--- a/source3/modules/vfs_shadow_copy.c
+++ b/source3/modules/vfs_shadow_copy.c
@@ -98,7 +98,7 @@ static DIR *shadow_copy_fdopendir(vfs_handle_struct *handle, 
files_struct *fsp,
        while (True) {
                struct dirent *d;
 
-               d = SMB_VFS_NEXT_READDIR(handle, fsp, p, NULL);
+               d = SMB_VFS_NEXT_READDIR(handle, fsp, p);
                if (d == NULL) {
                        break;
                }
@@ -127,8 +127,7 @@ static DIR *shadow_copy_fdopendir(vfs_handle_struct 
*handle, files_struct *fsp,
 
 static struct dirent *shadow_copy_readdir(vfs_handle_struct *handle,
                                          struct files_struct *dirfsp,
-                                         DIR *_dirp,
-                                         SMB_STRUCT_STAT *sbuf)
+                                         DIR *_dirp)
 {
        shadow_copy_Dir *dirp = (shadow_copy_Dir *)_dirp;
 
@@ -195,7 +194,7 @@ static int 
shadow_copy_get_shadow_copy_data(vfs_handle_struct *handle,
                SHADOW_COPY_LABEL *tlabels;
                int ret;
 
-               dname = ReadDirName(dir_hnd, NULL, &talloced);
+               dname = ReadDirName(dir_hnd, &talloced);
                if (dname == NULL) {
                        break;
                }
diff --git a/source3/modules/vfs_shadow_copy2.c 
b/source3/modules/vfs_shadow_copy2.c
index 2bbd3a5d35f..9a69259edd8 100644
--- a/source3/modules/vfs_shadow_copy2.c
+++ b/source3/modules/vfs_shadow_copy2.c
@@ -2276,7 +2276,7 @@ static int shadow_copy2_get_shadow_copy_data(
                time(&(priv->snaps->fetch_time));
        }
 
-       while ((d = SMB_VFS_NEXT_READDIR(handle, dirfsp, p, NULL))) {
+       while ((d = SMB_VFS_NEXT_READDIR(handle, dirfsp, p))) {
                char snapshot[GMT_NAME_LEN+1];
                SHADOW_COPY_LABEL *tlabels;
 
@@ -3373,96 +3373,6 @@ static int shadow_copy2_connect(struct vfs_handle_struct 
*handle,
        return 0;
 }
 
-static struct dirent *shadow_copy2_readdir(vfs_handle_struct *handle,
-                                          struct files_struct *dirfsp,
-                                          DIR *dirp,
-                                          SMB_STRUCT_STAT *sbuf)
-{
-       struct shadow_copy2_private *priv = NULL;
-       struct dirent *ent = NULL;
-       struct smb_filename atname;
-       struct smb_filename *full_fname = NULL;
-       time_t timestamp = 0;
-       char *stripped = NULL;
-       char *conv = NULL;
-       char *abspath = NULL;
-       bool converted = false;
-
-       SMB_VFS_HANDLE_GET_DATA(handle, priv, struct shadow_copy2_private,
-                               return NULL);
-
-       ent = SMB_VFS_NEXT_READDIR(handle, dirfsp, dirp, sbuf);
-       if (ent == NULL) {
-               return NULL;
-       }
-       if (sbuf == NULL) {
-               return ent;
-       }
-       if (ISDOT(dirfsp->fsp_name->base_name) && ISDOTDOT(ent->d_name)) {
-               return ent;
-       }
-
-       atname = (struct smb_filename) {
-               .base_name = ent->d_name,
-               .twrp = dirfsp->fsp_name->twrp,
-               .flags = dirfsp->fsp_name->flags,
-       };
-
-       full_fname = full_path_from_dirfsp_atname(talloc_tos(),
-                                                 dirfsp,
-                                                 &atname);
-       if (full_fname == NULL) {
-               return NULL;
-       }
-
-       if (!shadow_copy2_strip_snapshot_converted(talloc_tos(),


-- 
Samba Shared Repository

Reply via email to