]> git.ipfire.org Git - thirdparty/samba.git/commitdiff
smbd: list reparse tag in QUERY_DIRECTORY
authorVolker Lendecke <vl@samba.org>
Mon, 2 Jan 2023 15:35:16 +0000 (16:35 +0100)
committerJeremy Allison <jra@samba.org>
Tue, 4 Jun 2024 17:39:21 +0000 (17:39 +0000)
Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
Autobuild-User(master): Jeremy Allison <jra@samba.org>
Autobuild-Date(master): Tue Jun  4 17:39:21 UTC 2024 on atb-devel-224

selftest/knownfail.d/reparse
source3/smbd/smb2_trans2.c

index 0e6654b2084c426ee4230ea2995dcc978a079738..11d094aa5c698580b2c4be996fbc38800cd8ef66 100644 (file)
@@ -1,3 +1,2 @@
 ^samba.tests.reparsepoints.samba.tests.reparsepoints.ReparsePoints.test_create_reparse_directory
 ^samba.tests.reparsepoints.samba.tests.reparsepoints.ReparsePoints.test_create_reparse_nonempty_directory
-^samba.tests.reparsepoints.samba.tests.reparsepoints.ReparsePoints.test_query_dir_reparse
index 3c44a97d74c489b53d6caa0a84710640081b6853..65940295248b4ca91bb4170f95732ca18f4676e3 100644 (file)
@@ -1064,11 +1064,15 @@ static bool smbd_dirptr_lanman2_match_fn(TALLOC_CTX *ctx,
 
 static uint32_t get_dirent_ea_size(uint32_t mode, files_struct *fsp)
 {
-       if (!(mode & FILE_ATTRIBUTE_REPARSE_POINT)) {
-               unsigned ea_size = estimate_ea_size(fsp);
-               return ea_size;
+       uint32_t ea_size = IO_REPARSE_TAG_DFS;
+
+       if (mode & FILE_ATTRIBUTE_REPARSE_POINT) {
+               (void)fsctl_get_reparse_tag(fsp, &ea_size);
+       } else {
+               ea_size = estimate_ea_size(fsp);
        }
-       return IO_REPARSE_TAG_DFS;
+
+       return ea_size;
 }
 
 static NTSTATUS smbd_marshall_dir_entry(TALLOC_CTX *ctx,